Betriebssysteme:Aufgaben H

Aus Tudwiki
Wechseln zu: Navigation, Suche


H1[Bearbeiten]

Lösung[Bearbeiten]

LRU[Bearbeiten]

 Rahmen 1: 0__3_H___H__
 Rahmen 2: _1__2__1___2
 Rahmen 3: __4___0_H_H_

(Zahl = Seitenfehler + Ersetzung, H = Hit)

8 Seitenfehler

  • bessere Näherung an optimale Strategie
  • aufwendige Implementierung, z.B. Zugriffszeit für jeden Rahmen speichern

FIFO[Bearbeiten]

 Rahmen 1: 0__3_H_1____
 Rahmen 2: _1__2____3__
 Rahmen 3: __4___0_H_H2

9 Seitenfehler

  • schlechte Ersetzungsstrategie
  • einfache Implementierung, z.B. Anlegen eines Zeigers auf den nächsten zu ersetzenden Rahmen

H2[Bearbeiten]

Ordnen Sie den Begriff „Arbeitsmengenmodell“ in das Gebiet Betriebssysteme ein!
Erläutern Sie den Begriff anhand folgenden Beispiels:
Seitenreferenzfolge eines Prozesses: 1 2 3 3 2 4 5 2 6 4 5 2 5 7 4
Arbeitsmengenparameter: 
a) 3 Seitenreferenzen
b) 4 Seitenreferenzen.
Beschrieben Sie Vor- und Nachteile des Verfahrens!

„Arbeitsmengenmodell“:

  • ist ein Ersetzungsstrategie-Modell, das zur möglichst guten Seitenersetzung in einem System dienen soll
  • Ausnutzung des Lokalitätsverhaltens
  • Arbeitsmenge (AM) bestimmt die Anzahl der Seiten die ein Prozess parallel im Hauptspeicher halten darf
  • die Größe dieser Menge(n) wird vorher definiert
  • es beruht auf der Annahme, dass ein Prozess mit der definierten Menge möglichst wenige Pagefaults auslöst (klar, warum sollte man das auch sonst machen)
  • Menge der Seiten die ein Prozess wirklich braucht (Working set)
    • kann nur angenähert werden, da üblicherweise nicht vorhersehbar
a) 3 Seitenreferenzen
1 2 3 3 2 4 5 2 6 4 5 2 5 7 4
AM={1}
AM={1,2}
AM={1,2,3}
AM={2,3}
AM={3,2}
AM={3,2,4}
AM={2,4,5}
AM={4,5,2}
AM={5,2,6}
AM={2,6,4}
AM={6,4,5}
AM={4,5,2}
AM={5,2}      //.looser. meiner Meinung nach {2,5}, da ja 5 referenziert wird 
AM={2,5,7}
AM={5,7,4}
b) 4 Seitenreferenzen.
1 2 3 3 2 4 5 2 6 4 5 2 5 7 4
AM={1}
AM={1,2}
AM={1,2,3}
AM={1,2,3}
AM={2,3,2} //Muss hier nicht AM={2,3} stehen?! wenn dann AM={3,2} oder?

//Eigentlich ist die Reihenfolge bei Mengen doch egal und es dürfen Elemente nur einmal vorkommen, oder? Bin auch für AM={2,3}/oder andersrum;)

AM={3,2,4}
AM={3,2,4,5}
AM={2,4,5}
AM={4,5,2,6}
AM={5,2,6,4}
AM={2,6,4,5}
AM={6,4,5,2}
AM={4,5,2}  //.looser. {4,2,5}
AM={5,2,7}  //.looser. {4,2,5,7}          
AM={2,5,7,4}

Vorteile

  • gutes Verfahren
  • wertet auch "Nutzungsinformationen" aus (nicht wie FIFO)

Nachteile

  • schwierige Implementierung
  • Thrashing/Seitenflattern
  • Größe der Menge muss irgendwie bestimmt werden -> Aufwand

H3[Bearbeiten]

a[Bearbeiten]

