Musterlösung - Universität Paderborn
Musterlösung - Universität Paderborn
Musterlösung - Universität Paderborn
- 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