Betriebssystemprinzipien Kapitel 11 Dateisystemimplementierung

Betriebssystemprinzipien für Studenten im Grundstudium Learning Record
Learning Record Family Bucket

11.1 Dateisystem

1. Überblick über das Dateisystem

Verfahren und Datenstruktur zum Organisieren von Dateien auf einem Speichergerät

Das Modul, das für die Verwaltung und Speicherung von Dateiinformationen im Betriebssystem verantwortlich ist

Der größte Teil des Dateisystems ist im Betriebssystem vorhanden, aber einige Mikrokerne haben kein Dateisystem

Systemwinkel:

  1. Speicherplatz auf Speichergeräten organisieren und zuweisen
  2. Verantwortlich für das Abrufen, Lesen und Schreiben von Dateien usw.
  3. Ziel: Zugriffsgeschwindigkeit und Speicherplatzeffizienz

Benutzerperspektive:

  1. Stellt einen Dateizugriffsmechanismus für den Zugriff nach Namen bereit
  2. Dateiorganisation
  3. Ziel: Bequemer Dateizugriffsmechanismus

2. Dateisystemhierarchie

grundlegendes Dateisystem

Lesen und Schreiben von physischen Blöcken

Steuerbefehle an Gerätetreiber senden

Dateiorganisationsmodul

Verwalten Sie Dateien, logische Blöcke und physische Blöcke

Konvertieren Sie die logische Adresse der Datei in eine physische Adresse, verwalten Sie den freien Speicherplatz und weisen Sie der Datei physische Blöcke zu

logisches Dateisystem

Metadaten im Dateisystem verwalten: alle Strukturdaten außer Dateidaten

Dateizugriff nach Namen, Dateiverzeichnisverwaltung, FCB-Verwaltung, Speicherschutz

3. Implementierung des Dateisystems

Physikalischer Block: bestehend aus einem oder mehreren Sektoren, die grundlegende Lese- und Schreibeinheit für Dateien

Teilung: Teilung

Volume (logischer Datenträger): Volume, logische Partition auf dem Datenträger, die auf der physischen Partition aufgebaut ist

zwei Dateisysteme

  • Disk-Dateisystem
  • Speicher Dateisystem

4. Dateisystem der Festplatte

5. Speicherdateisystem

Partitionstabelle: Alle Informationen zur Installationspartition

Verzeichnispufferstruktur: Speichert die Verzeichnisinformationen, auf die zuletzt zugegriffen wurde

Offene Dateitabelle des Systems, geöffnete Dateitabelle verarbeiten

Zweck: Verbesserung der Dateisystemleistung durch Puffertechnologie

6. Virtuelles Dateisystem

Zweck: Unterstützung mehrerer Dateisysteme

Konsolidieren Sie mehrere Dateisysteme in einer Verzeichnisstruktur

Maskieren Sie Unterschiede zwischen Dateisystemen für Benutzer

Virtuelles Dateisystem VFS

Dateisystemschnittstelle: Eine einheitliche Schnittstelle für Anwendungen zum Zugriff auf Dateien

VFS-Schnittstelle: VFS-Schnittstelle für verschiedene Dateisysteme definieren

7. Netzwerkdateisystem

NFS: Speicherplatz sparen und gemeinsame Nutzung erreichen

Zugriff auf entferntes Dateisystem

8. Häufig verwendete Dateisysteme

Windows: FAT NTFS ReFS

Linux:Ext(Ext2 3 4 )

Mac OS: HFS

11.2 Verfahren zur Speicherplatzzuweisung

physische Blockade

Die Grundeinheit zum Lesen und Schreiben von Speichergeräten

Grundlegende Zuordnungseinheit für Speichergeräte

Entspricht der Seitengröße des Speichers

logischer Block: ein Block im Dateibereich

Die Größe stimmt mit dem physikalischen Block überein.
Ein logischer Block wird in einem physikalischen Block gespeichert

kontinuierliche Vergabe

Jede Datei belegt einen zusammenhängenden Satz physischer Blöcke auf der Festplatte

FCB liefert nur: Startblocknummer und -länge

Mangel:

Platzverschwendung (kleiner Speicherplatz kann nicht zugewiesen werden)
Dateien können nicht dynamisch wachsen (Datei A)
ist nicht förderlich für das Einfügen und Löschen von Dateien (Daten müssen verschoben werden)

Linkzuweisung

Diskrete physische Blockzuweisung

