30.12.2013 Aufrufe

Musterlösung - Universität Paderborn

Musterlösung - Universität Paderborn

Musterlösung - Universität Paderborn

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • Keine Tags gefunden...

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Sommersemester 2011<br />

Konzepte und Methoden der Systemsoftware<br />

<strong>Universität</strong> <strong>Paderborn</strong><br />

Fachgebiet Rechnernetze<br />

Präsenzübung 09<br />

vom 06.06.2011 bis 10.06.2011<br />

Aufgabe 1: Grundlagen der Speicherverwaltung<br />

1. Nennen Sie mindestens drei der Aufgaben, die die Speicherverwaltung zu erfüllen hat.<br />

2. Erläutern Sie kurz und präzise die Unterschiede zwischen:<br />

• Interner Verschnitt und externer Verschnitt<br />

• Seite und Kachel<br />

• Logische Adressen und physikalische Adressen<br />

3. Erklären Sie kurz die Funktionsweise des Paging.<br />

4. Welche Daten werden zu welchem Zweck in der Seitentabelle gespeichert?<br />

<strong>Musterlösung</strong> zu Aufgabe 1:<br />

1. Aufgaben der Speicherverwaltung:<br />

• Übersetzen von logische in physikalische Adressen<br />

• Zuweisung von Speicher an Prozesse, Freigabe von Speicher<br />

• Verhinderung von unerlaubtem Speicherzugriff<br />

• Ermöglichung von geteiltem Speicher (Shared Memory)<br />

• Im Falle von Engpässen Teile des Speichers auslagern<br />

2. Unterschiede:<br />

• Einem Prozess zugewiesener, aber von ihm nicht genutzter Speicher ist interner Verschnitt,<br />

nicht zugewiesener und aufgrund der Fragmentierung nicht zuweisbarer, aber in der Summe<br />

ausreichender Speicher ist externer Verschnitt.<br />

• Eine Kachel ist eine Einheit im physikalischen Speicher, eine Seite ist eine Speichereinheit<br />

im logischen Adressraum. Diese sind i.d.R. gleich groß.<br />

• Logische Adressen werden vom Programm intern verwendet und müssen keine Speicherbelegung<br />

durch andere Programme berücksichtigen. Physikalische Adressen werden zum Zugriff<br />

auf reell vorhandenen Speicher verwendet.<br />

3. Paging erweitert den vorhandenen Arbeitsspeicher durch Virtualisierung, indem Daten daraus auf<br />

die Festplatte ausgelagert werden, wenn sie nicht benötigt werden und wieder in den Arbeitsspeicher<br />

geladen werden, wenn sie benötigt werden.<br />

4. In der Seitentabelle werden folgende Daten gespeichert:<br />

• Logische und physikalische Adressen (der Seite und der Kachel)<br />

KMS Sommersemester 2011 Präsenzübung 09 1


• Modifikationsbit (gibt Aufschluss darüber, ob die Daten verändert wurden und bei Auslagerung<br />

auf die Platte geschrieben werden müssen oder einfach überschrieben werden können)<br />

• Präsenzbit (ob die Seite geladen werden muss oder bereits im Speicher ist)<br />

• Referenzbit (Zur Messung der Zugriffe, wichtig für Verdrängungsstrategien. Kann ggf. auch<br />

größer als ein Bit sein.)<br />

• Zugriffsrechte (Beschreibt, welche Prozesse Lesen und Schreiben dürfen)<br />

Diese Aufgabe wurde benutzt: KMS Präsenzübung9 2007<br />

Aufgabe 2: Paging<br />

Betrachten Sie ein System mit Kacheln der Größe 16 KiByte 1 . Die kleinste adressierbare Einheit ist 4<br />

Byte. Der Adressbus hat eine Breite von 32 Bit.<br />

1. Kann es ein Problem darstellen, wenn ein Byte nicht einzeln, sondern nur im Verbund mit 3 anderen<br />

angesprochen werden kann? Begründen Sie und beschreiben Sie ggf., wie mit dem Problem<br />

umgegangen werden sollte.<br />

2. Kann interner oder externer Verschnitt auftreten? Begründen Sie kurz!<br />

3. Woraus setzt sich eine logische Adresse im o.g. System zusammen und welche Bedeutung und<br />

Länge haben die jeweiligen Bestandteile der Adresse? Wie wird daraus die physikalische Adresse<br />

bestimmt und aus welchen Bestandteilen (welche Bedeutung, welche Länge?) setzt sich diese<br />

wiederum zusammen?<br />

4. Wie groß müssen die Seitentabellen sein, um Informationen für die Seiten von 100 Prozessen<br />

aufnehmen zu können?<br />

5. Zwei Personen streiten sich über die größe des Adressierbaren Speichers. Person A glaubt, es seien<br />

ungefähr 4 GB, Person B glaubt, es seien 16 GB. Woran kann diese Meinungsverschiedenheit<br />

liegen?<br />

6. Wie viele Seiten können im Beispielsystem maximal adressiert werden und wie viel Speicherkapazität<br />

steht damit maximal für einen Prozess zur Verfügung?<br />

<strong>Musterlösung</strong> zu Aufgabe 2:<br />

1. Wenn Bytes nur im Verbund angesprochen werden können, muss es eine Möglichkeit geben, ein<br />

Byte aus diesem Verbund herauszulösen. Möglich ist dies durch spezielle Assemblerbefehle, die<br />

Zugriff auf einen Teil eines Wortes erlauben oder durch geeigneten Bitshift. Es bedeutet weiterhin,<br />

