22.04.2014 Aufrufe

Eine Methode zur formalen Modellierung von ...

Eine Methode zur formalen Modellierung von ...

Eine Methode zur formalen Modellierung von ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

4.6 Zentrales Dispatching <strong>von</strong> m Prozessoren 95<br />

Fall explizit betrachten, in dem ein nachster Proze erst dann wieder angefordert wird,<br />

wenn Prozessoren frei werden.<br />

Funktionsgleichungen fur f DZ<br />

Q<br />

8s 2<br />

n2NMultiZP Z<br />

[S n] rrq k 2 IN pFreePZ 2 f1:::mg i 2 f1:::ng<br />

M T M P 2 P(f1:::mg) PortList 2 f?!PZjtoP?!PtoPZjg :<br />

9h 2 (f1:::mg ) ! Type DZ :<br />

(1) f DZ (fQtoD 7! h Pi!DtoP i ig s)<br />

= fDZtoT 1 7! h rrq i DtoP i 7! h?PZ1toP !PtoPZ1 !DtoPii<br />

Fur #p > 1 und k = ft:p :<br />

DtoPZ1 7! h!PZ1toP ?P toP Z1 i DtoQ 7! h Nextig h(h2:::mi)(s)<br />

(2) h(p)(fQtoD 7! h Pi!DtoP i iDTtoDZ 7! h M T i DP toDZ 7! h M P P ortList ig s)<br />

= fDtoTk 7! h rrq i DtoQ 7! h Nexti PiAlloc Suspend Resetgh(rt:p FreePZ)(s)<br />

Fur #p = 1 und k = ft:p :<br />

(3a)<br />

h(p)(fQtoD 7! h Pi!DtoP i iDTtoDZ 7! h M T i DP toDZ 7! higs)<br />

= fDtoTk 7! h rrq i PiAlloc Suspendgh(hi)(s)<br />

Fur #p = 1 #P ortList 6= 0 und k = ft:p :<br />

(3b) h(p)(fQtoD 7! h Pi!DtoP i iDTtoDZ 7! h M T i DP toDZ 7! h M P P ortList ig s)<br />

= fDtoTk 7! h rrq i DtoQ 7! h Nexti PiAlloc Suspend Resetgh(F reeP Z)(s)<br />

Fur #p 6= 0 und PortList 6= hi :<br />

(4) h(p)(fQtoD 7! h Empty iDTtoDZ 7! h M T i DP toDZ 7! h M P P ortList ig s)<br />

= fDtoQ 7! h Nexti Suspend Resetgh(p FreePZ)(s)<br />

(5) h(hi)(fQtoD 7! hiDTtoDZ 7! h M T i DP toDZ 7! h M P P ortList ig s)<br />

= fDtoQ 7! h Nexti Suspend Resetgh(FreePZ)(s)<br />

wobei : PiAlloc = DtoP i 7! h?PZktoP!PtoPZk!DtoPii DtoP Zk 7! h!P ZktoP ?P toP Zk i<br />

Suspend = DtoPZj 1 7! h Suspend i:::DtoPZj m 7! h Suspend i<br />

Reset = DtoTl 1 7! h Reset i:::DtoTl m 7! h Reset i<br />

fj 1 :::j m g = M T n M P <br />

und fl 1 :::l m g = M P n M T <br />

8l 2 f1:::mg : (#l cFreePZ = 1 , #f!P ZltoP g cP ortList = 1) ^<br />

(#l cF reeP Z = 0 , #f!P ZltoP g cP ortList = 0)<br />

Die Nummern der Prozessoren, die suspendiert werden mussen, ergeben sich aus den Menge,<br />

die DZ <strong>von</strong> den Komponenten DT und DP erhalt. Die Mengen M T bzw. M P charakterisieren<br />

die Timer, die ein Timeout melden, bzw. die Prozessoren, deren zugeordnete<br />

Prozesse terminiert sind. An die Prozessoren, die nicht durch die Menge M P identiziert<br />

werden, wird eine Suspendierungsnachricht gesendet. Falls ein Prozessor eine Suspendierung<br />

in Verbindung mit der Terminierung des ihm zugeordneten Prozesses abschliet, wird

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!