physische Adresse = Adresse eines real im Hauptspeicher existierenden Speicherblocks

virtuelle Adresse = adressiert Daten im virtuellen Adressraum eines Prozesses; muss bei Zugriff in physische Adresse übersetzt werden (PT, MMU); meist größer als physische Adresse

b[Bearbeiten]

invertierte Seitentabelle:

0 {P1,8} // Eintrag v. P1: 8 | 000 | 0 <- p-bit nicht gesetzt, daher nicht im HS, also kein Eintrag in invertierter PT.

1 -

2 -

3 {P1,9}, {P2,13}

4 {P2,11}

5 {P1,7}, {P2,12}

6 -

7 -

  • mehrere Prozesse können den gleichen Rahmen in ihren Adressraum einblenden $ \rightarrow $ invertierte Seitentabelle muss mehrere Einträge pro Kachelindex unterstützen

//es soll gerade darauf hinweisen das es durch Implementierung nicht möglich ist mehrere Prozesse zuzuweisen (Rahmen 5 und 3), auch die invertierte Seitentabelle hat eine PresentBit Spalte!


//blödsinn invertierte Seitentabellen haben gerade KEIN present bit. das is auch ein großer nachteil daran un falls ein pagefault auftritt müssen inv pt eine normale pt zur konsultation aufsuchen

//laut meinen aufzeichnungen haben inv. seitentabellen ein present bit. würde sinn machen, wenn man eine seite aus dem hauptspeicher entfernt, dass man anstatt die ganze zeile in der hauptspeicher adresse leerzumachen(oder z.b. durch 0en zu ersetzen). dann wird einfach das present bit auf 0 gesetzt und schon weiss man bescheid, dass der inhalt der zeile nicht korrekt ist

H4[Bearbeiten]

Ein Rechner mit 32-Bit-Adressen benutze eine zweistufige Seitentabelle. Die virtuellen Adressen werden aufgeteilt in ein 9-Bit-Feld der ersten Seitentabellenstufe, ein 11-Bit-Feld der zweiten Seitentabellenstufe und ein Offset. Wie groß sind die Seiten und wie viele sind es im virtuellen Adreßraum?

                        32 Bit
 9 Bit PageDirectory  | 11 Bit PageTable | 12 Bit  Offset 

Wie groß sind die Seiten

  • also 2^12 -> 4096 -> 4KB groß ist eine Seite

wie viele sind es im virtuellen Adreßraum?

  • 2^9 * 2^11 = 2^20 Stück = 1048576

H5[Bearbeiten]

Aufgabenstellung[Bearbeiten]

Erläutern Sie die Begriffe virtueller Speicher, page table und inverted page table! Gehen Sie jeweils auf Vor- und Nachteile ein!

virtueller Speicher[Bearbeiten]

Der virtuelle Speicher bezeichnet den vom tatsächlich vorhandenen Arbeitsspeicher unabhängigen Adressraum, der einem Prozess für Daten und das Programm vom Betriebssystem zur Verfügung gestellt wird.

Vorteile[Bearbeiten]

  • effiziente Nutzung vorhandenen Speichers
  • Verfügbarkeit von großen, linearen zusammenhängenden logischen Speicherbereichen
  • ermöglicht die Implementierung von Speicherschutzmechanismen

Nachteile[Bearbeiten]

  • erhöhter Verwaltungsaufwand (Ersetzungsstrategien, Seitenfehlerbehandlung)

page table[Bearbeiten]

Seitentabellen (engl. page table) sind Teile von Prozessen, welche der Transformation von virtuellen in physikalische Seitenrahmen dienen. Die optimale Seitengröße ist ein Kompromiss zwischen Häufigkeit von Seitenwechseln und Größe der Tabelle, liegt in der Praxis zwischen 2 und 32 KByte.

Es gibt Einstufige Seitentabellen und mehrstufige Seitentabellen.

inverted page table[Bearbeiten]

