Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdJoris Gerritsen Laatst gewijzigd meer dan 9 jaar geleden
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
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.