Invertierte Seitentabelle

tr0nix

tr0nix

der-mit-dem-tux-tanzt
Moinsens

Kennt sich jemand mit invertierten Seitentabellen aus (Thema aus dem virtuellen Memory Bereich)?

Laut Tanenbaum wird da nur noch für jeden physischen Seitenrahmen eine virtuelle Addresse angelegt. Aber in dem Fall wäre das virtuelle Memory doch genausogross wie das physikalische?

Grüsse
Joel
 
Nach meinem Verständnis werden ja nur die Seitentabellen für jede virtuelle Seite "gekillt". Der Speicher wird daher auf einen Eintrag pro echter Speicherseite gekürzt.
Die echte Speicherersparnis ist dann die Reduzierung der Seitentabellen.

Jedoch kauft man sich dadurch einen Informationsverlust. Um einen virtuelle Adresse zu finden musst Du einen Suchlauf starten. Mögliche Beschleunigungsverfahren sind das vorstellen einer Hash-Tabelle.

In einer "Simulation" haben wir die Hash-Tabelle durch eine Doppelkette-Liste ersetzt. Den Erfolg dieser Aktion kann ich m Moment nicht mitteilen, muss erst in meinen Unterlagen suchen ;-)
 
Mmmmkay. Also Annahme ich habe 3 Programme, die je 10MB Speicher brauchen. Ich habe aber nur 16MB Speicher.

Das würde heissen, ich hätte (30MB / Seitengrösse) an virtuellen Addressen, wobei (16MB / Seitengrösse) Addressen auf das physikalische Memory verweisen, der Rest gibt einen Pagefault.

Das mit der Hash-Tabelle habe ich im Prinzip verstanden, nur nicht, wieso ein "Informationsverlust" auftritt. Wenn das Memory von 0x00 - 0xA0 geht, Swap anschliessend von 0xA1 bis 0xFF, habe ich doch in der Seitentabelle 0x00-0xFF die ich durchsuchen kann (wie ich das hinten verknüpfe ist ja egal)?

// Edit
Scheisse jetzt hab ichs "glaubs" kapiert... wenn ich meine Seite nicht im Memory finde, dann gibts einfach einen Pagefault.

Meine Seitentabelle geht also (mit dem oberen Beispiel) von 0x00-0xA0. Wenn ich meine Seite in der Tabelle bei 0x10 finde, liegt mein Rahmen bei 0x10 im Memory. Wenn nicht, gibt es einen Pagefault. Ist das so korrekt? (dann kämen noch mehr Fragen :))
 
Zuletzt bearbeitet:
Stimmt, ausgelagerten Seiten werden nicht mehr gefunden. Bei einem auftretenden Page-Fault muss in der invertierten Tabelle eine normale Seitentabelle angesprochen werden.
 
Okay, also die invertierte Tabelle hilft mir nur, mittels der Hash-Tabelle raschrasch rauszufinden, ob meine Seite im Memory vorhanden ist oder geladen werden muss. That makes sense :).

Jetzt aber:
Normalerweise addressiere ich ja mittels <seitennummer><offset>. Da würde ich doch schon im vorherein sehen, dass meine Seitennummer grösser als die vorhandenen Rahmennummern sind (und somit eingelagert werden müsste)?

Du sagtest noch, bei einem PF muss eine normale Seitentabelle angesprochen werden - wieso? Wie PageFaults behandelt werden (sprich einlagern von Daten auf dem Swap) wird doch vom OS gemacht?
 
Zuletzt bearbeitet:
Jetzt aber:
Normalerweise addressiere ich ja mittels <seitennummer><offset>. Da würde ich doch schon im vorherein sehen, dass meine Seitennummer grösser als die vorhandenen Rahmennummern sind (und somit eingelagert werden müsste)?

