Forum: Offtopic Virtueller Speicher (Betriebssysteme)


von Mike R. (mrx3k1)


Lesenswert?

Hallo, ich lerne gerade für eine Betriebssysteme-Klausur und komme bei 
einer Aufgabe auf keinen grünen Zweig. Wäre super nett, wenn mir jemand 
einen Denkanstoß geben könnte.

Die Aufgabe lautet:
1
Gegeben sei eine MMU, die 2 KB (2^11 = 2048 Byte) Seitengröße unterstützt.
2
Insgesamt stehen 16 KB Hauptspeicher (2^14 = 16834 Byte) zur Verfügung. 
3
Sie haben insgesamt 16 Bit zur Adressierung von virtuellem Speicher zur Verfügung.
4
5
a) Wie groß ist der virtuelle Speicher, den Sie maximal adressieren können?
6
7
b) Wie groß ist dann der benötigte Platz für Auslagerungsspeicher auf der Festplatte?
8
9
c) Aus welchen Komponenten bestehen die virtuellen Adressen und wie groß (in Bits) sind diese jeweils?
10
11
d) Wie groß ist die Seitentabelle in der MMU?


Aktuell ist mir vor allem unklar was mit "Insgesamt" gemeint ist. Kann 
mir jemand aus der Logik sagen, wie das zu verstehen sein wird?

Zu a) keine Idee..
Zu b) Falls Wert aus a) > 16KB, dann Ergebnis = Wert aus a) - 16KB
Zu c) Aus Seitennummer und Offset. Besteht eine virtuelle Adresse aus 16 
Bit und beträgt das Offset 11 Bit, dann wird die Seitennummer durch 5 
Bit dargestellt.
Zu d) Die Seitentabelle umfasst 8 Rahmen (Rechnung: 16KB / 2KB = 8)

Ist bestimmt komplett falsch, oder?

Besten Dank vorab

: Verschoben durch User
von Pandur S. (jetztnicht)


Lesenswert?

a)Virtueller Speicher ist nicht vorhanden. Man hat also 16 bit als 
Seitenselektor. Das ergibt zusammen ?
b) Wieviel will man auslagern koennen ?
c) Die vistuellen adressen setzen sich wie zusammen ?
d) Die Seitentabelle enthaelt ?


So gesehen - alles falsch. Vieleicht diese Vorlesung nochmals mit etwas 
mehr Aufmerksamkeit reinziehen ...

von Mike R. (mrx3k1)


Lesenswert?

Erstmal vielen Dank für deine Hilfe :)

Wenn ich deine Bezeichnung "Selektor" richtig deute...
a) 16^2 = 64KB
b) Im Prinzip will man ja so viel auslagern können, wie das jeweilige 
Programm eben benötigt. Übersteigt der Bedarf die Größe des 
Hauptspeichers, werden mittels Paging die Seiten ersetzt.
c) aus Seitenadresse und Offset-Bit. Gibt wohl aber auch noch diese 
Status-Bits (zB R[ecent] und M[odified]) - wo die jetzt aber stehen 
erschließt sich für mich auch schon wieder nicht.
d) die Seitentabelle referenziert die virtuellen Adressen ("Mapping"). 
Daher komme ich jetzt auf: 64KB / 2KB = 32.

Jo, den Schuh muss ich mir anziehen, hab in den Vorlesungen durch 
Abwesenheit geglänzt. Normalerweise kann ich mir Vieles ganz gut selbst 
aneignen, aber beim Thema "BS" tue ich mir doch ziemlich schwer.

von Mikro 7. (mikro77)


Lesenswert?

Habe gerade mal kurz gesucht und auf Anhieb nix "brauchbares" im Web 
gefunden. Hat jemand einen URL oder gibt es einen Link auf dein 
Vorlesungsscript?!

Mike R. schrieb:
> a) 16^2 = 64KB

✓ (2^16)

> Zu b) Falls Wert aus a) > 16KB, dann Ergebnis = Wert aus a) - 16KB

✓

Wobei man eigentlich noch einen zusätzlichen HDD-Sektor braucht wenn der 
komplette virt. Speicher in Benutzung ist und ein Page Fault auftritt.

> Zu c) Aus Seitennummer und Offset. Besteht eine virtuelle Adresse aus 16
> Bit und beträgt das Offset 11 Bit, dann wird die Seitennummer durch 5
> Bit dargestellt.