Insbesondere einstufige, aber auch mehrstufige, Seitentabellen benötigen sehr viel Speicherplatz, nur um die Seitentabelle im Speicher abzulegen. Mit dem Ansatz der invertierten Seitentabelle beseitigt man dieses Problem. Es wird in der Seitentabelle nicht mehr ein Eintrag pro virtueller Seite angelegt, sondern nur noch je ein Eintrag pro realer Speicherseite. Der Zugriff auf diese Tabelle benötigt nun jedoch einen Suchvorgang, um die virtuelle Adresse in der gesamten Seitentabelle zu finden und die zugehörige reale Adresse auszulesen. Häufig wird das Suchen in der invertierten Seitentabelle durch das Vorschalten einer Hashtabelle beschleunigt.

Da sich keine Informationen über ausgelagerte Seiten in der invertierten Seitentabelle finden, ist bei einem Seitenfehler der Rückgriff auf eine „normale“ Seitentabelle notwendig.


H6[Bearbeiten]

Was ist ein „working set“ (Arbeitsmenge)? Welchem Ziel dient dieser Begriff?
Beschreiben Sie die Vorgehensweise, und skizzieren Sie den sich ändernden         
Speicherinhalt für die abgebildete Referenzfolge dreier Prozesse A, B, C.
Dabei soll gelten:
 m = 5 Rahmen (Kacheln)
 τ = 2 Fenstergröße (Arbeitsmengenparameter).

// Steht viels schon bei H2

02-17-2007 14-50-40.png

// Bin mir NICHT sicher, ob das 100% richtig ist, bei V3 geht ja nix mehr -> also wird Prozess ausgelagert...dann fragt er aber wieder an...hm? Hab dann einfahc weitergearbeitet wie gehabt. Jemand eine Meinung?

Das wäre eine andere Variante:

AMenge.PNG


//du hast da aber einiges vergessen....

//Der Prozess C wird ausgelagert -> alle referenzierten Seiten entfernt <- bis genügend BM zur verfügung stehen! In der oberen Lösung würde C ja nie richtig arbeiten können da ja BM fehlen warum hast du dann bei C BM eingetragen?

H7[Bearbeiten]

a[Bearbeiten]

FIFO: Kachel 2 (die ist am ältesten)

LRU: Kachel 3 (der letzte Zugriff liegt am weitesten zurück)

Second Chance: Kachel 0


siehe -> http://os.inf.tu-dresden.de/Studium/Bs/WS2007/Klausurvorbereitung_Loesungen.pdf

b[Bearbeiten]

Kachel 3 wäre geändert worden, ohne je einen Zugriff erlebt zu haben (R=0). Eventuell ist durch den Clock-Algorithmus das R-Bit zwischendurch zurückgesetzt worden.


Ist Falsch!(laut Definition) Die Kardinalität der Arbeitsmenge entspricht nicht der Aufgabenstellung.

Gruß Homonn

H8[Bearbeiten]

Aufgabenstellung[Bearbeiten]

Erläutern und bewerten Sie das Verfahren an den Beispielen

  • Seitenaustausch bei virtuellem Speicher
  • Filecaching bei AFS!


Seitenaustausch bei virtuellem Speicher[Bearbeiten]

Least recently used (LRU) („Am längsten nicht verwendet“) ist eine Seitenverdrängungsstrategie für Cache-Speicher. Sie lagert diejenige Seite aus, deren letzte Referenzierung zeitlich am längsten zurückliegt.

Vorteile[Bearbeiten]

  • Einfach und genügsam. Die Strategie ist leicht implementierbar und erfordert kaum Verwaltungsaufwand.
  • Gezieltes Vorgehen. Sie wählt gezielt Seiten aus, die in letzter Zeit nicht verwendet wurden.

Nachteile[Bearbeiten]

  • Nur mittelmäßige Trefferrate. Wichtiger als die Frage, ob eine Seite referenziert wurde, ist oftmals die Frage, wie oft sie referenziert wurde. Least recently used nimmt auf diese Tatsache keine Rücksicht, was meist zu einer nur mittelmäßigen Trefferrate führt. Daher gelten Verfahren wie Least frequently used (LFU) als effizienter.


