Eine Methode zur formalen Modellierung von ...
Eine Methode zur formalen Modellierung von ...
Eine Methode zur formalen Modellierung von ...
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