PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PAGING - Aufgabe im Rahmen einer Klausurvorbereitung nicht verstanden :(



Chito
12-06-2008, 16:21
Im Rahmen einer Klausurvorbereitung soll ich PAGING verstanden haben. Dumm nur das wir in der Vorlesung keine einzige Beispielaufgabe dazu rechneten.

Nun verstehe ich nicht so ganz wie ich das PAKING analog zur Aufgabe anwenden soll.


Vielleicht kennt sich ja jmd von Euch damit ein wenig aus.
Na, wer hat Lust für eine kleine Klausr-Beispielaufgabe? *gg

Ein Rechner soll einen 32 Bit Adressbus besitzen. Die Seitengröße des virtuellen Speichers
betrage 16 kByte. Sein physikalischer Speicher ist 512 MByte groß. Ein Eintrag in der
Seitentabelle ist 8 Byte groß.
Im System seien 4 Prozesse. Wie viel Prozent des physikalischen Speichers wird von den
Seitentabellen der Prozesse belegt, wenn jeder Prozess seine vollständige Tabelle geladen
hat?

Für jede Hilfestellung wäre ich euch sehr verbunden!

Gruss

ContainerDriver
12-06-2008, 20:32
Hallo,

da Du für jede Hilfestellung dankbar bist, hier mal meine Gedanken:
Du hast maximal 2^29 Byte Speicher zur Verfügung, in diesen Speicher passen maximal (2^29)/(2^14) = 2^15 Seiten (2^14 = 16*1024 = 16 kByte). Für jede Seite brauchst Du einen Eintrag der Länge 8 Byte, das ganze 4 mal, also 4* 8 * 2^15 Byte = 2^20 Byte. 2^20 von 2^29 sind ca. 0,195 %.

Nunja, habe keine Ahnung vom Paging :)
Was mich schon stutzig macht: wenn man wirklich die ganzen Tabellen so anlegt, dann dann haben sie zu viele Einträge, weil nicht mehr 2^18 Seiten zur Verfügung stehen (da die Tabellen ja auch Speicher brauchen); also ist da noch ein Fehler in der Rechnung - es sei denn, man betrachtet das als vernachlässigbar...

Gruß, Florian

Yonibear
15-06-2008, 09:47
Soweit ich das sehe, muss jede Seite des 32-Bit-Adressraumes einen Eintrag in der Seitentabelle haben, da das Betriebssystemen auch mit Adressen die über den physikalischen Speicher hinausgehen umgehen muss. Umgekehrt muss aber nicht der gesamte physikalische Speicher im virtuellen Adressraum abgebildet sein, daher kann man in der Tabelle nicht einfach Einträge einsparen weil der zugehörige physikalische Speicher schon belegt ist.

Wenn man den Addressraum in 16kb-Seiten unterteilt, braucht man dementsprechend (2^32) / (2^15) = 2^17 Einträge. Mal 8 Bytes und 4 Prozessen sind das 2^22 Bytes.
Erst jetzt für die Prozentsatzberechnung wird der physikalische Speicher relevant:
4 MiB / 512 MiB = 0,78125%.

ContainerDriver
15-06-2008, 11:04
Eine Frage zu deiner Rechnung: du rechnest (2^32) / (2^15), müsste es nicht (2^32) / (2^14) (da 2^14 16 KB sind) heißen?

Yonibear
15-06-2008, 11:10
Wie kommst du auf 14?
2^15 = 16384 B = 16 KiB

ContainerDriver
15-06-2008, 11:26
Mein Taschenrechner behauptet 2^14 = 16384.

Sabrina.Dankers
15-06-2008, 11:28
Ich will mich ja nicht einmischen und ich hab auch eigentlich keine Ahnung von dem Thema hier, aber 2^14 sind 16384 und nicht 2^15, das sind dann schon 32768.

edit: Mein Taschenrechner auch!

Yonibear
15-06-2008, 11:51
Ihr habt recht, irgendwie bin ich zu doof oder mit meinem Gnome-Taschenrechner stimmt was nicht. Danke für die aufmerksame Beobachtung, dementsprechend kommt dann natürlich der doppelte Prozenzsatz raus.
Ganz schön peinlich... ^^

Chito
19-06-2008, 17:04
Vielen Dank für eure Hilfe.

Hab mir den Lösungsvorschlag mal angeschaut.
Für mich sieht das Ganze sehr plausibel aus. Ich muss mir das mit dem paging jetzt noch mal durch lesen. Eigentlich ist die Aufgabe echt nicht sonderlich schwer. Brauchte einfach nur einen kleinen Denkanstoss. *gg ... :)