✓ (Ergebnis 5+11 ist ok, Herleitung etwas wirr)

Man bestimmt die (physical) page frame number mit Hilfe der page table, 
d.h. man braucht den Page Table Index (high bits VA). Der Offset 
innerhalb der Pfn und die low bits der VA sind identisch.

> d) die Seitentabelle referenziert die virtuellen Adressen ("Mapping").
> Daher komme ich jetzt auf: 64KB / 2KB = 32.

✓ (die Seitentabelle wird durch die VA (high bits) "indiziert" und 
"referenziert" die Position der Page (bspw. pfn, zero page, disk 
address)).

...alle meine Kommentare "aus dem Bauch" heraus.

von Mike R. (mrx3k1)


Lesenswert?

Auch dir vielen Dank für deine Antwort. Hat nochmal gut geholfen :)
Das Skript würde ich wg. dem Urheberrecht ungern hochladen, macht 
sowieso den Eindruck als wenn es fast ausschließlich zur Teilnahme an 
der Vorlesung zu gebrauchen ist (das Skript wirft jedenfalls mehr Fragen 
auf, als es beantwortet :/ )

von Pandur S. (jetztnicht)


Lesenswert?

Eher nicht.

Erst muss man die Seite in den speicher mappen. 2k auf 16k macht faktor 
8.

ich brauch also eine Seitentabelle, die mir sagt welche Seite wo im 
speicher ist mit 8 Eintraegen. Macht 3 bit.

2^16 Seiten koennen adressiert werden, macht 25 Bit adressen fuer ein 
byte aus dem gesammten virtuellen speicher. Heisst adressierbarer 
Bereich 25 bit, irgendwas mit 32MByte.

von c. m. (Gast)


Lesenswert?

ohne mich in irgendeiner weise auszukennen…

soll das so eine art real-mode segment:offset geschichte sein?
man braucht von den "16 Bit zur Adressierung" 11 für jedes byte in einem 
2048byte segment, weitere 3bit um die 8*2kb RAM Pages ansprechen zu 
können, und hat dann noch 2bit frei um "externen speicher" ansprechen zu 
können.

so in etwa?

von Pandur S. (jetztnicht)


Lesenswert?

Nicht ganz. Es gibt 2^16 pages. macht 16 bit. Eine page hat 2^11 
adressen macht nochmals 11 bit. also ist der virtuelle Bereich 25 bit 
Adressen. Der reele Bereich ist 16k = 14bit, welche sich auf 11bit 
innerhalb einer page plus 3 bit fuer 8 pages aufteilen.

Die Seitetabelle mapt also die 3 bit auf die 16 bit fuer die pages, und 
die 11 bit innerhalb einer page bleiben erhalten.

von Mikro 7. (mikro77)


Lesenswert?

c. m. schrieb:
> ohne mich in irgendeiner weise auszukennen…
>
> soll das so eine art real-mode segment:offset geschichte sein?

Das ist reine Adressierungssache im Real-Mode: 2x 16-Bit-Register um 20 
Bit zu adressieren.

> man braucht von den "16 Bit zur Adressierung" 11 für jedes byte in einem
> 2048byte segment, weitere 3bit um die 8*2kb RAM Pages ansprechen zu
> können, und hat dann noch 2bit frei um "externen speicher" ansprechen zu
> können.

Hier gibt es physisch 14-Bit und virtuell 16-Bit. D.h. 2^16 - 2^14 Bytes 
müssen extern untergebracht werden.

Die MMU mit einer Pagegröße von 2K ist lediglich eine von vielen 
Möglichkeiten das umzusetzen.

von Mike R. (mrx3k1)


Lesenswert?

Hmm, rein aus der Logik erscheint mir "irgendwas mit 32MB" extrem viel, 
dafür dass der Aufgabe absolute Steinzeit-Specs zugrunde liegen..

von (prx) A. K. (prx)


Lesenswert?

Nicht jede Antwort auf deine Frage ist richtiger als deine Antworten.

Leider ist nicht jede Frage eindeutig beantwortbar, ohne das Modell von 
MMU und Auslagerungsspeicher zu kennen, das in der Vorlesung verwendet 
wurde. So ist (d) davon abhängig, ob die MMU mit einer linear 
adressierten Tabelle arbeitet, oder assoziativ.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.