Einführung: – Da der Speicherplatz begrenzt ist, sollten wir den Speicherplatz aus gelöschten Dateien für neue Dateien wiederverwenden. Um den freien Speicherplatz zu verfolgen, führt das System eine Liste mit freiem Speicherplatz. Die Liste freier Speicherplatz zeichnet alle freien Festplattenblöcke auf, die keiner Datei oder einem Verzeichnis zugewiesen sind. Diese Freiraumliste kann als eine der folgenden implementiert werden:
a) Bitvektor – Die Freiraumliste wird als Bitmap oder Bitvektor implementiert. Jeder Block wird durch ein Bit dargestellt. Wenn der Block frei ist, ist Bit 1, wenn der Block zugewiesen ist, ist Bit 0.
Der Hauptvorteil dieses Ansatzes ist seine relative Einfachheit und seine Effizienz beim Auffinden des ersten freien Blocks oder von n aufeinanderfolgenden freien Blöcken auf der Festplatte. Die Berechnung der Blocknummer ist (Anzahl der Bits pro Wort) * (Anzahl der 0-Wert–Wörter) Offset des ersten 1-Bits
b) Verknüpfte Liste – Ein anderer Ansatz zur Verwaltung des freien Speicherplatzes besteht darin, alle freien Festplattenblöcke miteinander zu verknüpfen, wobei ein Zeiger auf den ersten freien Block an einem speziellen Ort auf der Festplatte gespeichert und im Speicher zwischengespeichert wird. Der erste Block enthält einen Zeiger auf den nächsten freien Plattenblock.
c) Gruppierung – Eine Modifikation des Ansatzes der freien Liste besteht darin, die Adressen von n freien Blöcken im ersten freien Block zu speichern.
d) Zählen – Ein anderer Ansatz besteht darin, die Tatsache auszunutzen, dass mehrere zusammenhängende Blöcke gleichzeitig zugewiesen oder freigegeben werden können, wenn Speicherplatz mit dem zusammenhängenden Zuordnungsalgorithmus oder Clustering zugewiesen wird.
Effizienz und Leistung
Festplatten stellen tendenziell einen großen Engpass bei der Systemleistung dar, da sie die langsamste Hauptcomputerkomponente sind. Effizienz:-Die effiziente Nutzung des Speicherplatzes hängt stark von der Festplattenzuweisung und den verwendeten Verzeichnisalgorithmen ab.
Leistung: Die meisten Festplattencontroller enthalten lokalen Speicher, um einen integrierten Cache zu bilden, der groß genug ist, um ganze Spuren gleichzeitig zu speichern. Sobald eine Suche durchgeführt wird, wird die Spur in den Plattencache eingelesen, beginnend mit dem Sektor unter dem Plattenkopf. Der Plattencontroller überträgt dann alle Sektoranforderungen an das Betriebssystem. Einige Systeme verfügen über einen separaten Abschnitt des Hauptspeichers für einen Puffercache, in dem Blöcke unter der Annahme aufbewahrt werden, dass sie erneut verwendet werden. Andere Systeme cachen Dateidaten mithilfe eines Seitencaches. Der Seitencache verwendet virtuelle Speichertechniken, um Dateidaten als Seiten und nicht als dateisystemorientierte Blöcke zwischenzuspeichern. Das Zwischenspeichern von Dateidaten mithilfe virtueller Adressen ist effizienter als das Zwischenspeichern über physische Festplattenblöcke, da Zugriffe eher mit dem virtuellen Speicher als mit dem Dateisystem verknüpft sind. Mehrere Systeme verwenden Seiten-Caching, um sowohl Prozessseiten als auch Dateidaten zwischenzuspeichern. Dies wird als Unified Buffer Cache bezeichnet.
Es gibt andere Probleme, die sich auf die Leistung von E / A auswirken können, z. B. ob Schreibvorgänge in das Dateisystem synchron oder asynchron erfolgen. Synchrone Schreibvorgänge erfolgen in der Reihenfolge, in der das Festplattensubsystem sie empfängt, und die Schreibvorgänge werden nicht gepuffert. Asynchrone Schreibvorgänge werden die meiste Zeit ausgeführt. Einige Systeme optimieren ihren Seitencache, indem sie je nach Zugriffstyp der Datei unterschiedliche Ersetzungsalgorithmen verwenden. Der sequenzielle Zugriff kann durch Techniken optimiert werden, die als Free Behind und Read Ahead bekannt sind. Free- entfernt eine Seite aus dem Puffer, sobald die nächste Seite angefordert wird. Mit Read ahead werden eine angeforderte Seite und mehrere nachfolgende Seiten gelesen und zwischengespeichert.