explizite Zuordnung, implizite Zuordnung

Implizite Verknüpfung: Die Zeigeradresse des nächsten Blocks wird im physikalischen Block angegeben

Vorteile: kann die Belegung erweitern, Dateien einfach einfügen und löschen

Nachteile: Direkter Zugriff nicht möglich, langsamer Zugriff auf Dateien

Links anzeigen: Nehmen Sie den Zeiger heraus und speichern Sie sie zusammen

Stark verbesserte Abrufgeschwindigkeit

FAT-Tabelle, nicht geeignet für Festplatten mit großer Kapazität Dateizuordnungstabelle, eine Partition hat zwei FAT-Tabellen

Link-Tabellengröße: 16-Bit-Eintrag, der 128 KB groß ist; 32-Bit-Eintrag, der 16 GB groß ist

Indexzuordnung

Scattered FAT, jeder Datei wird eine FAT-Tabelle, also die Indextabelle, zugeordnet

Indexblock: speichert den physischen Block, der auf die Blocknummer jedes physischen Blocks der Datei zeigt

Adresszuordnung:

[Bildübertragung des externen Links fehlgeschlagen, die Quellseite verfügt möglicherweise über einen Anti-Diebstahl-Linkmechanismus, es wird empfohlen, das Bild zu speichern und direkt hochzuladen (img-9PUqUGJX-1641540972514) (E:\Documents and PPT\Junior Course Study\Operating System\Pictures\Tenth Chapter One\Index Table Address Mapping.png)]

mehrstufiger Index

Für Dateien, die größer als 4 MB sind, ist eine mehrstufige Indexmethode erforderlich

gemeinsame Strategie gemischte Strategie

iNodes in Unix

Level 3-Indizes unterstützen 48 KB + 4 MB + 4 GB + 4 TB. Da Sie Level 3-Indizes verwenden möchten, verwenden Sie Level 3-Indizes nur, wenn Sie alle vorherigen direkten Indizes, Level 1-Indizes und Level 2-Indizes aufgebraucht haben

[Externer Link Bildübertragung fehlgeschlagen, die Quellseite verfügt möglicherweise über einen Anti-Leeching-Mechanismus, es wird empfohlen, das Bild zu speichern und direkt hochzuladen (img-ve9W3Khr-1641540972516) (E:\Documents and PPT\Junior Course Study\Operating System \Pictures\Zehntes Kapitel\mixed indexing method.png)]

11.3 Freiraumverwaltung

kostenlose Liste

Die freie Liste wird direkt in einer Array-ähnlichen Weise verwaltet

kostenlose Liste

Verknüpfen Sie alle freien Blöcke auf der Festplatte

Bitmap

Verwenden Sie ein binäres Bit, um die Verwendung eines Blocks anzuzeigen

1: Plattenblock ist frei

0: Der Plattenblock wurde zugewiesen

Lernen Sie die Berechnung der Zeile und Spalte, die Berechnung der Blocknummer

Bitmaps benötigen zusätzlichen Platz

Blockgröße = 2^12 Bytes

Festplattengröße = 2^30 Bytes

n = 2^30 / 2^12 = 2^18 Bit

Bitmaps werden in physischen Blöcken gespeichert, Speicherplatzverwaltung mit geringer Kapazität

Gruppenlink

Kombinieren von freier Liste und freier verknüpfter Liste

Beispiel: UNIX-System

Teilen Sie freie Blöcke in mehrere Gruppen auf, alle 100 Blöcke als Gruppe

Jeder Satz erster freier Blöcke enthält:

  • Gesamtzahl freier Blöcke
  • Die Adresse des ersten Blocks des nächsten Satzes freier Blöcke
  • Liste der Blocknummern anderer freier Blöcke in dieser Gruppe

MOOC-Einheitenarbeit

1. Eine Datei hat 20 Plattenblöcke (Blocknummer: 0–19), vorausgesetzt, dass sich der Dateikontrollblock im Speicher befindet (wenn die Datei eine Indexzuordnung verwendet, befindet sich die Indextabelle nicht im Speicher). Berechnen Sie bitte in den folgenden Fällen, wie viele Platten-I/O-Operationen unter den drei Zuweisungsmethoden kontinuierliche Zuweisung, Linkzuweisung und einstufige Indexzuweisung erforderlich sind? (Jedes Mal, wenn ein Plattenblock eingelesen oder ausgeschrieben wird, ist eine Platten-E/A-Operation erforderlich. Außerdem, unter der Annahme, dass im kontinuierlichen Zuordnungsmodus keine freien Plattenblöcke am Anfang der Datei vorhanden sind, aber es gibt freie Plattenblöcke am Ende der Datei 1) Am Anfang der
Datei 2) Einen Plattenblock
vor dem 15. Block der Datei hinzufügen und den Inhalt schreiben
3) Einen Plattenblock am Ende der Datei löschen
4) Fügen Sie einen Festplattenblock hinzu und schreiben Sie den Inhalt an das Ende der Datei.

