Realtidssystem Z EDA300 Tentamen 15/12 2005, kl. 08.30 12.30 i V-huset Examinator: Docent Jan Jonsson Förfrågningar: Docent Jan Jonsson Telefon: 031 772 5220 Hjälpmedel: Utdrag ur Ada 95 Reference Manual R. Riehle, Ada Distilled Tvåsidig lathund, Ada vs. Java Typgodkänd kalkylator Omfattning: Tentamenstesen omfattar fem sidor (inklusive försättsblad) och innehåller sju uppgifter som sammanlagt kan ge maximalt 60 poäng. Betygsgränser: 24 35 poäng betyg 3 36 47 poäng betyg 4 48 60 poäng betyg 5 Lösningar: Anslås fredag 16/12 2005, kl. 09.00 på kurshemsidan. Resultat: Anslås torsdag 5/1 2006, kl. 09.00 på institutionens anslagstavla. Rättningsgranskning: Torsdag 5/1 2006, kl. 13.00 14.00 i rum 4128, Rännvägen 6 B (plan 4). Granskning vid annat tillfälle kan göras efter överenskommelse med examinator. VIKTIGT ATT TÄNKA PÅ 1. Motivera alla svar! Bristande motivering kan ge poängavdrag även om svaret är korrekt. 2. Redovisa alla beräkningar ordentligt! I så fall behöver en enkel felräkning som inte ger ett uppenbart felaktigt svar ge poängavdrag. 3. Om vissa förutsättningar för en uppgift saknas, eller om du anser att det är oklart vilka förutsättningar som gäller, så ange vilka förutsättningar du antar. 4. Skriv tydligt! Kan jag inte läsa vad det står, så är det fel... Lycka Till!
UPPGIFT 1 Ange om nedanstående påståenden är Sanna eller Falska. Korrekt svar ger 0.5 poäng, felaktigt svar ger -0.5 poäng och obesvarad fråga ger 0 poäng. Motivering av ett korrekt svar krävs ej, men om sådan finnes ger en övertygande motivation ytterligare 0.5 poäng medan en felaktig/klen motivation ger -0.5 poäng. Kvalitetsgaranti: resultatet på denna uppgift kan ej bli mindre än 0 poäng. (6 poäng) a) Med minnesskydd i realtidskärnan kan man förhindra att någon process kommer åt kod och data som tillhör en annan process. b) En aperiodisk process konsumerar i genomsnitt alltid mer processorkapacitet än en periodisk process. c) Med ett nödvändigt schemaläggningstest avses ett test sådant att om en given processuppsättning är schemaläggningsbar så ger testet alltid utslaget sant. d) Via annex Real-Time i Ada 95 kan programmet få en klocka med bättre noggrannhet än vad kalenderklockan kan erbjuda. e) Genom att använda prioritetstak tillsammans med skyddade objekt i Ada 95 blir det enklare att undvika deadlocksituationer i programvaran. f) Den GNU Ada95 korskompilator som används i kursens laborationer genererar kod för Intel 8086 mikroprocessor. UPPGIFT 2 En trevlig egenskap hos Ada 95 är möjligheten att skriva kod för avbrottshantering direkt i högnivåspråket. a) Redogör för det generella förfarande som används för att få en procedur (subrutin) skriven i Ada 95 att ta hand om ett avbrott från en I/O-krets. Ge i förekommande fall exempel på hur koden i Ada 95 ser ut för ett visst steg i förfarandet. (5 poäng) b) Hur kan man, med hjälp av det i kursens laborationer använda utvecklingssystemet (GNU Ada95), få veta vilka avbrott och tillhörande prioritetsnivåer som finns tillgängliga i laborationssystemets hårdvara? (1 poäng) UPPGIFT 3 I de flesta schemaläggningsteorier används värsta-fallets exekveringstid (eng. worst-case execution time, WCET) för att modellera beräkningskravet hos en realtidsprocess. En av tidigaste metoderna för WCET-analys presenterades av Shaw i slutet av 80-talet. a) Beskriv kortfattat Shaws metod för WCET-analys. (3 poäng) b) Förklara varför det är önskvärt att analysens WCET-värden är pessimistiska. (1 poäng) c) Ta fram WCET för funktionen Calculate (se nedan) genom att använda Shaws metod. Antag att varje tilldelning, retursats, och jämförelseoperation tar 1 µs att utföra. Ett anrop till en funktion kostar 1 µs plus WCET för funktionen i fråga. Varje additions- och subtraktionsoperation kostar 2 µs. Varje multiplikations- och divisionsoperation kostar 5 µs. Övriga språkkonstruktioner kan antas ta 0 µs att utföra. (8 poäng)
type Matrix is array (1..8,1..8) of Natural; function Calculate(M : in Matrix) return Natural is F : Natural := 0; C : Natural := 0; function Select(X, Y, Z : in Natural) return Natural is R : Natural; begin if Y < Z then R := Y; else if X < Z then R := Z; else R := X; return R; end Select; begin for i in 1.. 6 loop for j in i+1.. 7 loop F := F + Select(M(i,j-1),M(i,j),M(i,j+1)); C := C + 1: end loop; end loop; return F / C; end Calculate; UPPGIFT 4 Betrakta ett realtidssystem med periodiska processer som exekverar enligt frekvensprioriterad (eng. rate-monotonic = RM) schemaläggning. a) Beskriv Liu & Laylands tillräckliga schemaläggningstest för RM schemaläggning. (2 poäng) b) Ange under vilka förutsättningar som Liu & Laylands schemaläggningstest för RM gäller. (2 poäng) c) För att bevisa korrektheten hos schemaläggningstestet för RM använde sig Liu & Layland av ett teorem som visat sig vara generellt användbart vid analys av schemaläggningsbarhet av processer med statiska prioriteter. Beskriv innebörden av detta teorem. (3 poäng) Antag nu att det givna systemet består av tre processer. För varje process P i gäller att dess deadline D i är lika med perioden T i. Samtliga processer ankommer första gången vid tidpunkt 0. Processernas respektive utnyttjandegrader U i = C i /T i är U 1 =0.60, U 2 =0.15, U 3 =0.10. d) Om varken exekveringstiderna C i eller perioderna T i för processerna är kända, kan man då avgöra om processerna är schemaläggningsbara med RM? Motivera ditt svar. (3 poäng)
UPPGIFT 5 Betrakta ett realtidssystem med tre periodiska processer och ett run-time system där processerna exekveras enligt svarstidskritisk (eng. earliest-deadline-first ) schemaläggning, d v s dynamiska processprioriteter används. Nedanstående tabell visar C i (värsta-fallets exekveringstid), D i (svarstidskrav el. deadline ) och T i (periodtid) för de tre processerna. Samtliga processer ankommer vid tiden t =0. Alla värden är i millisekunder. C i D i T i P 1 3 4 4 P 2 1 4 10 P 3 3 16 20 a) Visa att Liu & Laylands utnyttjandegradstest för svarstidskritisk schemaläggning inte är tillämpligt i detta fall. (1 poäng) b) Visa huruvida processerna är schemaläggningsbara eller ej genom att tillämpa den teknik som kallas beräkningsbehovsanalys (eng. processor-demand analysis ). (5 poäng) UPPGIFT 6 I senaste numret av ELFAs tidning Antenn rapporteras om en intressant realtidstillämpning. Forskare vid universitetet i Tokyo har konstruerat en robothand som har förmågan att ta lyra, till och med i situationer där bollen kastas i 300 km/h enligt konstruktörerna. Antenn skriver vidare: Robothanden har tre metallfingrar och kan genom särskilda fotosensorer i handflatan läsa av kastbanan för en boll även i hög hastighet. Bilden av den annalkande bollen analyseras av särskilt utvecklade bildbehandlingskretsar; givare i de tre fingrarnas leder får handen att röra sig. Tack vare att varje led kan röra sig 180 grader på mindre än en tiondels sekund kan robothanden fånga bollen blixtsnabbt. Enligt forskarteamet ger deras resultat en föraning om hur robotar skulle kunna användas i situationer som kräver snabb reaktionsförmåga, som vida överstiger dagens industrirobotar. Du hittar mer information om tekniken bakom robothanden och även demonstrationsfilmer på denna länk: http://www.k2.t.u-tokyo.ac.jp/fusion/miraikancatching. Beakta nu en tillämpning där robothanden är riktad uppåt för att fånga en boll som släpps från en punkt rakt ovanför handen. Det rör sig alltså inte om någon horisontell kastparabel utan enbart om fritt fall.
a) Antag att robothandens bildbehandlingskretsar noggrant kan bestämma den momentana hastigheten på bollen när den befinner sig 6 meter ovanför handen. Beräkna den deadline (räknat från den tidpunkt då bollen passerar 6-metersläget), vid vilken robothandens fingrar måste fånga den fallande bollen om den släpps från en punkt på 11 meters höjd rakt ovanför handen. Alla avstånd mäts från den punkt där robothandens tre fingar möts för att hålla bollen (se ovanstående bild). (5 poäng) Värt att veta: Givet en acceleration a och en begynnelsehastighet v 0 har vid tidpunkt t tillryggalagts en sträcka s = at 2 /2+v 0 t. b) Identifiera, trots avsaknaden av detaljerad kännedom om den faktiska implementeringen av robothanden, vilka komponenter i robothanden och dess styrsystem som kan tänkas utgöra flaskhalsar i systemet. Det vill säga, vilka komponenter som bör ha störst inverkan på möjligheten att klara den deadline som erhållits i deluppgift a). (3 poäng) UPPGIFT 7 Betrakta ett realtidssystem med fyra periodiska processer och ett run-time system som tillämpar avbrytbar (eng. preemptive ) schemaläggning. Processerna exekveras enligt svarstidsprioriterad (eng. deadline-monotonic = DM) schemaläggning. Nedanstående tabell visar C i (värsta-fallets exekveringstid), D i (svarstidskrav el. deadline ) och T i (periodtid) för de fyra processerna. Samtliga processer ankommer vid tiden t = 0. Alla värden är i millisekunder. C i D i T i P 1 2 6 6 P 2 3 12 16 P 3 3 15 20 P 4 4 28 28 De fyra processerna är inte oberoende av varandra utan delar tre exklusiva resurser som skyddas av de binära semaforerna S a,s b, resp. S c. Processerna använder resurserna på följande sätt: Process P 1 låser resurserna som skyddas av S a och S c. Process P 2 använder resurserna som skyddas av S a och S b. Process P 3 använder bara resursen som skyddas av S b. Process P 4 använder bara resursen som skyddas av S c. Nedanstående tabell visar H i,j, den tid (i millisekunder) som process P i maximalt låser semaforen S j under sin exekvering. H i,a H i,b H i,c P 1 1 -? P 2 1 2 - P 3-3 - P 4 - -? Som framgår av ovanstående tabell är två värden ospecificerade: H 1,c och H 4,c.Tamed lämplig schemaläggningsanalys fram de maximala värden på dessa två parametrar för vilka systemet fortfarande är schemaläggningsbart. (12 poäng)