Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Seitenkacheln… (Aufgabe 3 Septmeber 2005 SOS) b)
hier haben wir ein kleines Problem mit der
Aufgabe 3 Septmeber 2005 SOS) b)
0x0000-0x3000 ist BS,
0x4000 ist T1
0x5000 frei
0x6000 D1
0x7000 T2
…
0xa000 - 0xf000 ist P2 für Prozess2
wie sieht denn jetzt die Seitentabelle dafür aus?
Werden hier die Seiten vom Index 0 an nummeriert von mit 1 ?
Sieht die Tabell dann so aus:
0 : 0x4000
1 : 0x5000
2 : 0x6000
3 : 0x7000
oder fängt der ganze Sums bei 1 an?
Und wie ist das mit dem freien speicher bei 0x5000??? Ist der
gar nicht eingetragen, weil er ja nicht zum Prozess gehört?
Also ich denke die Seitentabelle ist so aufgebaut, dass jede Seite des Hauptspeichers adressiert werden könnte, weil im Grunde ist der logische Adressraum des Prozesses ja durch die Adressbreite gegeben.
Und in diesem Beispiel sind ja logischer und physikalischer Adressraum (zufällig) gleich groß, nämlich 64 KByte (2^16 Byte). Wenn eine Seite 4 KByte (2^12 Byte) groß ist, gibt es folglich auch nur 2^4 also 16 Seiten.
Ich denke, die Page Tabelle hat immer 16 Page Deskriptoren, nur nicht alle zeigen notwendigerweise auch auf physikalische Seiten.
In der Aufgabe (so wie ich das gelöst hätte):
Page 0 zeigt auf nix
Page 1 zeigt auf 0x4000
Page 2 zeigt auf 0x7000
Page 3 zeigt auf 0x6000
Page 4 zeigt auf 0x37000 (Platte)
Pages 5-14 zeigen auf nix
Page 15 zeigt auf 0x9000
KiBi, MeBi, GiBi, TeBi Bytes
Das sind meines Wissens die wirklichen 2er-Potenzen.
Im Gegensatz zu Kilo, Mega, Giga, die sich ja auf die 10er-Potenzen beziehen.
Demnach ist 1KiB(KiBi Byte) = 1024 (2^10) Byte, aber 1KB (Kilo Byte) = 1000 (10^3) Byte. Da diese Definition, aber viel zu spät eingeführt wurde, wird oft von Kilo geredet, wenn KiBi gemeint ist.
@browny:
Omg, welch peinliche Wissenslücke 8-(
Aber gerüchteweise kennt fast niemand diesen neuen Standard, selbst in der IT-Branche wird er nicht angenommen, hmm…
dumme frage - wieso hat hier der virtuelle speicher 16 einträge und die seitentabelle 16 deskriptoren? vom aufbau her ist mir das vollkommen klar, aber nicht die größe… :-/
dass der hauptspeicher in 16 teile unterteilt ist klar (wg der seitengröße und dem hauptspeicher) aber irgendwie steht da doch nix zum virt speicher?
na ja bei 16 bit Adressen kann ich nicht mehr als 64K (äh 64 KiBi Bytes) adressieren. Auch virtuell nicht weil ja die Adressen nicht mehr hergeben.
Mit virtuellem Speicher bekomm’ ich nur dann mehr zusammen als mit
logischem, wenn die Adressen mehr hergeben als physikalischer Speicher
im System vorhanden ist.
ok da hatte ich wohl nen denkfehler
falls ich jetzt nen 32bit Adressraum hätte, wie gross ist dann da zwangsläufig der virtuelle Speicher? Nimmt der immer die max. mögliche Größe pro Prozess an? (Was wohl etwas verschwenderisch wäre?) Oder hab ich dann bei so einer Frage weitere Angaben?
btw: ich muss echt sagen dass die Betreuung hier spitze ist, sowas findet man als Wi’infler an der WiSo kaum!
Also ich muss sagen, ich steig bei Nr.3 Sept05 mit diesen Kibi Bytes einfach noch nicht durch.
Könnte jemand evtl mal ne Skizze zu 3 a und b online stellen und die Lösung zu c??? Dann kann ich das vielleicht besser nachvollziehen. Wäre klasse
was soll man da verschwenden? So lange sich nichts dahinter verbirgt, kostet’s
ja nichts. Man kann bei manchen Systemen riesige Mengen Speicher
allokieren und so lange man den nicht anfasst passiert überhaupt nichts.
Erst wenn man reinlangt faengt das BS an wirklcih was dafuer zu tun
(nennt man lazy evaluation).
Das hat jetzt aber nix mit der lazy evaluation bei der Auswertung von logischen Ausdrücken zu tun oder? Oder meinst du, dass man in einem Teil einer Bedingung die nicht ausgewertet wird so viel allokieren kann wie man will?