(1) Kontinuierliche Zuweisung: 0-mal, Startblocknummer und Länge des FCB direkt modifizieren

​ Linkzuordnung implizit: 1 Mal zuerst die Blocknummer des zweiten Blocks lesen und dann die FCB-Startblocknummer ändern

Einstufiger Index: 2 Mal in die Indextabelle einlesen, die Indexelemente im Indexblock ändern und dann in den Festplattenblock schreiben

(2) Kontinuierliche Zuordnung: Blocknummern 14–19 lesen, Blocknummern 15–20 schreiben und einen neuen Block schreiben, 13 Mal

Link-Zuordnung: implizit: Lesen Sie die ersten 14 Blöcke, um den Zeiger auf den 15. Block 14 Mal zu finden, schreiben Sie den Inhalt des neuen Blocks und die Adresse des alten 15. Blocks, schreiben Sie die Adresse des neuen Blocks in den 14. Block, a insgesamt 16 mal

Einstufiger Index: Lesen Sie dreimal den Inhalt des Indexblocks, ändern Sie das Indexelement und schreiben Sie es in den Festplattenblock und schreiben Sie den Inhalt des neuen Blocks

(3) Kontinuierliche Zuweisung: 0 mal, direkt die Länge der FCB-Tabelle modifizieren

Link-Zuordnung: Implizit: 20 Mal, die ersten 19 Mal lesen die Adresse des zwanzigsten Blocks und ändern dann die Adresse auf -1, um anzuzeigen, dass der 19. Block der Endblock ist

Einstufiger Index: Lesen Sie die Indextabelle zweimal und ändern Sie den Inhalt des Indexelements im Indexblock

(4) Kontinuierliche Zuweisung: 1 Mal Inhalt schreiben und Dateilänge von FCB ändern

​ Linkzuordnung: implizit: 22 Mal, die ersten 20 Mal finden den Inhalt des zwanzigsten Blocks, schreiben dann den Inhalt des neuen Blocks und ändern schließlich den Zeiger des zwanzigsten Blocks so, dass er auf die Adresse des neuen Blocks zeigt

Einstufiger Index: Lesen Sie dreimal den Inhalt des Indexblocks, ändern Sie das Indexelement und schreiben Sie es in den Festplattenblock und schreiben Sie den Inhalt des neuen Blocks

2. Die Verzeichnisdatei nimmt den Verknüpfungstyp an. Jeder Plattenblock speichert die Beschreibung von 10 Dateien niedrigerer Ebene und kann bis zu 40 Dateien niedrigerer Ebene speichern. Wenn die Datei niedrigerer Ebene eine Verzeichnisdatei ist, zeigt das Verzeichnis höherer Ebene auf den ersten Block der Verzeichnisdatei, andernfalls zeigt er auf die gewöhnliche Datei Dateikontrollblock. Gewöhnliche Dateien haben die Form eines zweistufigen Index, und 12 Plattenblockadressen sind im Dateisteuerblock angegeben. Die ersten 10 Plattenblockadressen zeigen auf die physikalischen Adressen der ersten 10 Seiten, und die 11. Plattenblockadresse zeigt auf die Indextabelle der ersten Ebene und Indextabelle der ersten Ebene Bei gegebenen 256 Plattenblockadressen, das heißt, die Adressen der 10. bis 265. Seite der Datei werden angezeigt, zeigt die 12. Plattenblockadresse auf die sekundäre Indextabelle und in der Sekundärindextabelle sind die Adressen von 256 Primärindextabellen angegeben. Verzeihung:

‌1) Wie viele Seiten darf eine gewöhnliche Datei im Dateisystem maximal haben?

‏max = 10 + 256 + 256*256 = 65802 Seiten

