% & ' ()* #$! "#$ +-,/.<0=25476984:69;4 +-,/.10325476984:69;4 Datum: 2004-08-19 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) Förklara följande begrepp och till vad de används. a) Interrupt b) Signaler c) Semaforer d) Meddelande köer Uppgift 2 (4 poäng) Vad innebär dödlåsning och vilka är Coffmans fyra villkor för dödlåsning? Förklara varje villkor och beskriv för var och en av dom vilka metoder man kan använda för att undvika dom. Uppgift 3 (6 poäng) För att utvärdera en del av ett större system har 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 en styrdator i en industri för papperstillverkning finns tre processer P1,P2 och P3 som för att bli färdiga behöver dels tillgång till datorns minne (total 16MB tillgänligt) och dels tillgång till lediga interrupt signaler (totalt 8 tillgängliga). En bit in i körningen av datorn ser situationen ut som i tabellen 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 8 0 Allocation P1 4 4 P2 2 4 P3 2 0 a) Vid det här tillfället begär process P1 att allokera 4MB minne. Kan P1 beviljas resurserna utan risk för dödlåsning? b) Antag att istället P2 begär att allokera 2MB minne ifrån det här läget. Kan detta beviljas utan risk för dödlåsning? Max P1 10 6 P2 8 4 P3 8 8 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? Available: samma som ovan Allocation: samma som ovan Request P1 2 0 P2 2 2 P3 4 0 3
Uppgift 5 (6 poäng) I styrdatorn till en avancerad svarv finns tre processer P1,P2 och P3 som ansvarar för att utföra olika arbeten med svarven samt en process P4 som tar emot indata ifrån operatören. Pga begränsat utrymme i svarven kan endast två av arbetsprocesserna (P1-P3) arbeta samtidigt. Indata processen läser periodiskt av kommandon ifrån operatören och skickar ett jobb till någon av de tre arbetsprocesserna mha. en meddelandekö. Observera att P1-P3 endast arbetar så länge det både finns jobb och ledigt utrymme för deras arbete. Visa hur detta kan implementeras i VxWorks med hjälp av semaforer och meddalande köer. Skriv en funktion init() som körs när programmet startar och en funktion för varje process som körs.. Du kan använda följande VxWorks funktioner: sem = semccreate(sem_q_fifo, startvärde) semtake(sem,wait_forever) semgive(sem) q = msgqcreate(16,4,msg_q_fifo); msgqsend(q,msg,4,wait_forever,msg_pri_normal) msgqreceive(q,msg,4,wait_forever) Dessutom kan ni använda följande funktioner för att utföra arbetet i processerna resp. läsa nästa operatörs kommando. jobba(int i) int getnextjobb() Utför process i's jobb. väntar pä nästa operatörs kommando och retunernar numret på nästa jobb som ska utföras (1 3). Motivera varför din lösning är korrekt! 4
Realtidsprogrammering 2004-08-19 Uppgift 6 (6 poäng) Antag att vi har ett system bestående av fyra periodiska processer, P1 P3, vars periodicitet och exekveringstid ges i tabellen nedan. Process Period Exekveringstid P1 40ms 10ms P2 60ms 20ms P3 15ms 5ms 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 P3 körs på samma processor. Går det då att schemalägga med EDF (Earliest Deadline First)? Motivera dinna svar väl! 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