Tentamen i Realtidsprogrammering för Au3, D3, E3 Ordinarie Tentamen Datum: 2005-10-21 Tid: 14:00-19:00 Ansvarig lärare: Telefon: 1438 (kontor) Hjälpmedel: Miniräknare 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 35 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
2
Uppgift 1 (3 poäng) Förklara hur de tre olika sätten att realisera processer nedan fungerar. a) Monolitisk implementation b) Realtidsoperativsystem (RTOS) c) Realtidsspråk Uppgift 2 (6 poäng) Antag att vi ska styra en motor beroende på dess belastning för att hålla en konstant fart. Vi kan läsa nuvarande fart som ett heltal ifrån port1 och skriva önskad spänning till port2. För att beräkna lämplig spänning har vi funktionen pid nedan. För att styrningen ska fungera så måste styrningen ske i 100hz. Använd funktionen timenow nedan. int pid(int fart); /* ger nästa spänningsvärde */ double timenow(); /* absolut tid i sekunder */ Antag att vi dessutom måste anropa en utritningsfunktion, printit, 10 gånger per sekund. Ni kan anta att alla funktioner som körs inte tar någon tid (dvs. 0s per körning av pid() eller timenow()). a) Ge pseudokod (C-kod) för att lösa uppgiften som en monolitisk implementation. b) Ge pseudokod (C-kod) för att lösa uppgiften mha ett realtidsoperativsystem (ex: VxWorks). Uppgift 3 (3 poäng) Förklara och jämför de tre metoderna för schemalägning som ges nedan. Beskriv även deras för- och nack-delar. a) Ej föregripande schemaläggning b) Föregripande schemaläggning (Preemptive scheduling) c) Tidsdelning (Round-robin) 3
Uppgift 4 (8 poäng) För att utvärdera en del av ett större system så har det generella petrinätet till höger skapats som en modell av det. a) Konstruera om möjligt nåbarhetsgrafen för petrinätet, annars täckbarhetsträdet. 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? 4
Uppgift 5 (6 poäng) I en industri finns en styrdator som kommunicerar över ett nätverk och kontrollerar ett antal maskiner. På den här datorn finns fyra kontrollprocesser P1 P4 som samsas om två kritiska resurser, minne och strömförbrukning, då de styr maskinerna. Ursprungligen har datorn 16MB minne och tillgång till 10A ström. En bit in i körningen av datorn ser situationen ut som i den övre 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 Need hur mycket mer resurser som processerna kan behöva innan de blir färdiga. a) Vid det här tillfället begär process P3 att få allokera 2MB minne. Kan detta beviljas utan att systemet går i dödlåsning? b) Antag att P1 istället begär att få starta upp en till maskin som förbrukar 1A ström. 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 den nedre tabellen till höger. Är systemet i dödlåsning just nu? Available Available: samma som ovan Allocation: samma som ovan Request Allocation 2 3 P1 0 2 P2 2 2 P3 2 0 P4 10 3 Need P1 4 2 P2 4 4 P3 2 2 P4 6 4 P1 0 3 P2 4 0 P3 4 2 P4 2 7 5
Uppgift 6 (9 poäng) Antag att vi har ett system bestående av två sporadiska processer (P1, P2) och två periodiska processer (P3 och P4). De två sporadiska processerna tar bägge 1ms för varje körning och körs i medelfallet var 10'e ms och i värsta fallet var 5'e ms. Process P3 körs var 4'e ms och tar i medelfallet 1ms per körning och i värsta fallet 2ms per körning. Process P4 körs var 10'e ms och tar alltid 1ms per körning. a) Ge exekveringstiden, perioden och nyttjandegraden för processerna ovan för värsta fallet och för medelfallet. b) Går det att schemalägga det här systemet med RMS (Rate Monotonic Scheduling) i medelfallet? c) Går det att schemalägga det här systemet i värsta fallet med RMS? d) Antag att vi använde EDF (Earliest Deadline First) som schemalägnings metod och att det värsta fallet inträffade. Visa hur systemet schemaläggs under de första 15 ms. e) Under vilka omständigheter är det bättre att använda LST (LeastSlackTime first) istället för EDF när man schemalägger processer? Uppgift 7(5 poäng) a) Vilka två varianter av petrinät med tid finns det och hur fungerar dem? Vad är skillnaden mellan dem? b) Rita tillståndsgrafen för petrinätet till höger med tid. c) Vilken avfyrningsfrekvens har petrinätet till höger och vad innebär avfyrningsfrekvens? 6