Ich hoffe, ich erzähle jetzt keinen Blödsinn, aber ist schon ziemlich lange her. Soweit ich weiß hast Du ja nur die virtuelle Adresse zur Hand und weißt nicht wo die reale Adresse abgebildet ist. Das heißt, du weißt nicht ob Sie im HS ist.

Du sagtest noch, bei einem PF muss eine normale Seitentabelle angesprochen werden - wieso? Wie PageFaults behandelt werden (sprich einlagern von Daten auf dem Swap) wird doch vom OS gemacht?
Stimmt, ich war voll auf das OS konzentriert, umd das Paging musst Du Dich nicht kümmern.
 
Mmmmmkaaaay..... das würde natürlich *theoretisch* Sinn machen. Aber dann hätte man ja wieder eine Seitentabelle mit den virtuellen Addressen die entweder auf das Memory verweisen oder dann gleich PF :).
 
Jetzt ist der Zeitpunkt gekommen, wo ich meine Unterlagen raussuchen muss, bevor ich Behauptungen aufstelle. Werde mich beeilen :))
 
Prima danke vielmals.. ich hab den Teil im Tanenbaum echt hoch und runtergelesen.. ich verstehs einfach ned :(
 
Noch eine Frage, welchen Tanenbaum verwendest Du?

Operating Systems
Moderne Betriebssysteme
Computerarchitektur

oder einen anderen?
 
Moderne Betriebssysteme.. den verteilte Systeme hätte ich aber auch noch :)
 
Hallo, ich hoffe Du kannst Dich noch ein bisschen gedulden, ich habe die Unterlagen aus meinem Studium in die Heimat verbannt und so wie es aussieht, werde ich warhscheinlich erst in der 2. Juli-Woche meinen Eltern einen Besuch abstatten. Muss leider sein :D

Markus
 
Kein Problem, ich konnte es heute von einem Kollegen erklären lassen :)! Wenn dus auffrischen willst, kann ichs hier natürlich nochmals erläutern, sonst lass ichs sein!
 
Würd mich schon noch interessieren, hab ein bisschen (10min) gegoogelt, aber nichts zufriedenstellendes gefunden. Ultrakurzform reicht, musst keinen Roman schreiben.
 
Zuletzt bearbeitet:
Also, Seitentabelle mappt Virtuelle-Addresse/Physikalische-Addresse. Virtuelle ist sauber durchnummeriert (0x00, 0x01, 0x02...) während die Physikalische es in der Seitentabelle nicht ist (0xF1, PG, 0x0A...).

Bei der invertierten Seitentabelle, ist die Tabelle nur so gross wie das Memory und die Tabelle ist gleich andersrum. Sprich das Mapping ist Physikalische-Addresse/Virtuelle-Addresse. Wenn ich jetzt die Virtuelle Addresse 0xFF will, muss ich zuerst alle Physikalischen Addressen durchsuchen um zu schauen, ob auf eine davon das virtuelle Mapping zutrifft. Wenn nicht -> PG.

Das Hashing um das zu lösen ist dir klar?
 
Okay, dann hatte ich es noch halbwegs richtig im Gedächtnis. Hashing ist mir klar.

Lustig finde ich nur, dass Du die Frage gestellt hast und ich Dir als einziger geantwortet habe, weil ich dachte ich kenn mich noch aus. Am Ende erklärst Du mir das Prinzip :))
 
Ja ich habs mir vom Kollegen erklären lassen.. aber bis ich das raffte man.. ich werde älter :)
 
So gehts mir auch, seit ich frontal auf die 30 zusteuere wird es immer schlimmer!
 
Naja, ich steuere frontal auf 25 zu. Also sozusagen auch auf 30 *hust* :)
 

Ähnliche Themen

Samba 3.6.25 - OpenLDAP Setup

CentOS 7: Falsche Metric bei regelbasiertem Routing nach Server-Reboot

PATH wird nicht richtig durchsucht

Keine Zugriff von Windows 10 auf Sambafreigaben

Jobangebot, Linuxer gesucht...!

Zurück
Oben