De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 12: mogelijkheden om met tijd om te gaan.

Verwante presentaties


Presentatie over: "Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 12: mogelijkheden om met tijd om te gaan."— Transcript van de presentatie:

1 slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 12: mogelijkheden om met tijd om te gaan

2 RTP slide 2Programmatuur voor real-time controleYolande Berbers overzicht n het begrip tijd n toegang tot een klok n opschorten van een proces n programmeren van timeouts n temporele bereiken

3 RTP slide 3Programmatuur voor real-time controleYolande Berbers inleiding n real-time u real duidt op verschil met computertijd u het is ‘real’ want het is de externe, werkelijke tijd n mogelijkheden voor real-time u vaak boven op het concurrency model in een taal u wordt daarom behandeld na concurrent programming

4 RTP slide 4Programmatuur voor real-time controleYolande Berbers het begrip tijd n veel tijdsstandaarden zijn reeds gebruikt u true solar day l tijd tussen twee opeenvolgende culminations (hoogste stand van de zon) l varieert tijdens het jaar, ongeveer 15 minuten u temporeel uur l één twaalfde van de tijd tussen zonsopgang en zonsondergang l varieert sterk tijdens het jaar

5 RTP slide 5Programmatuur voor real-time controleYolande Berbers het begrip tijd n veel tijdsstandaarden zijn reeds gebruikt u Universal Time (UT0) l gemiddelde solar time at Greenwich meridian l gedefineerd in 1884 u second (1) l 1/86 400 van een gemiddelde solar day u second (2) l 1/31 566 925.9747 van het tropische jaar 1990 l Ephemeris Time gedifineerd in 1955

6 RTP slide 6Programmatuur voor real-time controleYolande Berbers het begrip tijd n veel tijdsstandaarden zijn reeds gebruikt u UT1 l correctie van UT0 vanwege polar motion u UT2 l correctie van UT1 vanwege variatie in de snelheid van rotatie van de aarde

7 RTP slide 7Programmatuur voor real-time controleYolande Berbers het begrip tijd n veel tijdsstandaarden zijn reeds gebruikt u second (3) l duur van 9 192 631 770 perioden van straling dat correspondeert met de transitie tussen twee niveaus van de grond toestand van het cesium-133 atoom l nauwkeurigheid van huidige cesium atoom klokken worden geschat op 1 op 10 tot de 13de (dat is één klok fout per 300 000 jaren)

8 RTP slide 8Programmatuur voor real-time controleYolande Berbers het begrip tijd n veel tijdsstandaarden zijn reeds gebruikt u International Atomic Time (IAT) l gebaseerd op de cesium atoom klok u Coordinated Universal Time (UTC) l IAT klok gesynchroniseerd op UT2 door het toevoegen van occasional leap ticks l maximum verschil tussen UT2 (gebaseerd op astrologische metingen) en UTC (gebaseerd op atoom metingen) is kleiner dan 0.5 seconden

9 RTP slide 9Programmatuur voor real-time controleYolande Berbers toegang tot een klok n toegang tot een klok op 2 manieren u via de omgeving (radio-ontvanger mast in Frankfurt, GPS) u via de interne klok van een computer l klokprimitieven in de taal (Ada: zie volgende slide) l systeemoproepen (POSIX : zie volgende slide)

10 RTP slide 10Programmatuur voor real-time controleYolande Berbers toegang tot de klok n Ada u uitgebreid clock package l bevat een type time l je kunt hiermee rekenen s een tijdsduur optellen bij een tijd s verschil tussen twee tijden berekenen (is een tijdsduur) s enz. u optioneel real-time package met een klok l fijnere granulariteit l is volledig monotoon (bv geen zomeruur !!) n POSIX u ANSI C heeft een type time u POSIX voorziet een aantal routines

11 RTP slide 11Programmatuur voor real-time controleYolande Berbers opschorten van een proces n uitstellen van een proces = uitvoering opschorten voor een bepaalde tijd u relatief: men geeft de duur van de opschorting aan u absoluut: men geeft tijd waarop verder moet worden uitgevoerd n relatief opschorten u Ada: om 10 seconden op te schorten delay 10.0; u dat betekent niet dat precies na 10 sec. het proces weer uitvoert tijd opgegeven in programma granularity verschil klok-delay interrrupts disabled proces ready proces voert uit

12 RTP slide 12Programmatuur voor real-time controleYolande Berbers uitstellen van een proces n absoluut opschorten u berekenen van nieuwe tijd bv: Second_Action moet beginnen 10 sec na begin First_Action Start := Clock; First_Action; delay 10.0 - (Clock - Start); Second_Action; l houdt geen rekening met mogelijke onderbreking tijdens berekenen van de delay of net na de delay u speciaal primitief Start := Clock; First_Action; delay until Start + 10.0; Second_Action;

