UPPGIFT 1 UPPGIFT 2 UPPGIFT 3



Relevanta dokument
Träning i bevisföring

Lathund, procent med bråk, åk 8

Individuellt Mjukvaruutvecklingsprojekt

konstanterna a och b så att ekvationssystemet x 2y = 1 2x + ay = b 2 a b

Du ska nu skapa ett litet program som skriver ut Hello World.

Programmera en NXT Robot

Algebra, polynom & andragradsekvationer en pampig rubrik på ett annars relativt obetydligt dokument

Mätningar på op-förstärkare. Del 3, växelspänningsförstärkning med balanserad ingång.

SEPARABLA DIFFERENTIALEKVATIONER

Modul 6: Integraler och tillämpningar

a n = A2 n + B4 n. { 2 = A + B 6 = 2A + 4B, S(5, 2) = S(4, 1) + 2S(4, 2) = 1 + 2(S(3, 1) + 2S(3, 2)) = 3 + 4(S(2, 1) + 2S(2, 2)) = = 15.

4-6 Trianglar Namn:..

Riktlinjer - Rekryteringsprocesser inom Föreningen Ekonomerna skall vara genomtänkta och välplanerade i syfte att säkerhetsställa professionalism.

Tentamen i matematisk statistik (9MA241/9MA341/LIMAB6, STN2) kl 08-13

ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD

Något om permutationer

Hävarmen. Peter Kock

vägtrafiken? Hur mycket bullrar

DOP-matematik Copyright Tord Persson. Bråktal Läs av vilka tal på tallinjen, som pilarna pekar på. Uppgift nr

Praktisk programmering

Partnerskapsförord. giftorättsgods görs till enskild egendom 1, 2. Parter 3. Partnerskapsförordets innehåll: 4

Föreläsning 8: Räkning. Duvhålsprincipen. Kombinatorik

Tentamen i Programmering grundkurs och Programmering C

Omvandla Vinklar. 1 Mattematiskt Tankesätt

Har vi lösningen för en bättre hemtjänst? Självklart.

Energi & Miljötema Inrikting So - Kravmärkt

Särskilt stöd i grundskolan

5-växlad manuell direktväxlad växellåda 085 DS: Grundinställning

När du som vårdpersonal vill ta del av information som finns hos en annan vårdgivare krävs det att:

Efter att du har installerat ExyPlus Office med tillhörande kartpaket börjar du med att göra följande inställningar:

FACITSKISSER version (från och med sidan 5)

Kapitel 6. f(x) = sin x. Figur 6.1: Funktionen sin x. 1 Oinas-Kukkonen m.fl. Kurs 6 kapitel 1

Föreläsning 5: Rekursion

Institutionen för matematik Envariabelanalys 1. Jan Gelfgren Datum: Fredag 9/12, 2011 Tid: 9-15 Hjälpmedel: Inga (ej miniräknare)

Erfarenheter från ett pilotprojekt med barn i åldrarna 1 5 år och deras lärare

Diskussionsfrågor till version 1 och 2

1. Frekvensfunktionen nedan är given. (3p)

Kurs: HF1012, Matematisk statistik Lärare: Armin Halilovic Datum: Måndag 30 mars 2015 Skrivtid: 8:15-10:00

729G04 - Hemuppgift, Diskret matematik

Anna Kinberg Batra Inledningsanförande 15 oktober 2015

Möbiustransformationer.

Träningsprogram - sommaren 2010

Webb-bidrag. Sök bidrag på webben Gäller från

Ha det kul med att förmedla och utveckla ett knepigt område!

Ekvationssystem, Matriser och Eliminationsmetoden

För dig som är valutaväxlare. Så här följer du reglerna om penningtvätt i din dagliga verksamhet INFORMATION FRÅN FINANSINSPEKTIONEN

Att koda en magnetremsa i plastkortskrivare med inbyggd magnetkodare.

Observera att alla funktioner kan ritas, men endast linjära funktioner blir räta linjer.

Vi skall skriva uppsats

Att köpa HUND. Goda råd inför ditt hundköp SVENSKA KENNELKLUBBEN

Subtraktion - Analys och bedömning av elevarbeten

Varför är det så viktigt hur vi bedömer?! Christian Lundahl!

Exempel på tentamensuppgifter i LMA100, del 1

Elektronen och laddning

Utveckla arbetsmiljö och verksamhet genom samverkan

Gruppindelning JUNIOR

Index vid lastbilstransporter

Bruksanvisning - Spisvakt Prefi 2.3

4-3 Vinklar Namn: Inledning. Vad är en vinkel?

När jag har arbetat klart med det här området ska jag:

Tränarguide del 1. Mattelek.

Manual för BPSD registret. Version 6 /

Boll-lek om normer. Nyckelord: likabehandling, hbt, normer/stereotyper, skolmiljö. Innehåll

( ostream ) << ( annan datatyp ) : ostream

Sammanfatta era aktiviteter och effekten av dem i rutorna under punkt 1 på arbetsbladet.

Kom igång med RIB Karta 1

Om erbjudandet för din pensionsförsäkring med traditionell förvaltning.

Idag: Dataabstraktion

Boken om Teknik. Boken om Teknik är en grundbok i Teknik för åk 4 6.

Gruppenkät. Lycka till! Kommun: Stadsdel: (Gäller endast Göteborg)

Snabbslumpade uppgifter från flera moment.

Statsbidrag för läxhjälp till huvudmän 2016

L(9/G)MA10 Kombinatorik och geometri Gruppövning 1

Virkade tofflor. Storlek & By: Pratamedrut. pratamedrut.se/blog/virkade tofflor 1

MÖJLIGHETERNAS TÄBY Barnomsorg

Det flippade klassrummet hur uppfattas det av eleverna?

SF1620 Matematik och modeller

Bedömning för lärande. Workshop för nyckelpersoner i Sundsvalls kommun

I den här delen används inte räknare. Motivera alltid din slutsats med matematiska uttryck, figurer, förklaring el.dyl.

INLÄMNINGSUPPGIFT 2 (Del 2, MATEMATISK STATISTIK) Kurs: MATEMATIK OCH MATEMATISK STATISTIK 6H3000

Kundservicerapport Luleå kommun 2015

Tillståndsmaskiner. 1 Konvertering mellan Mealy och Moore. Ola Dahl och Mattias Krysander Linköpings tekniska högskola, ISY, Datorteknik

SF1625 Envariabelanalys

Repetitivt arbete ska minska

FRÅGOR OCH SVAR. Sista dag för att ställa frågor är Det är pris med kantin i fordonet som efterfrågas.

Kunskapskrav för godtagbara kunskaper i matematik - slutet av åk 3

Sektionen för Beteendemedicinsk smärtbehandling

TIMREDOVISNINGSSYSTEM

Utvärdering APL frågor till praktikant

Gissa det hemliga talet

Invisible Friend Senast uppdaterad

ANVÄNDARHANDLEDNING FÖR

MultiBoot. Användarhandbok

Rekursion: varför? Problem delas upp i mindre bitar algoritm för att lösa problemet erhålls från problemformuleringen

Uppsala 26 november 2014

Lösningar till Tentamen i Matematisk Statistik, 5p 22 mars, Beräkna medelvärdet, standardavvikelsen, medianen och tredje kvartilen?

Laganmälan & Laghantering

Sannolikhet och Odds

HT 2011 FK2004 Tenta Lärare delen 4 problem 6 poäng / problem

Transkript:

Realtidssystem Z Lösningar tentamen 16/12 2004 UPPGIFT 1 a) Sant: Genom att låta realtidskärnan vara den som väljer minnesplats för processers kod och data kan primärminnet utnyttjas väldigt effektivt. Man erhåller dessutom ett skydd mellan processer genom att använda virtuella adresser. b) Falskt:Användandet av parallellt exekverade processer ger snarare en fördel vad avser schemaläggningsbarhet genom att använda avbrytbar exekvering och lämplig prioritetstilldelning. c) Sant: Om vi vet att processerna inte är schemaläggningsbara så måste ett tillräckligt test ge utfallet falskt. För sådana tester innebär ju nämligen utfallet sant alltid att processerna är garanterat schemaläggningsbara. d) Falskt: Okontrollerad typkonvertering kan bara ske om de inblandade datatyperna har samma storlek. e) Sant: Realtidsklockan aktiverar en avbrottsrutin där det är möjligt att ta ett nytt beslut angående vilken process som skall köra härnäst. f) Falskt: Genom att följa vissa rekommenderade designregler kan ett programvarusystem göras fritt från deadlock. UPPGIFT 2 a) Statiska processprioriteter finns som standard i Ada 95 (ARM 13.7). Den statisk bas-prioriteten för en process anges i specifikationen av processen med hjälp av pragmat Priority. Dynamiska prioriteter erbjuds som option (ARM Annex D: Real-Time Systems). Prioriteten för en process kan avläsas och modifieras med rutinerna Get Priority och Set Priority som finns definierade i paketet Ada.Dynamic Priorities. b) Det absolut vanligaste fallet är när man i använder ett takprioritetsprotokoll (exempelvis ICPP). Då kan en process tillfälligt ärva takprioriteten hos ett skyddat objekt. UPPGIFT 3 a) Shaws metod (timing schema) baseras på att man kan betrakta högnivåkonstruktioner som oberoende operander i en enkel aritmetik där WCET för sekventiella satser adderas, WCET för if-satser fås med max-funktionen etc. b) Eftersom Shaws metod enbart betraktar högnivåkonstruktioner måste man finna WCET för varje sådan konstruktion separat. Med den aritmetik som används kommer den totala WCET därför att vara garanterat pessimistisk. Den största nackdelen med Shaws metod är dock att den inte använder detaljerad information om maskininstruktioner och processormekanismer som cache och pipeline. Detta gör att noggrannheten hos metoden blir dålig om moderna RISC-processorer används. För äldre typer av mikrokontrollers blir noggrannheten dock bättre.