Filecaching bei AFS (Andrew File System)[Bearbeiten]

Es wird die Datei aus dem Cache verdrängt, deren Zugriff am weitesten zurückliegt.

H9[Bearbeiten]

a[Bearbeiten]

siehe H3 a

b[Bearbeiten]

Seitentabelle von Prozess A (Index, Kachel, P-Bit):

0 01 1
1 00 0
2 11 1
3 00 1
4 -
5 -
6 -
7 -

Seitentabelle von Prozess B (Index, Kachel, P-Bit):

0 10 1
1 11 1
2 -
3 -
4 -
5 -
6 -
7 -

invertierte Seitentabelle (Index, Seiten):

0 {A,3}
1 {A,0}
2 {B,0}
3 {A,2}, {B,1}  //es ist nicht möglich das zwei Prozesse sich einen Index teilen! deswegen ja: "Stellen Sie die invertierte     
                  Seitentabelle auf, soweit dies möglich ist! Welches grundsätzliche
                  Problem invertierter Seitentabellen wird an dem Beispiel deutlich?"

Es muss aber möglich sein. Realisierung zB über einen Pointer zu einer Liste oder über eine Tabelle, deren Schlüssel aus (Rahmennr., Seitennr., Prozess) besteht.

H10[Bearbeiten]

a)[Bearbeiten]

$ P_1 $:
{1},{1,2},{1,2,3},{2,3},{2,3},{2}
   
$ P_2 $:
{a},{a,b},{a,b},{b,c},{b,c,d},{c,d,e}
 F F F G H H    
$ P_3 $:
{F},{F},{F},{F,G},{F,G,H},{G,H}

b)[Bearbeiten]

Rahmen  1 a F 2 b F 3 b F 2 c G 2 d H 2 e H
     1  1                   c c c   H H   H
     2    a                 a G G G G G   G
     3      F     F     F   F F F F F F   F
     4        2           2 2 2 2 2 2 2   2
     5          b     b     b b b       ? 
     6              3       3 3 3 3 3 3   3
    PF  x x x x x   x       x x   x x     
                            $ V_1 $$ V_2 $  $ V_3 $  
  • V1: P1={2,3};P2={c,b};P3={F}
  • V2: P1={2,3};P2={c,b};P3={F,G}
  • V3: P1={2,3};P2={d,c,b};P3={F,G}
    • => P2 wird ausgelagert?
  •  ? = wird wieder eingelagert?

H11[Bearbeiten]

a[Bearbeiten]

Die Seitentabelle enthält Einträge für $ 2^{20} $ Seiten (32 bit virtuelle Adresse - 12 bit Offset) zu je 4 Byte, also umfasst sie 4 MByte.

Dies ist sehr groß (1K Seiten) und kann durch eine mehrstufige Adressierung oder eine invertierte Seitentabelle umgangen werden.

b[Bearbeiten]

Schreibzugriff auf 0x000011ca $ \rightarrow $ physische Adresse: 0x13ad1ca (wird nicht zurückgegeben) $ \rightarrow $ protection fault, da nur Lesezugriff gestattet

Lesezugriff auf 0x001a0ace $ \rightarrow $ physische Adresse: 0x2468ace $ \rightarrow $ erlaubt

Lesezugriff auf 0x00000000 $ \rightarrow $ keine physische Adresse $ \rightarrow $ page fault oder Lesen von 0x0

Schreibzugriff auf 0x000023c1 $ \rightarrow $ physische Adresse: 0x03273e1 $ \rightarrow $ erlaubt

Schreibzugriff auf 0x001a11a2 $ \rightarrow $ physische Adresse zunächst: 0x0d401a2 (wird nicht zurückgegeben), Seite wird aber durch BS vorher kopiert und erhält eine andere Adresse $ \rightarrow $ neuer Eintrag am Index 001a1 mit W- und P-Bit, ohne COW-Bit

H12[Bearbeiten]

