Lab
5 |
Operating Systems Principles
Harddisk Simulation |
Systems Architecture Group |
Ablieferungstermin und erreichbare Punktzahl für diese Aufgabe, sowie
Voraussetzungen für die Prüfungszulassung entnehmen Sie bitte
http://sar.informatik.hu-berlin.de.
Lab 5 – Harddisk Simulation
In diesem Praktikum soll der Simulator JiST - Java in Simulaton Time -
vorgestellt werden. Als Anwendung dient uns die Simulation einer existierenden
Hardware. Mit Hilfe des Simulators soll eine Festplatte nachgebildet und
verschiedene Scheduling-Strategien evaluiert werden.
JiST (http://jist.ece.cornell.edu/)
ist ein diskreter Simulator, der in einer unmodifizierten Java VM ausgeführt
wird. Im Gegensatz zu existierenden Ansätzen kann die gesamte Simulation sehr
instinktiv in Java geschrieben werden, ohne dass auf domänenspezifische oder
Skriptsprachen, spezielle Systemaufrufe, Callbacks u.ä. zurückgegriffen werden
muss. JiST verwandelt eine existierende JVM in eine Simulationsplattform, indem
die Simulationszeit-Semantik auf Byte-Code-Level eingebettet wird. Dazu wird der
Java Byte-Code, der von einem einem regulären Java Compiler erzeugt wurde, zum
Ladezeitpunkt verändert. Das Paket SWANS setzt auf JiST auf und bietet eine
Simulationsumgebung für drahtlose Ad-hoc Netzwerke. Weitere Informationen sind
auf der Website des Projekts zu finden.
-
Bilden Sie eine heute übliche Festplatte (so wie in der Vorlesung
vorgestellt) im Simulator JiST nach. Wichtig ist, dass das zeitliche
Verhalten der modellierten Hardware nachempfunden wird (Zeit zum Lesen eines
Blocks = Seek + Rotation + Transfer-Zeit). Die Kenngrößen der
Festplatte entnehmen Sie bitte den Vorlesungsfolien (Modelle Barracuda und
Cheetah). Zusätzlich können auch andere, existierende Modelle simuliert
werden, von denen die entsprechenden Daten bekannt sind. Die eigentliche
Datenspeicherung kann vernachlässigt werden. Bitte gehen Sie von einer
konstanten Anzahl Sektoren pro Track aus. Außerdem kann die evtl. geringere
Transferrate der externen Schnittstelle vernachlässigt werden.
- Um eine möglichst realistisches Lastprofil zu erhalten, gehen wir davon
aus, dass die simulierten Plattenzugriffe von Prozessen gesteuert werden,
die Dateien lesen und schreiben. Doch um nun nicht noch zusätzlich ein
Dateisystem simulieren zu müssen, gehen Sie bitte wie folgt vor:
- Legen Sie mit dd eine Datei beliebigen Inhalts und Größe 40MB an.
- Richten Sie mit mkfs -t ext2 auf der Datei ein ext2 Filesystem ein.
- Danach die erzeugte Datei mounten (mount -o loop) und das lokale
Verzeichnis /etc dorthin kopieren.
- Mit dem Filesystem-Debugger debugfs können nun die Blocknummern
ermittelt werden, auf denen die Dateien gespeichert sind:
z.B. debugfs -R "stat /etc/inputrc" fs-ext2.dd.png als root
ausführen. Erstellen sie ein gemischtes Lastprofil, in dem Dateien gelesen (80%)
und modifiziert (20%) werden. Dateien aus dem Verzeichnis /etc sind
typischerweise klein, das Lastprofil soll aber auch ein Anteil größerer
Dateien enthalten. Empfinden Sie dabei die Arbeitsweise des Dateisystems
nach, d.h. es genügt nicht, nur Datenblöcke zu lesen; es sind auch
Blöcke mit Meta-Information relevant. Beim Schreiben kann davon
ausgegangen werden, dass sich nur der Inhalt, nicht jedoch die Größe der
Datei ändert.
- Die Datei fs-ext2.dd.png enthält ein ext2
Dateisystem, dass auf diese Art erzeugt wurde. Erstellen Sie mit Hilfe
dieses Images ein weiteres Lastprofil, dass nur Leseoperationen auf die
folgenden Files enthält:
- scpm.conf
- scpm.users
- screenrc
- securetty
- sensors.conf
- services
- shells
- slp.conf
- slp.reg
- slp.spi
- snmpd.conf
- sysctl.conf
- Simulieren Sie die Festplatte unter dem erstellten und vorgegebenen Lastprofil und den Scheduling-Strategien FIFO, SSTF und Elevator. Variieren Sie dabei die
offerierte Last (Anzahl Requests pro Zeiteinheit, von Unterlast bis
Überlast) und die Rotationsgeschwindigkeit der Platte (vorgegebene
Geschwindigkeit * 0.1 .. 1 .. 10). Messen Sie Leistung und Fairness und
stellen Sie die Ergebnisse graphisch dar.
Material
Abgabe
Bitte verwenden Sie Java und legen
Sie der Lösung ein Ant-File bei, das die Quellen automatisiert übersetzt. Die Abgabe der Lösung erfolgt über GOYA. Für Besonderheiten, aufgetretene
Probleme und anderweitige Anmerkungen benutzen sie bitte eine Datei index.html. |