c) Falska vägar i ett program är kodsekvenser som på grund av t ex logiska tester aldrig kan exekveras. Ett exempel på en falsk väg är alternativ A följt av C i följande kod. if (X > 10) then Y := 1; while X > 0 loop Y := Y * X; X := X - 1; else Y := -1; end if; if (Y < 0) then Z := 0; while X > 1 loop Z := Z * X; X := X / 2; else Z := 0; end if; (A) (B) (C) (D) Eftersom variabel Y alltid blir större än 0 vid exekvering av alternativ A så kan bara alternativ C exekveras via alternativ B. Det är uppenbart att man vid beräkning av WCET för ovanstående programkod får ett bättre noggrannhet om det är känt att denna falska väg existerar. I annat fall kommer man att ta med beräkningstiden för en loopkonstruktion som aldrig kommer att utföras. UPPGIFT 4 a) Beteckna prioriteterna för P 1,P 2 och P 3 med H, M respektive L. Det innebär att takprioriteterna för S a,s b och S c blir H, H respektive M. b) Händelseförloppet blir som följer: Time Running Ready S a S b S c Kommentar 0 P 3 - - 1-1 - 1 P 3 ankommer med prioritet L och börjar exekvera 1 P 3 - - 1-0 - 1 P 3 låser S b och får prioritet H 3 P 3 - - 1-0 - 0 P 3 låser S c (och bibehåller prioritet H) 4 P 3 P 2-1 - 0-0 P 2 ankommer med prioritet M 6 P 3 P 1,P 2-1 - 0-0 P 1 ankommer med prioritet H 7 P 3 P 1,P 2-1 - 0-1 P 3 släpper S c (men bibehåller prioritet H) 9 P 1 P 2,P 3-1 - 1-1 P 3 släpper S b (och återfår prioritet L); P 1 börjar exekvera 11 P 1 P 2,P 3-0 - 1-1 P 1 låser S a 13 P 1 P 2,P 3-1 - 1-1 P 1 släpper S a 15 P 1 P 2,P 3-1 - 0-1 P 1 låser S b 17 P 2 P 3-1 - 1-1 P 1 släpper S b och avslutar sin exekvering; P 2 börjar exekvera 18 P 2 P 3-1 - 1-0 P 2 låser S c (och bibehåller prioritet M) 20 P 2 P 3-1 - 1-1 P 2 släpper S c 21 P 3 - - 1-1 - 1 P 2 avslutar sin exekvering; P 3 fortsätter sin exekvering 22 - - - 1-1 - 1 P 3 avslutar sin exekvering