0xBFFFFABE $ \rightarrow $ 0x42ABE

0x1038A $ \rightarrow $ PROTECTION FAULT

0x12034 $ \rightarrow $ PAGE FAULT

0x13304 $ \rightarrow $ PAGE FAULT

0x11200 $ \rightarrow $ 0x38200 //das stimmt nicht! Müsste auch nen PAGE FAULT geben. Wahrscheinlich vergessen beim 4. Zugriff das p in der Seitentabelle zu streichen. Dementsprechend kommt beim 5. Zugriff Kachel 23 raus.

0x14198 $ \rightarrow $ phys. Adresse (an der Stelle 0x14198) wird zu 0x5198 geschrieben mit Write Bit

0xE278 $ \rightarrow $ PAGE FAULT //wird durchs BS abgefangen und zu nem Protecion fault, da der bereich nicht gesetzt => zugriff illegal, keine aktion

H13[Bearbeiten]

a)[Bearbeiten]

4 Kacheln

13 bit Offset, um 8KByte zu adressieren (2^13=8K)

$ \rightarrow $ 3 bit für die Seitentabelle $ \rightarrow $ 2^3 = 8 Einträge

b)[Bearbeiten]

Prozess A
Seite Kachel Present
0 1 1
1 0 0
2 3 1
3 0 1
0


Prozess B
Seite Kachel Present
0 (2) 1
1 3 1
0

c)[Bearbeiten]

invertierte Seitentabelle
Rahmen Seite Prozess Present
0 3 1 1
1 0 1 1
2 0 2 1
3 2 1 1

//in der letzten Zeile müsste noch Seite 1 des Prozesses B -> nicht möglich, da die invertierte Seitentabelle mehrere Einträge pro Kachelindex unterstützen müsste

d)[Bearbeiten]

Dieser Zugriff löst einen Seitenfehler aus. Daraufhin wird das BS versuchen, einen Rahmen für die neue Seite zu leeren, was nach (irgend-)einem Algorithmus geschieht. Auch könnte das BS den Prozess beenden oder auslagern.

H14[Bearbeiten]

a)[Bearbeiten]

Seitengröße 256 Byte -> 8 bit offset

14 bit - 8 bit = 6 bit für PageTableIndex

-> 64 Einträge, 1 Byte pro Eintrag -> 64 Byte

b)[Bearbeiten]

$ \alpha $)[Bearbeiten]

Ja, das zweifache Vorkommen von Rahmen sieben, einmal present und einmal nicht, ist vermutlich auf die Initialisierungsphase zurückzuführen, in der aus Effizienzgründen nur das p-bit auf 0 gesetzt wird.

$ \beta $)[Bearbeiten]

Schreibvorgänge
virtuelle Adresse Seite physische Adresse Reaktion des BS
0x210 2 / PROTECTION FAULT (R/W=0)
0x012 0 0x512 /
0x1A4 1 / PAGE FAULT (P=0)

H15[Bearbeiten]

a[Bearbeiten]

$ RD(1)=\frac{8}{17}\approx 0,47 $

$ RD(2)=\frac{4}{12}\approx 0,33 $

$ RD(3)=\frac{3}{16}\approx 0,19 $

$ RD(4)=\frac{2}{9}\approx 0,22 $

$ \rightarrow $ Seite 3 wird ausgewählt

b[Bearbeiten]

Vorteil gegenüber LRU: Bezieht auch die relative Häufigkeit der Referenzen auf eine Seite mit in die Berechnung ein.

Nachteil gegenüber LRU: Mehr Daten müssen gespeichert werden ($ EZ(i) $, $ RZ(i) $).

Vorteil gegenüber Fifo: Weniger Page Faults, durch Beachtung der Gesamtzahl der Referenzen und Zeitpunkt deren Einlagerung.

Nachteil gegenüber Fifo: Höherer Implementierungsaufwand.

H16[Bearbeiten]

Aufgabenstellung[Bearbeiten]

