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.

7.7 Erweiterung des Speicherverwalters 175<br />

AtoLRU enthalt alle Ports <strong>zur</strong> internen Kopplung der Komponenten A Pi<br />

zugehorigen Komponente LRU Pi . Es gilt:<br />

mit der<br />

AtoLRU = f?!LtoP i ?!P itoL j Pi 2 Pidg<br />

Fur die Kanale GStoP V und PVtoGS sind die in Tabelle 7.7.1 gezeigten Nachrichtentypen<br />

festgelegt. Die den privaten Ports zugeordneten Nachrichtenmengen konnen in Kapitel 5<br />

nachgelesen werden.<br />

Kanal n<br />

Nachrichtenmengen S n<br />

PVtoGS Pages Pid<br />

GStoP V<br />

fMemOkNoMemg<br />

)<br />

[ ?!N BS<br />

Tabelle 7.7.1: Nachrichtentypen fur die Komponente SE<br />

Mit der in Abschnitt 7.6 bereits genannten Funktion Mem wird aus order 2 OrderL die<br />

Information bestimmt, die fur die Belegung <strong>von</strong> Speicherplatz und die Realisierung des<br />

Prozesses im Hintergrundspeicher benotigt wird. Mem bestimmt eine Liste <strong>von</strong> Seiten des<br />

Prozesses slist 2 Pages . Wir setzen voraus, da slist so geordnet ist, da slist[1] die erste<br />

Seite, slist[2] die zweite Seite, und slist[#slist] die letzte Seite des Prozesses darstellt. Die<br />

Zuordnung der Seiten zu ihren Identikatoren ergibt sich gema dieser Liste. Die Lange<br />

der Liste bestimmt die Anzahl der benotigten Seitenrahmen. Diese Funktion wird deniert<br />

durch Mem : OrderL ;! Pages .<br />

Als weitere Abkurzungen verwenden wir SRInit und BInit fur die Liste aller Identikatoren<br />

der Seitenrahmen des Arbeitsspeichers bzw. aller Blocke des Hintergrundspeichers. Wir<br />

setzen voraus, da es im Hintergrundspeicher immer ausreichend viele freie Blocke gibt,<br />

und da der erste Proze in einem Systemzustand erzeugt wird, in dem alle Seitenrahmen<br />

und Blocke der Speicher frei sind.<br />

Mit diesen Erklarungen <strong>zur</strong> Erzeugung eines lokalen Speicherverwalters geben wir die folgende<br />

textuelle Beschreibung des Verhaltens <strong>von</strong> SE. Mit sr 2 SRid und b 2 Bid <br />

bezeichnen wir jeweils die Liste der aktuell freien Seitenrahmen bzw. Blocke.<br />

(1) SE wird durch den Empfang der Nachricht (slist pid) gestartet. SE belegt die<br />

ersten #slist Seitenrahmen der Liste SRInit und realisiert die Seiten in den ersten<br />

#slist Blocken gema BInit. Der lokale Speicherverwalter SV pid wird erzeugt und<br />

mit den erforderlichen Informationen initialisiert. Uber Kanal GStoP V werden die<br />

Nachricht MemOk und die Ports ?SV to(pid) und !(pid)toSV gesendet.<br />

In der initialen Phase <strong>von</strong> SE kann der erste Proze pid direkt erzeugt werden, da<br />

zu Beginn eine ausreichende Anzahl freier Seitenrahmen <strong>zur</strong> Verfugung steht. SV pid<br />

besteht aus den Komponenten A pid und LRU pid . Ein neu erzeugter SV pid wird mit<br />

folgenden Informationen initialisiert: die Liste der Seitenrahmen, die dem Proze

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!