UPPGIFT 5 a) Utnyttjandegraden i systemet är: U = i C i /T i =2/6+2/15 + 4/16 + 2/10 + 1/15 = 59/60 Eftersom U =59/60 1ochD i = T i för alla processer så är processerna schemaläggningsbara med avseende på EDF. b) En simulering av processerna med EDF schemaläggning ger följande tidsdiagram. P 1 P 1 1 P 2 1 P 3 1 P 4 1 P 5 1 P 6 1 P 2 P 1 2 P 2 2 P 2 2 P 3 P 1 3 P 2 3 P 4 P 1 4 P 2 4 P 3 4 P 5 P 1 5 P 2 5 0 10 20 30 t c) En simulering av processerna med RM schemaläggning ger följande tidsdiagram. P 1 P 1 1 P 2 1 P 3 1 P 4 1 P 5 1 P 6 1 P 2 P 1 2 P 2 2 P 3 P 1 3 P 1 3 P 1 3 P 2 3 P 4 P 1 4 P 2 4 P 3 4 P 5 P 1 5 P 2 5 0 10 20 30 t Som synes missar första instansen av process P 3 sin deadline. Processerna är alltså inte schemaläggningsbara med RM.

UPPGIFT 6 a) Tidskraven för vridning av ett rotorblad inför passage av vindkraftverkets torn är inte konstanta utan beror på rotorvarvtalet enligt följande resonemang. Då det är möjligt att få veta tidpunkten när bladet passerar tornet utnyttjar vi det som vår referens. Kalla tiden vid passage för t. Givet det aktuella rotorvarvtalet r (i rpm = varv per minut) tar det tiden t r =60/r (sekunder) för rotorn att snurra ett helt varv (360 grader) och det aktuella bladet att åter passera tornet. Då kan vi också härleda den tid t r18 som det tar för rotorn att snurra 18 grader: t r18 =18t r /360 = 0.05t r =3/r. Sedan vet vi att det kan ta upp till 100 ms att ställa om pitchvinkeln räknat från när kommando ges av datorn till pitchsystemet. Detta ger oss deadline D zero,räknat från passage av tornet vid tidpunkt t, för att påbörja vridningen till 0 graders pitchvinkel inför nästa passage av tornet vid tidpunkt t + t r : D zero = t r t r18 0.1 =60/r 3/r 0.1 =57/r 0.1. Vi kan också härleda den deadline D restore som gäller för att påbörja återställandet av ursprunglig pitchvinkel efter passage av tornet: D restore = t r18 =3/r b) Vi visar en lösning där vart och ett av rotorbladen får en dedikerad process som reglerar bladets pitchvinkel. Vi visar nedan enbart koden för process Blade 1. Vi har dessutom en separat process Update Pitch som ansvarar för att var 5:e sekund räkna ut lämplig pitchvinkel för bladen. normal_pitch : pitch_t := 10; task Update_Pitch is next_update : Time := Clock + 5.0; begin loop normal_pitch := wsp_to_pitch(get_wsp); delay until next_update; next_update := next_update + 5.0; end; task Blade_1 is rpm : rpm_t; current_time : Time; begin... -- diverse initieringar loop wait_blade(b1); -- invänta att bladet passerar tornet -- läs av aktuellt varvtal och klockslag current_time := Clock; rpm := get_rpm; -- invänta läge för återställning av normal pitchvinkel delay until current_time + 3.0 / rpm; set_pitch(b1, normal_pitch); -- invänta läge för att sätta pitchvinkel 0 delay until current_time + 57.0 / rpm - 0.1; set_pitch(b1, 0); end Blade_1; task Blade_2 is... -- samma kod som Blade_1 men med referens till B2 task Blade_3 is... -- samma kod som Blade_1 men med referens till B3

