Omtentamen i Realtidsprogrammering för Au3, D3, E3 Datum: 2004-01-14 Tid: 0800-1300 Ansvarig lärare: Telefon: 1438 (kontor) Hjälpmedel: Inga särskilda hjälpmedel är tillåtna. Poäng: Tentamen omfattar 40 poäng fördelade på 7 uppgifter. 20 poäng krävs för betyget 3, 30 poäng för betyget 4 och 36 poäng för betyget 5. Övrigt: Använd ett nytt blad för varje uppgift, och lämna gärna lite plats i marginalen. Motivera alltid dina svar. Om du tycker att någonting är oklart, så gör själv nödvändiga antaganden. Redovisa alltid dessa antaganden. Lycka till! 1
Uppgift 1 (4 poäng) Vad innebär det att man har delad kod i ett system och vilka problem kan det leda till? Är funktionen nedan sk. reentrant (återinträdbar)? int values[128]; int computesomething(int arg1,int arg2) { int i,sum=0; for(i=0;i<128;i++) values[i]=(i + arg1)*(i + arg2); for(i=0;i<128;i++) sum = sum + values[i] + values[128 i]; return sum; } Uppgift 2 (6 poäng) Förklara följande begrepp: a) Dödlåsning b) Semaforer och monitorer c) Prioritets invertering och prioritets ärvning Uppgift 3 (6 poäng) För att utvärdera en del av ett större system har det viktade petrinätet till höger skapats som en modell av det. a) Konstruera nåbarhetsgrafen för petrinätet. b) Vad innebär begreppet levande och är petrinätet levande? c) Är petrinätet globalt rättvist och vad innebär (global) rättvisa? d) Vad är ett begränsat petrinät, är petrinätet begränsat? 2
Uppgift 4 (6 poäng) I ett system körs de tre processerna P1,P2 och P3 som använder resurserna R1 och R2. Vid ett tillfälle är resurserna fördelade enligt tabellerna till höger. Available visar hur många resurser som just nu finns lediga, Allocation hur många resurser som just nu finns tilldelade varje process och Max det maximala antalet resursenheter som varje process total kan behöva. Available 2 3 Allocation P1 2 0 P2 2 2 P3 0 2 Max P1 5 6 P2 4 5 P3 2 5 a) Vid det här tillfället begär process P1 två enheter av resurs R2. Kan P1 beviljas resurserna utan risk för dödlåsning? b) Antag att istället P2 begär två enheter av R2 ifrån det här läget. Kan detta beviljas utan risk för dödlåsning? c) Antag att vi endast är intresserade av att detektera dödlåsning och att processerna begär resurserna enligt tabellen till höger. Är systemet i dödlåsning just nu? Request P1 3 1 P2 2 3 P3 2 3 3
Uppgift 5 (6 poäng) Tänk dig att du ska implementera tre asynkrona processer A,B och C som körs cykliskt. Process A och B kan köras parallellt och först när de bägge är färdiga med sitt första jobb kan process C köras. När process C är färdig med ett jobb kan process A och B börja om igen etc. a) Visa hur detta kan implementeras i VxWorks med hjälp av semaforer. Du kan använda funktionerna: semtake(sem, WAIT_FOREVER) semgive(sem) sem = sembcreate(sem_q_fifo, startvärde) b) Beskriv din lösning i ett Petri-nät och visa genom att ge nåbarhetsgrafen för den att din lösning är korrekt. Tips: varje semafor blir en egen plats i petrinätet. Uppgift 6 (4 poäng) Antag att vi har ett system bestående av fyra periodiska processer, P1 P4, vars periodicitet och exekveringstid ges i tabellen nedan. Process Period Exekveringstid P1 50ms 15ms P2 70ms 20ms P3 30ms 5ms P4 40ms 10ms a) Antag att endast process P1 och P2 körs på samma processor. Går det att schemalägga dessa två processer med RMS (Rate Monotonic Scheduling). b) Om processerna P1,P2 och P3 körs på samma processor, går det då att schemalägga med RMS? c) Antag att processerna P1,P2 och P4 körs på samma processor. Går det då att schemalägga med EDF (Earliest Deadline First)? 4
Uppgift 7 (8 poäng) Eftersom en del studenter har läst kursen tidigare år med ett alternativt kursinnehåll så får ni två alternativa frågor att svara på. Svara på endast en av dom. Svarar ni på bägge frågor (oavsett om det är rätt svar eller inte) så får ni noll poäng. Observera att det är fritt för alla att välja fråga oavsett när ni läste kursen. a) Förklara vad följande UNIX-relaterade begrepp innebär och hur de hänger samman: Filsystem,filnamn, Åtkomsträttigheter Användare, Grupper. Devices X11 b) En fråga om olika sorters petrinät: Vad är skillnaden mellan ordinära petrinät och petrinät med flera tecken per plats. Vad är petrinät med ändlig kapacitet och hur förhåller de sig till ordinära petrinät. Petrinät med negation, vad innebär negation för exekveringen och uttryckskraften. Vad använder man petrinät med tid till, hur fungerar dom och vilka två varianter av timade petrinät finns det? 5