Ist eine 24 Bit lange virtuelle Adresse mit einer physischen Adreßbreite von 32 Bit vereinbar?

Wenn ja: Begründung; worin liegt der Vorteil?
Wenn nein: Wie ist es dann möglich, den gesamten physischen Speicher zu nutzen?

Antwort[Bearbeiten]

Ja.

Man braucht in allen Programmen nur 24 Bit pro Adresse (egal ob Sprungziel oder Variable). Das macht die Programme kleiner und senkt somit den Hauptspeicherverbrauch, die Ladezeiten beim Programmstart, den Platzverbrauch auf der Festplatte, die benötigte Zeit beim Herunterladen von Programmen aus dem Internet, ...

Und man spart noch mehr Hauptspeicher ein, da kein Prozess mehr als 2^24 Bytes = 16 MBytes verbrauchen kann. Wenn ich hier bei mir so schaue, wieviel Speicher einige Prozesse verbrauchen, da dürften sich zwar die Programmierer bitter beklagen, aber vielleicht lernen sie dann, Speichereffizienter zu programmieren

H17[Bearbeiten]

a) Seitengröße = 4KB --> 2^12 Bytes

Ein Eintrag muss n Bits für die Adresse der nächsten Stufe der Seitentabellenhierarchie aufnehmen, sowie 5 weitere Bits (a,p,s,w,x) Da die Tabellen aller Stufen gleich groß sein sollen, fasst eine solche Seitentabelle also 2^n solcher Einträge.

--> 2^12 = 2^n * ((n+5)/8)

--> n=11

//???? Also ich hab da 2^64/2^12=2^52 -> 52Bit+5Bit für den andern Quatsch=57Bit ->8 Byte --Brogazo 15:11, 22. Feb 2007 (CET) Weiß nicht ob die erste Lösung besser ist, aber ich hätte es instinktiv wie mein VOrredner gemacht

b) 64-Bit-Prozessor --> 64-Bit-Maschienenworte = 8 Byte = 2^3 Byte

   Seitengröße = 2^12 Bytes
   Anzahl der Seiten: 2^12 / 2^3 = 2^9 = 512 Seiten

// ich denke nicht wegen "64-Bit-Prozessor --> 64-Bit-Maschienenworte = 8 Byte = 2^3 Byte"

//sondern Anzahl der Seiten: Seitengröße / Eintrag in Setentabele (gerechnet oben) = 2^12/2^3 Byte = 512 Seiten

/* Du sollst ja aber nicht deine berechnete Größe verwenden, sondern ein Maschinenwort, so wie es in der Aufgabenstallung steht */

c) Eine Stufe nimmt 9 Bit der Adresse ein. Die letzten 12 Bit der Adresse sind der Offset. 64-12 = 52. 52/9 = 5,irgendwas. Die Seitentabelle hat also 6 Stufen. Ich würde die erste Stufe kleiner machen, da in den hinteren Bereichen mehr das Lokalitätsprinzip zu tragen kommt und somit die volle Länge einer Seitengröße ausgenutzt werden kann.

H18[Bearbeiten]

a)[Bearbeiten]

$ 2^{10} = 1024 $

b)[Bearbeiten]

virtuelle Adresse - physische Adresse - Reaktion des BS

0x377 - 2B77 - /

0x26A - / - page fault

0x0C4 - / - general protection fault (kein Schreibzugriff)

0x42D - / - general protection fault -> COW ist gesetzt -> freie Kachel besorgen (eventuell durch Verdrängung), Seiteninhalt kopieren -> Befehl wiederholen

c)[Bearbeiten]

Fehler in Zeile 2)

COW und R/W gesetzt

Als die Seite noch präsent war konnte R/W nicht gesetzt sein, weil dies durch lazy copying ausgeschlossen werden muss.

H19[Bearbeiten]

a[Bearbeiten]

FIFO[Bearbeiten]

0 1___H7_____H

1 _0_H___H6___

2 __2___H__H5_

6 Seitenfehler

LRU[Bearbeiten]

0 1___H__0__5_

1 _0_H__2__H__