‌2) Wenn Sie eine bestimmte Seite in der Datei /A/D/K/Q lesen möchten, wie oft müssen Sie die Diskette mindestens starten? Wie oft möchten Sie die Festplatte höchstens starten? (Jedes Mal, wenn ein Festplattenblock gelesen wird, muss eine Festplattenoperation gestartet werden.)

am wenigsten am meisten
Erinnerung/->A 0 0
A->D 1 4
D->K 1 4
K->Q 1 4
Q->FCB 1 1
FCB->eine bestimmte Seite 1 3
gesamt 5 16

Bildbeschreibung hier einfügen

3. Angenommen, die Größe eines logischen Blocks und eines physischen Blocks eines Dateisystems auf einer Platte beträgt beide 512 B. Unter der Annahme, dass sich der FCB jeder Datei bereits im Speicher befindet, fragen Sie für die drei Zuweisungsmethoden (kontinuierliche Zuweisung, explizite Linkzuweisung und einstufige Indexzuweisung):

‏1) Wie ist die Zuordnung von logischer Adresse zu physikalischer Adresse im System implementiert?

‏2) Geben Sie ein Beispiel, um den Mapping-Prozess von der logischen Adresse zur physikalischen Adresse bei der einstufigen Indexzuweisung zu veranschaulichen.

Angenommen, die logische Adresse ist LA, der logische Block und der physische Block 512B sind S, und die relative Startadresse der logischen Adresse ist G

(1) Kontinuierliche Zuordnung: LA/S = Q...RQ ist die logische Blocknummer, R ist der Offset innerhalb des Blocks

​ B = Q + im FCB gespeicherte Startblocknummer D = R

​ Physische Adresse (B, D)

Link anzeigen: LA/S = Q...RQ ist die logische Blocknummer, R ist der Offset innerhalb des Blocks

B = Q und G erhalten die physische Blocknummer in der verknüpften Liste D = R

​ Physische Adresse (B, D)

​ Einstufiger Index: LA/S = Q...RQ ist die logische Blocknummer, R ist der Offset innerhalb des Blocks

​ B = physikalische Blocknummer entsprechend Element Q in der Indextabelle D = R

​ Physische Adresse (B, D)

(2) Beispielsweise wird unter der Annahme, dass die logische Adresse 1028 ist, der Inhalt des Indexblocks der Datei wie folgt indiziert: 6 1 13 -1 -1 -1

Dann ist 1028/512 = 2 … 4

Die Suchindextabelle ist Nummer 13, dann ist die physikalische Adresse PA = (13, 4)

4. Geben Sie bitte ein Beispiel für ein bestimmtes Dateisystem an, um zu veranschaulichen, aus welchem ​​Inhalt das Dateisystem im Allgemeinen besteht.

Das Dateisystem besteht im Allgemeinen aus Dateiklassifizierung, Dateiverzeichnisstruktur, logischer Dateistruktur, physikalischer Dateistruktur, Speicherverwaltung, Systemaufrufen und Plattenstruktur.

Beispiel: Im UNIX-Dateisystem gibt es drei Arten von Dateien: gewöhnliche Dateien, Verzeichnisdateien und Gerätedateien.

Logische Dateistruktur: Unstrukturierte Streaming-Dateien,

Physische Dateistruktur: Mehrfachindexstruktur,

Dateiverzeichnisstruktur: Grafisches Verzeichnis, Verwendung von Hardlinks zur Realisierung von Dateifreigaben, Verwendung von Indexknoten zur Verbesserung der Dateizugriffseffizienz,

Dateispeicherverwaltung: Verwaltung des freien Speicherplatzes: Gruppenverknüpfung;

Plattenstruktur: Physische Struktur, Platten, Köpfe, Spindeln

Speicherstruktur: Einzelprozess-Dateitabelle, System-Dateitabelle (einschließlich Lese-Schreib-Flag, Anzahl der Prozesse, die sich den Lese-Schreib-Zeiger teilen, Nummer des aktiven Knotens, Lese-Schreib-Zeiger usw.)

Dateisystemaufrufe: Dateien erstellen, Dateien löschen, Dateien lesen, Dateien öffnen, Dateien schließen, Dateizeiger suchen, Dateien verknüpfen, Dateiberechtigungen festlegen, Pipeline-Dateien erstellen, Dateien kopieren und andere Funktionen zum Realisieren von Dateioperationen und Dateischutz.

Supongo que te gusta

Origin blog.csdn.net/weixin_45788387/article/details/122365791
Recomendado
Clasificación