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.

  1. 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.
  2. 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.
  3. 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
  4. 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.


Legal disclaimer. .  © 2024 Humboldt-Universität zu Berlin, Computer Science Department, Systems Architecture Group. Contact: sar@informatik.hu-berlin.de .