dass bereits für kleine Typen wie Boolean oder Short mehr Bytes als notwendig verwendet werden.<br />

2. Für externen Verschnitt müssten die Kacheln unglücklich fragmentiert sein und das Dateisystem<br />

(bzw. die interne Struktur der Auslagerungsdatei) dürfte keine Fragmentierung unterstützen. Interner<br />

Verschnitt kann auftreten, wenn eine Kachel/Seite nicht vollständig mit Daten gefüllt wird.<br />

3. Logische Adressen beinhalten zwei Teile: Das Offset, mit dem ein 4 Byte großer Block innerhalb<br />

einer Seite referenziert wird (12 Bit) und der Kacheladresse, die weitere 20 Bit ausmacht. Die physikalische<br />

Adresse hat die gleichen (auch gleich langen) Bestandteile: Das Offset ist identisch und<br />

bezeichnet einen Block innerhalb der Kachel. Die Seitenadresse wird jedoch in die Kacheladresse<br />

übersetzt und ist damit nicht mehr identisch.<br />

4. Da jeder Prozess mit 2 20 Bit die Seite adressiert, kann jeder Prozess maximal 2 20 Seiten haben.<br />

Für 100 Prozesse bedeutet dies, dass die Seitentabellen bis zu 100 Millionen Einträge groß werden<br />

können.<br />

1 Das Präfix "Kibi"bedeutet einen Faktor von 2 10<br />

KMS Sommersemester 2011 Präsenzübung 09 2


5. Diese Meinungsverschiedenheit liegt daran, dass verschiedene Systeme unterschiedlich adressieren.<br />

Manche Systeme betrachten die Adresse als Adresse des Blockes aus 4 Bytes, andere Systeme<br />

erlauben den Zugriff auf den Block über die Adresse des ersten Bytes des Blockes. In letzterem<br />

Fall müssen alle gültigen Adressen Vielfaches von 4 sein (0,4,8,...), was den Adressraum stark<br />

reduziert.<br />

6. Die Seitenadresse ist 20 Bit lang, sodass sich 2 20 Seiten adressieren lassen. Da jede Seite 16 KiByte<br />

groß ist, lässt sich ein Speicher der Größe 2 (20+10+4) = 2 34 = 17.179.869.184Bytes ansprechen.<br />

Diese Aufgabe wurde benutzt: KMS Präsenzübung9 2007 und neue Fragen<br />

Aufgabe 3: Logische und physikalische Adressen<br />

1. Was ist die MMU? Wie ist diese auf Hardwareebene in die Systemarchitektur eingebaut?<br />

2. Wie werden logische Adressen von der MMU in physikalische Adressen umgewandelt?<br />

3. Die MMU verwendet Caching. Was wird in diesem Cache gespeichert? Worin unterscheidet sich<br />

dieser Cache von dem Ihnen bisher aus der Vorlesung bekannten Cache? Was passiert bei einem<br />

Cache-Miss?<br />

4. Darf der Aufruf einer logischen Adresse, zu der keine physikalische Adresse gehört, überhaupt<br />

vorkommen? Wenn ja, wie soll damit umgegangen werden?<br />

<strong>Musterlösung</strong> zu Aufgabe 3:<br />

1. Die MMU (Memory Management Unit) wandelt die von einem Prozess verwendeten logischen<br />

Adressen in physikalische Adressen um. Sie befindet sich zwischen CPU und Speicher. Zwischen<br />

CPU und MMU bzw. MMU und Speicher können sich Caches befinden, diese müssen dann mit<br />

logischen bzw. physikalischen Adressen umgehen können. Caches, die mit logischen Adressen<br />

arbeiten, müssen bei einem Prozesswechsel geleert werden, damit ein Prozess nicht die Daten des<br />

Vorgängers lesen kann, sondern seine eigenen.<br />

2. Die MMU empfängt logische Adressen und schlägt die dazugehörigen physikalischen Adressen<br />

nach. Dazu wird (siehe vorige Aufgabe) nur ein Teil der Adresse zum Nachschlagen verwendet, da<br />

die Daten in einer Seite die gleiche Position (relativ zur Seite) haben wie in einer Kachel (relativ<br />

zur Kachel).<br />

3. Der Cache der MMU ist der Translation Lookaside Buffer (TLB). Er unterscheidet sich zunächst<br />

von den bisher bekannten Caches dadurch, dass er für Adressen statt für Daten gedacht ist und aus<br />

diesem Grund die Einträge möglicherweise eine andere Größe haben, um die Adressen aufnehmen<br />

zu können. Je nach Design können weitere Informationen in diesem Cache gespeichert werden,<br />

beispielsweise Informationen über Zugriffsrechte. Je nach Ausführung kann der Zugriff auf die<br />

Seitentabelle in Hardware oder in Software (durch das Betriebssystem) erfolgen.<br />

Bei einem Cache-Miss wird der entsprechende Eintrag aus einem weiteren Cache geladen. Seitentabellen<br />

können so groß werden, dass der Hardwareaufwand dafür unvertretbar wird.<br />

4. Ein solcher Aufruf darf vorkommen, sofern er bemerkt werden kann. Ein Grund dafür kann eine<br />

Kachel sein, die ausgelagert wurde. In einem solchen Fall muss sie erst wieder in den Arbeitsspeicher<br />

geladen werden.<br />

Diese Aufgabe wurde benutzt: KMS Präsenzübung8 2010 mit neuen Teilaufgaben<br />

KMS Sommersemester 2011 Präsenzübung 09 3

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!