UPPGIFT 7 a) På grund av exekveringsmönstret måste de två processerna ha olika perioder. Och eftersom RM används så måste samma process dessutom hela tiden ha högst prioritet och därmed alltid exekvera oavbrutet vid varje ankomst. Man ser i diagrammet att denna process måste vara P 1 och kan dåocksåfå fram att C 1 =4ochT 1 = 10. Perioden på P 2 måste då varalängre än 5 för att prioritetstilldelningen skall stämma. Med hjälp av luckan i exekveringen mellan tidpunkterna 24 och 28 inser man att T 2 = 14. Det framgår också tydligt att C 2 =6. b) Utnyttjandegraden U = C 1 /T 1 + C 2 /T 2 =4/10 + 6/14 = 0.83. Observera att de två processerna fullt utnyttjar processorn trots att U är betydligt mindre än 1. Detta är ett typiskt karaktärsdrag hos RM. c) För C 1 =0är det trivialt att ta fram C 2 = 14: P2 1 P2 2 P2 3 För C 1 = 2 ser vi att C 2 = 10 om processerna skall fullt utnyttja processorn: P1 1 P2 1 P1 2 P2 1 P2 2 P1 3 P2 2 P2 3 P1 4 P2 3 För C 1 = 8 ser vi att C 2 = 2 om processerna skall fullt utnyttja processorn: P1 1 P2 1 P1 2 P2 2 P1 3 P2 3 P1 4 d) Utnyttjandegraden blir i de olika punkterna: C 1 =0,C 2 = 14: U =1.0 C 1 =2,C 2 = 10: U =0.91 C 1 =4,C 2 =6:U =0.83 C 1 =8,C 2 =2:U =0.94 Vad vi ser nu är att utnyttjandegraden har ett minimum för C 1 = 4,C 2 = 6, och att detta minimum är U =0.83. Om man nu betänker att vi använder RM och har två processer i systemet så är det mycket intressant att konstatera att värdet på Liu & Laylands schemaläggningsgräns för RM och två processer är just 2(2 1/2 1) = 0.83. Vad vi har gjort i denna uppgift är alltså att bevisa Liu & Laylands schemaläggningstest för specialfallet två processer. Det ursprungliga beviset använder i och för sig en striktare matematisk notation och beaktar samtliga kombinationer av processparametrar, men principen är exakt densamma.