Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2017-02-11, 15:59
  #1
Medlem
Hej!

Skulle behöva lite hjälp med c) frågan här: https://puu.sh/tYu3n/bdcd472254.png - vet inte riktigt hur jag ska börja på den efter ha gjort deluppgifterna tidigare. Några tips?
Citera
2017-02-11, 16:41
  #2
Medlem
Totalt sett finns mindre än 256 olika körningar. Det är totalt åtta satser som ska köras och du kan välja om du ska köra nästa från antingen P1 eller P2. 2⁸=256. Det är inte ohanterbart mycket men drygt ändå. Det är fullt möjligt att analysera varje möjlig körning och titta på utskriften. Vi vet dock att fyra satser måste komma från respektive process. Det minskar storleken markant. Det är 70st totalt.

Så kommer du inte på något bättre sätt är det bara att kolla utdatan på samtliga 70. Du kan ju dock vara lite smart också och konstarea att 2.5 måste köras före 1.5 och 1.2 måste köras före 2.2.
Citera
2017-02-11, 19:01
  #3
Medlem
P1 skriver ut "1" och P2 skriver ut "2"

Så om du kör P1 och P2 kommer de tillsammans att antingen skriva ut "12" eller "21".
Frågan är alltså vilken process som kommer terminera först, och det är omöjligt att svara på om man inte vet exakt hur schedulern funkar. Men jag gissar på att det är 50% de är ute efter, är dock inte säker.
Citera
2017-02-11, 19:08
  #4
Medlem
Citat:
Ursprungligen postat av Oscillation
Så om du kör P1 och P2 kommer de tillsammans att antingen skriva ut "12" eller "21".
De möjliga utskrifterna är "21", "12", "2" och "".
Citera
2017-02-11, 19:08
  #5
Medlem
Citat:
Ursprungligen postat av RulleRivare
Totalt sett finns mindre än 256 olika körningar. Det är totalt åtta satser som ska köras och du kan välja om du ska köra nästa från antingen P1 eller P2. 2⁸=256. Det är inte ohanterbart mycket men drygt ändå. Det är fullt möjligt att analysera varje möjlig körning och titta på utskriften. Vi vet dock att fyra satser måste komma från respektive process. Det minskar storleken markant. Det är 70st totalt.

Så kommer du inte på något bättre sätt är det bara att kolla utdatan på samtliga 70. Du kan ju dock vara lite smart också och konstarea att 2.5 måste köras före 1.5 och 1.2 måste köras före 2.2.
Det är två processer, de har varsin addressrymd, ingen av variablerna är delade, så att 2.5 måste köras före 1.5 stämmer inte.
Citera
2017-02-11, 19:11
  #6
Medlem
Citat:
Ursprungligen postat av RulleRivare
De möjliga utskrifterna är "21", "12", "2" och "".
Jag läste inte igenom koden ordentligt, jag skulle säga att den enda möjliga utskriften är "2"
Eller hur resonerar du
Citera
2017-02-11, 19:12
  #7
Medlem
Citat:
Ursprungligen postat av Oscillation
Det är två processer, de har varsin addressrymd, ingen av variablerna är delade, så att 2.5 måste köras före 1.5 stämmer inte.
Du kanske har rätt, men hur vet du att de inte har delad adressrymd? Jag tolkade frågan som att de har delad adressrymd eftersom frågan helt enkelt blir rätt poänglös annars. I så fall kommer P1 aldrig att skriva ut något och P2 kommer alltid skriva ut en tvåa.

Varför skulle en fråga vara vilka möjliga outputs som finns och nästa vad sannolikheten för en viss output om det bara finns en möjlig output?
__________________
Senast redigerad av RulleRivare 2017-02-11 kl. 19:15.
Citera
2017-02-11, 19:14
  #8
Medlem
Citat:
Ursprungligen postat av RulleRivare
Du kanske har rätt, men hur vet du att de inte har delad adressrymd? Jag tolkade frågan som att de har delad adressrymd eftersom frågan helt enkelt blir rätt poänglös annars. I så fall kommer P1 aldrig att skriva ut något och P2 kommer alltid skriva ut en tvåa.
Ja, det är lite oklart, men en om du skapar två processer, kommer de båda ha varsin adressrymd, helt skiljda från varandra. Hade det däremot vart två trådar hade det blivit som du skrev, för då hade de haft delad adressrymd.
Tror frågan handlar om att man ska veta hur en process fungerar, att de har separata adressrymder och variablerna därmed inte delas.
__________________
Senast redigerad av Oscillation 2017-02-11 kl. 19:17.
Citera
2017-02-11, 19:25
  #9
Medlem
Citat:
Ursprungligen postat av Oscillation
Ja, det är lite oklart, men en om du skapar två processer, kommer de båda ha varsin adressrymd, helt skiljda från varandra. Hade det däremot vart två trådar hade det blivit som du skrev, för då hade de haft delad adressrymd.
Tror frågan handlar om att man ska veta hur en process fungerar, att de har separata adressrymder och variablerna därmed inte delas.
Kanske, men jag sätter en femma på att du övertolkar betydelsen av att de skrivit process. Det är inte helt ovanligt att trådar kallas för lättviktsprocesser.
Citera
2017-02-11, 19:30
  #10
Medlem
Citat:
Ursprungligen postat av RulleRivare
Kanske, men jag sätter en femma på att du övertolkar betydelsen av att de skrivit process. Det är inte helt ovanligt att trådar kallas för lättviktsprocesser.
Ja, alltså har de skrivit process fast menar tråd så kan man lika gärna gå vidare med nästa fråga.
Jag antar att det är en OS kurs
Citera
2017-02-12, 08:57
  #11
Medlem
Citat:
Ursprungligen postat av RulleRivare
Totalt sett finns mindre än 256 olika körningar. Det är totalt åtta satser som ska köras och du kan välja om du ska köra nästa från antingen P1 eller P2. 2⁸=256. Det är inte ohanterbart mycket men drygt ändå. Det är fullt möjligt att analysera varje möjlig körning och titta på utskriften. Vi vet dock att fyra satser måste komma från respektive process. Det minskar storleken markant. Det är 70st totalt.

Så kommer du inte på något bättre sätt är det bara att kolla utdatan på samtliga 70. Du kan ju dock vara lite smart också och konstarea att 2.5 måste köras före 1.5 och 1.2 måste köras före 2.2.

Citat:
Ursprungligen postat av Oscillation
P1 skriver ut "1" och P2 skriver ut "2"

Så om du kör P1 och P2 kommer de tillsammans att antingen skriva ut "12" eller "21".
Frågan är alltså vilken process som kommer terminera först, och det är omöjligt att svara på om man inte vet exakt hur schedulern funkar. Men jag gissar på att det är 50% de är ute efter, är dock inte säker.

Svaret på b) är "", "12", "2", och "21". Svaret ska vara 14/70, så måste jag försöka hitta alla kombinationer som ger "21" och det ska bli 14st? Känns som det är många att få ihop.
Citera
2017-02-12, 11:49
  #12
Medlem
Citat:
Ursprungligen postat av Yukno
Svaret på b) är "", "12", "2", och "21". Svaret ska vara 14/70, så måste jag försöka hitta alla kombinationer som ger "21" och det ska bli 14st? Känns som det är många att få ihop.
Jag tror inte någon här kommer att gå igenom alla 70 åt dig. Du har ju dessutom fått en del ledtrådar.

1.2 måste köras före 2.2
2.2 måste köras före både 1.4 och 2.4
2.5 måste köras före 1.5

Bara att börja kötta
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback