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 11: controle van de hulpmiddelen.

Verwante presentaties


Presentatie over: "Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 11: controle van de hulpmiddelen."— Transcript van de presentatie:

1 slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 11: controle van de hulpmiddelen

2 RTP slide 2Programmatuur voor real-time controleYolande Berbers overzicht n beheer van hulpmiddelen n expressieve kracht en gebruiksgemak van verschillende synchronisatieprimitieven ivm controle van hulpmiddelen u eventueel later n impasse (deadlock)

3 RTP slide 3Programmatuur voor real-time controleYolande Berbers beheer van hulpmiddelen n software die een hulpmiddel controleert (of beheert) u software is passief: protected object, monitor u software moet een actieve rol spelen: server (proces, taak) n implicaties van hulpmiddelen-allocatie ivm betrouwbaarheid u een proces dat vroegtijdig stopt kan nog een hulpmiddel vast hebben u processen kunnen ‘verhongeren’: doordat sommige processen hulpmiddelen monopoliseren kan het gebeuren dat andere processen nooit aan de bak komen u processen kunnen in een impasse geraken: een situatie waarbij een aantal processen geen vooruitgang maken en daarbij nog hulpmiddelen blokkeren ook

4 RTP slide 4Programmatuur voor real-time controleYolande Berbers beheer van hulpmiddelen n om modulariteitsredenen worden hulpmiddelen ge- encapsuleerd u bv in Ada: body van resource kan een taak of een protected body bevatten u in POSIX gebruikt men conditie variabelen en mutexen om monitors te verwezenlijken package Resource_Control is type Resource is limited private; function Allocate return Resource; procedure Free (This_Resource : Resource) ; private type Resource is... end Resource_Control;

5 RTP slide 5Programmatuur voor real-time controleYolande Berbers expressieve kracht en gebruiksgemak n twee soorten synchronisatieprimitieven u conditie-synchronisatie: gebruikt in monitors u synchronisatie met wachters (avoidance synchronisation) gebruikt bij comm. met boodschappen en bij protected objects n expressieve kracht: mogelijkheid om synchronisatie- beperkingen op te geven met de aangeboden primitieven n gebruiksgemak omvat u expressieve kracht: hoe gemakkelijk kun je synchronisatie- beperkingen aanduiden met de aangeboden primitieven u combinatiemogelijkheden: hoe gemakkelijk kun je de verschillende beperkingen combineren om complexe synchronisatienoden te realiseren

6 RTP slide 6Programmatuur voor real-time controleYolande Berbers expressieve kracht en gebruiksgemak n overzicht van de verschillende synchronisatiebeperkingen: verder uitgewerkt u type van aanvraag u volgorde van de aanvragen u toestand van hulpmiddelenbeheerder en zijn objecten (gegevens) u parameters van de aanvraag u prioriteit van de aanvrager n twee linguïstieke aanpakken: u conditioneel wachten l gebruikt bij monitors l aanvragen die niet toegelaten kunnen worden moeten in een wachtrij wachten u vermijden (met wachters) l de wachters houden aanvragen die niet voldoen tegen

7 RTP slide 7Programmatuur voor real-time controleYolande Berbers expressieve kracht en gebruiksgemak n type van aanvraag u hulpmiddelbeheerder kan voorrang willen geven afhankelijk van het type van aanvraag u bv write-aanvragen voorrang geven op read-aanvragen u monitors: alle procedures hebben gelijke voorrang (zie ook oefeningen) u Ada: alle entries, procedures en functies hebben gelijke voorrang maar ook mogelijkheid van gebruik van Count- attribuut in een guard (zie verder ook de oefeningen) entry Write when not Manager_Locked and Read’Count = 0 is... end Write;

8 RTP slide 8Programmatuur voor real-time controleYolande Berbers expressieve kracht en gebruiksgemak n volgorde van de aanvragen (van belang voor ‘eerlijkheid’ en om verhongering te voorkomen) u monitors: alle aanvragen staan in één enkele wachtrij, die FIFO geordend is u Ada: l elke entry heeft eigen wachtrij, die elk FIFO geordend zijn l er is geen regel over de verhouding van de verschillende wachtrijen onderling (dus niet noodzakelijk FIFO) l wenst men echt FIFO, dan moet men met dubbele oproepen werken (dit heeft nogal wat nadelen, zie verder) Server.Register; Server.Action (...);

9 RTP slide 9Programmatuur voor real-time controleYolande Berbers expressieve kracht en gebruiksgemak n toestand van hulpmiddelenbeheerder en zijn objecten (gegevens) u voorbeelden: een hulpmiddel kan enkel aangevraagd worden als het vrij is (zoals schrijven in een bepaald bestand) of als er plaats is (bv een element toevoegen in een buffer) u monitors: test, gevolgd door mogelijk wait op conditie-variabele u Ada: guard die direct test

10 RTP slide 10Programmatuur voor real-time controleYolande Berbers expressieve kracht en gebruiksgemak n parameters van de aanvraag (bv identiteit van aanvrager, grootte van de aanvraag) u monitor: l test op hoeveelheid hulpmiddel dat aangevraagd wordt, gevold door mogelijk wachten op conditievariabele l wanneer hulpmiddelen vrijgegeven worden maakt men wachtenden wakker, totdat een geschikte kandidaat gevonden wordt u Ada: l zie volgende slide

11 RTP slide 11Programmatuur voor real-time controleYolande Berbers expressieve kracht en gebruiksgemak n parameters van de aanvraag u Ada: l probleem: guards kunnen enkel gebruik maken van interne variabelen en niet van de parameters van de aanvraag l er kan dus niet getest worden op bv de grootte van de aanvraag voordat men de aanvraag toelaat l oplossing 1: s indien grootte een niet te groot discreet type is: voorzie een ‘familie’ van allocate-entries, 1 per soort grootte (analoog behandeling van type van aanvragen) s als discreet type erg groot is: dubbele oproep nodig –best ge-encapsuleerd zodat ‘gebruiker’ het niet merkt –programma erg ingewikkeld (zie vb pp )

12 RTP slide 12Programmatuur voor real-time controleYolande Berbers expressieve kracht en gebruiksgemak n parameters van de aanvraag u Ada : l intermezzo: probleem bij dubbele aanvragen s een abort zou kunnen optreden tussen de twee oproepen –of de server verwacht absoluut de tweede oproep en komt zo in problemen –of men schrijft server met een timeout op de tweede oproep om dit op te vangen, maar timeout kan ook te kort zijn in een bepaalde situatie, en het proces doet dan nog een onverwachte tweede oproep l oplossing 2: gebruik maken van ‘requeue’ faciliteit van Ada (zie verder)

13 RTP slide 13Programmatuur voor real-time controleYolande Berbers expressieve kracht en gebruiksgemak n prioriteit van de aanvrager u processen hebben prioriteiten l de scheduler gebruikt die in zijn policy l maar dit heeft meestal geen invloed op wachtrijen u prioriteit kan meegegeven worden bij de parameters (in functie bv van identiteit van aanvrager): zie behandeling van parameters u eventueel kunnen verschillende soorten entries voorzien worden voor de verschillende soorten prioriteiten (bv een aparte entry voor hoogdringende aanvragen): zie behandeling van type van aanvraag u zowel in Ada als in POSIX kan een prioriteit opgegeven worden voor de verschillende wachtrijen

14 RTP slide 14Programmatuur voor real-time controleYolande Berbers requeue-faciliteit in Ada n oplossing voor het gebrek aan expressiviteit inherent aan synchronisatie met wachters (wanneer men geen test kan doen op de parameters van de aanvraag) n basis van de requeue-faciliteit: u een aanvraag die toegelaten werd kan weer teruggeplaatst worden achter een entry l dit kan de entry zijn waar het toegekomen is l of een andere entry van de taak of van het protected object l of een entry van een andere taak of protected object u meest gebruikt: plaatsen in een andere entry van de taak of van het protected object

15 RTP slide 15Programmatuur voor real-time controleYolande Berbers impasse n eenvoudig vb van impasse (processen wachten): u proces A heeft printer toegewezen gekregen en wacht op band u proces B heeft band toegewezen gekregen en wacht op printer u er is geen tweede printer noch een tweede band n eenvoudig vb van livelock (processen voeren uit maar maken geen vooruitgang): u proces A heeft de printer toegewezen gekregen en polt actief om te zien of de band vrijkomt u proces B heeft de band toegewezen gekregen en polt actief om te zien of de printer vrijkomt u er is geen tweede printer noch een tweede band n verhongering: een proces krijgt nooit het aangevraagde n def van liveness: iets wat uiteindelijk ooit zal gebeuren

16 RTP slide 16Programmatuur voor real-time controleYolande Berbers impasse n 4 noodzakelijke voorwaarden voor impasse u wederzijdse uitsluiting bij gebruik van hulpmiddel u er zijn processen die hulpmiddelen vast hebben en wachten op andere u men kan geen hulpmiddelen afpakken wanneer ze toegekend zijn (geen pre-emption van hulpmiddelen) u circulaire wachtrij: er bestaat een gesloten ketting van processen die op hulpmiddelen wachten bezet door het volgende proces

17 RTP slide 17Programmatuur voor real-time controleYolande Berbers impasse n 3 methodes voor het behandelen van deadlock u voorkomen van impassen u vermijden van impassen u detecteren van een impassen en deze breken n voorkomen van impassen u analyse van programma en bewijzen dat impassen niet kan voorkomen: erg moeilijk met laag niveau primitieven zoals semaforen u er voor zorgen dat 1 van de 4 voorwaarden nooit voorkomt (zie volgende slide)

18 RTP slide 18Programmatuur voor real-time controleYolande Berbers impasse n voorkomen van impassen : er voor zorgen dat 1 van de 4 voorwaarden nooit voorkomt u wederzijdse uitsluiting l moeilijk: sommige hulpmiddelen zijn gewoon exclusief u vast hebben en wachten l altijd alle hulpmiddelen tegelijk aanvragen (alles of niets) l leidt tot inefficiënt gebruik van de hulpmiddelen u geen hulpmiddelen afpakken l wel afpakken: moeilijk om toestand van proces te herstellen u circulaire wachtrij: l strikte volgorde vastleggen tussen de hulpmiddelen l hulpmiddelen mogen enkel in die volgorde aangevraagd worden

19 RTP slide 19Programmatuur voor real-time controleYolande Berbers impasse n vermijden van impassen u dit gebeurt dynamisch u van elk proces moet bijgehouden worden l wat reeds gereserveerd is l wat aangevraagd wordt l wat totaal nodig is u toestand is veilig als er een volgorde van uitvoering bestaat zodat geen impasse voorkomt u volgende slide geeft een eenvoudig voorbeeld (met 1 soort hulpmiddel) u vaak niet zo eenvoudig, daarom zijn er moeilijke algoritmen om dit op te lossen, bv het Banker’s algoritme

20 RTP slide 20Programmatuur voor real-time controleYolande Berbers impasse n vermijden van impassen u voorbeeld: systeem met 12 bandeenheden u eerste geval: veilige toestand omdat er nog 3 bandeenheden vrij zijn en P1 dus kan eindigen, dan zijn er genoeg vrij opdat P0 zou kunnen eindigen en dan zijn er genoeg voor P2 processheeftmax nodig P0510 P124 P229 u tweede geval: onveilige toestand omdat er maar 2 meer vrij zijn; P1 kan nog eindigen maar daarna kunnen noch P0 noch P2 iets doen procesheeftmax nodig P0510 P124 P239

21 RTP slide 21Programmatuur voor real-time controleYolande Berbers impasse n detecteren van een impassen en deze breken u vermijden van impasse moeilijk en niet haalbaar: l maximale noden van een toepassing zijn vaak door systeem (en soms door te toepassing) niet gekend l kost voor het systeem is erg hoog u detectie (ook wel moeilijk) gebaseerd op volgende kennis: l wat is er reeds toegekend l op wat wachten processen l met deze informatie een grafe opbouwen (zie volg slides) s grafen reduceren om alle processen die normaal kunnen eindigen er uit te halen s kijken of er een cyclus optreedt

22 RTP slide 22Programmatuur voor real-time controleYolande Berbers impasse n grafen voor het detecteren van impassen: P1P2P4P3 R1 R2 deze grafe kan gereduceerd worden (zie volgende slide)

23 RTP slide 23Programmatuur voor real-time controleYolande Berbers impasse n gereduceerde grafe: er is geen impasse P1P2 R1 R2

24 RTP slide 24Programmatuur voor real-time controleYolande Berbers impasse n grafe met een cyclus, dus een impasse P1P2 R1 R2

25 RTP slide 25Programmatuur voor real-time controleYolande Berbers impasse n het breken van een gedetecteerde impasse u delen van een hulpmiddel (kan meestal niet want exclusief) u een proces vroegtijdig stoppen (is nogal drastisch) u een hulpmiddel afpakken l dit kan gecombineerd worden met achterwaarts herstel l keuze van wat moet afgepakt worden van wie is niet zo eenvoudig


Download ppt "Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 11: controle van de hulpmiddelen."

Verwante presentaties


Ads door Google