13 RTP slide 13Programmatuur voor real-time controleYolande Berbers uitstellen van een proces u speciaal primitief l ook hier weer niet 100% accuraat herstarten (granulariteits- verschil, interrupts die af staan, tijd in ready queue) l dit heet local drift l als dit in een lus voorkomt moet het goed geprogrammeerd worden (zie vb hieronder), anders gecumuleerde local drift declareNext : Time; Interval: constant Duration := 7.0: beginNext := Clock + Interval; loop Action; delay until Next; Next := Next + Interval; end loop; end;

14 RTP slide 14Programmatuur voor real-time controleYolande Berbers programmeren van timeouts n gebruikt voor het opvangen van verwachte gebeurtenissen die niet gebeuren u wachten op communicatie u het stoppen van code die te lang uitvoert n Ada: u alternatief in een select (dient dus voor ontvangen) l zowel relatieve als absolute delays zijn mogelijk l in volgende slide een voorbeeld met een relatieve delay u timeout bij het zenden (zie binnen twee slides)

15 programmeren van timeouts task Controller is entry Call (T : Temperature); end Controller; task body Controller is -- declarations beginloop select accept Call (T: Temperature) do New_Temp := T; end Call; or delay 10.0; -- action for timeout end select; -- other actions end loop; end Controller;

16 RTP slide 16Programmatuur voor real-time controleYolande Berbers programmeren van timeouts u timeout bij het zenden van een boodschap l dit heet timed entry call l slaat enkel op begin van communicatie loop -- get new temperature T select Controller.Call(T); or delay 0.5; null; end select; end loop;

17 RTP slide 17Programmatuur voor real-time controleYolande Berbers programmeren van timeouts u enkel boodschap versturen als ontvanger klaar staat (dus een soort timeout van 0) l dit heet conditional entry call select T.E -- entry E in task T else -- other actions end select; u zowel timed entry call en conditional entry call kunnen ook bij het oproepen van een protected object

18 RTP slide 18Programmatuur voor real-time controleYolande Berbers programmeren van timeouts u timeouts op acties kan in Ada via asynchronous transfer of control l vb van typisch gebruik (kan zowel met relatief als absoluut) begin Completion.Time :=... -- compulsory part Results.Write (...); -- call to procedure in protected object select delay until Completion_Time then abort loop -- improve results Results.Write (...); end loop; end select; end;

19 RTP slide 19Programmatuur voor real-time controleYolande Berbers programmeren van timeouts u POSIX: timeouts op acties via signal SIG_ALARM

20 RTP slide 20Programmatuur voor real-time controleYolande Berbers temporele bereiken n temporeel bereik (TS): verzameling van opdrachten met een bijhorende tijdsbeperking zoals u deadline, waartegen TS zeker moet uitgevoerd zijn u minimum delay: minimale tijd voor TS mag beginnen uitvoeren u maximum delay: max tijd gewacht kan worden voor uitvoering u maximale uitvoeringstijd u maximale duur: maximale tijd tussen begin en einde uitvoering u periodiek (bv een controletaak) u aperiodiek: komen random voor l door externe gebeurtenis l Poisson-verdeling, maar worst case analysis is niet mogelijk u sporadisch: aperiodiek met minimale tijd tussen 2 voorkomens

21 RTP slide 21Programmatuur voor real-time controleYolande Berbers temporele bereiken n correct uitvoeren van temporele bereiken, voor zowel periodieke, aperiodieke als sporadisch taken u alle processen uitvoeren met hun correcte frequentie u alle processen beëindigen voor hun deadline n verdere classificatie van processen (of van systemen) u harde real-time proces: deadline mag niet gemist worden u zacht real-time proces: deadline mag (af ten toe) gemist worden, uitvoer is nog altijd nuttig u firm real-time proces: als deadline gemist wordt is uitvoer nutteloos, maar deze toestand is niet dramatisch

22 RTP slide 22Programmatuur voor real-time controleYolande Berbers temporele bereiken n noch Ada, noch POSIX bieden mogelijkheid om expliciet deadlines op te geven u werken met delays kan wel, zie voorbeelden p: 382 u delays bieden mogelijkheid om minimale starttijd uit te drukken, een deadline halen is afhankelijk van de run-time scheduler n fout-tolerant systeem moet kunnen reageren op een deadline die gemist wordt u noch Ada noch POSIX bieden hier expliciete mogelijkheden voor u eventueel gebruik van ATC in Ada of signals in POSIX


Download ppt "Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 12: mogelijkheden om met tijd om te gaan."

Verwante presentaties


Ads door Google