Invertierte Seitentabelle

Dieses Thema im Forum "Unix Derivate & sonst. Unix Fragen" wurde erstellt von tr0nix, 25.06.2007.

  1. tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    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
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. hengs

    hengs Tripel-As

    Dabei seit:
    21.02.2005
    Beiträge:
    217
    Zustimmungen:
    0
    Ort:
    Salzburg
    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 ;-)
     
  4. #3 tr0nix, 26.06.2007
    Zuletzt bearbeitet: 26.06.2007
    tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    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 :))
     
  5. hengs

    hengs Tripel-As

    Dabei seit:
    21.02.2005
    Beiträge:
    217
    Zustimmungen:
    0
    Ort:
    Salzburg
    Stimmt, ausgelagerten Seiten werden nicht mehr gefunden. Bei einem auftretenden Page-Fault muss in der invertierten Tabelle eine normale Seitentabelle angesprochen werden.
     
  6. #5 tr0nix, 26.06.2007
    Zuletzt bearbeitet: 26.06.2007
    tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    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?
     
  7. hengs

    hengs Tripel-As

    Dabei seit:
    21.02.2005
    Beiträge:
    217
    Zustimmungen:
    0
    Ort:
    Salzburg
    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.

    Stimmt, ich war voll auf das OS konzentriert, umd das Paging musst Du Dich nicht kümmern.
     
  8. tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    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 :).
     
  9. hengs

    hengs Tripel-As

    Dabei seit:
    21.02.2005
    Beiträge:
    217
    Zustimmungen:
    0
    Ort:
    Salzburg
    Jetzt ist der Zeitpunkt gekommen, wo ich meine Unterlagen raussuchen muss, bevor ich Behauptungen aufstelle. Werde mich beeilen :))
     
  10. tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    Prima danke vielmals.. ich hab den Teil im Tanenbaum echt hoch und runtergelesen.. ich verstehs einfach ned :(
     
  11. hengs

    hengs Tripel-As

    Dabei seit:
    21.02.2005
    Beiträge:
    217
    Zustimmungen:
    0
    Ort:
    Salzburg
    Noch eine Frage, welchen Tanenbaum verwendest Du?

    Operating Systems
    Moderne Betriebssysteme
    Computerarchitektur

    oder einen anderen?
     
  12. tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    Moderne Betriebssysteme.. den verteilte Systeme hätte ich aber auch noch :)
     
  13. hengs

    hengs Tripel-As

    Dabei seit:
    21.02.2005
    Beiträge:
    217
    Zustimmungen:
    0
    Ort:
    Salzburg
    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
     
  14. tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    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!
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 hengs, 27.06.2007
    Zuletzt bearbeitet: 27.06.2007
    hengs

    hengs Tripel-As

    Dabei seit:
    21.02.2005
    Beiträge:
    217
    Zustimmungen:
    0
    Ort:
    Salzburg
    Würd mich schon noch interessieren, hab ein bisschen (10min) gegoogelt, aber nichts zufriedenstellendes gefunden. Ultrakurzform reicht, musst keinen Roman schreiben.
     
  17. tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    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?
     
Thema: Invertierte Seitentabelle
Besucher kamen mit folgenden Suchen
  1. invertierte seitentabellen

    ,
  2. invertierte seitentabelle