2 __2__7__6__7

9 Seitenfehler

b[Bearbeiten]

LRU: mehr Platz- und Zeitaufwand

FIFO: tendenziell mehr Seitenfehler (Lokalitätsprinzip unberücksichtigt)

Der Aufwand bei Seitenfehlern (Aus- und Einlagerung) ist deutlich höher als der Aufwand zur Implementation von LRU.

H20[Bearbeiten]

a)[Bearbeiten]

0 3 4 2

b)[Bearbeiten]

Seitentabelle 1 (Index, Rahmen, P, W, A, D)

0 07 1 1 1 0

1 11 1 1 1 0

2 -

3 17 1 1 1 1

4 12 1 1 1 0

5 -

Kommentar von Robert: Was ist mit der Seite, die den code enthält, die müsste doch eigentlich mit in die Tabelle rein? Demnäch würde sie als erste eingelagert werden und daher auch wegen der WS-Größe von 4 ber der 2. Seitentabelle aus der WS rausfallen.
Müsste jetzt stimmen oder?

c)[Bearbeiten]

Problem: Wird die Seite 1 bei jeder Befehlsausführung referenziert? Wenn ja, dann müsste Seite 0 raus fliegen!?

(noch die alte Lösung) Seitentabelle 2 (Index, Rahmen, P, W, A, D)

0 11 1 1 1 0

1 -

2 12 1 1 1 1

3 _7 1 1 1 1

4 17 1 1 1 0

5 -

H21[Bearbeiten]

a)[Bearbeiten]

bildet eine virtuelle Adresse auf eine physische ab, wobei der Seitenindex durch den jeweilige pageframe number an diesem Index ersetzt wird und das Offset unverändert übernommen wird. Weiters werden die Rechte überprüft und ggfalls ein general protection fault ausgelöst. Zudem wird die Anwesenheit der Seite im HS gecheckt und ggfalls ein Seitenfehler ausgelöst.

Wie der Eintrag aussieht, kann jeder im Skript nachschauen, das male ich hier nicht auf!

b)[Bearbeiten]

23:

-> $ 2^{(1)} $ -> $ 5^{(0)} $
   ↑     ↓
   $ 7^{(1)} $ <- $ 3^{(1)} $

24:

   $ 2^{(0)} $ -> $ 4^{(1)} $
   ↑     ↓
   $ 7^{(1)} $ <- $ 3^{(1)} $ <-

746:

   $ 6^{(1)} $ -> $ 4^{(1)} $ <-
   ↑     ↓
   $ 7^{(0)} $ <- $ 3^{(0)} $


wozu das erste bild? es werden doch nur 2 seitenfehler ausgelöst?

H23[Bearbeiten]

a)

14 Bit Feld ( 32 - 8 - 10 )

$ 2^{14} $ bytes = 16 KBytes

Es gibt insgesamt $ 2^8 * 2^{10} $ Seiten (oder auch $ 2^{32}/2^{14} $ ).

b)

Vorteil: man verbraucht weniger Speicherplatz im HS, da auch ausgelagert werden kann. Hierarchiebildung möglich, Zugriffsrechte für ganze Bereiche deklarierbar

Nachteil: der Zugriff wird langsamer.

c) 8bit für Page Directory hat Vorteil, daß es kleiner ist, jedoch ist es problematisch, wenn jede einzelne Page Table $ 2^{10} $ Einträge hat und man viele verschiedene zur selben Zeit benötigt.

H22[Bearbeiten]

a[Bearbeiten]

Die Seitentabelle hat $ 2^{32} $ Einträge (48 Bit Adresse - 16 Bit Offset) $ \rightarrow $ passt nicht einmal in den Hauptspeicher.

b[Bearbeiten]

Vorteil von 64 KByte Rahmengröße gegenüber 4 KByte: weniger Verwaltungsaufwand (weniger Rahmen und Seiten)

Nachteil: häufigere Seitenfehler, ineffektivere Speicherplatzauslastung


H24[Bearbeiten]