update
BIN
Writerside/images/image_351.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
Writerside/images/image_352.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
Writerside/images/image_353.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
Writerside/images/image_354.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
Writerside/images/image_355.png
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
Writerside/images/image_356.png
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
Writerside/images/image_357.png
Normal file
After Width: | Height: | Size: 54 KiB |
BIN
Writerside/images/image_358.png
Normal file
After Width: | Height: | Size: 66 KiB |
BIN
Writerside/images/image_359.png
Normal file
After Width: | Height: | Size: 37 KiB |
@ -154,6 +154,157 @@
|
|||||||
- Spitze des Dateibaums
|
- Spitze des Dateibaums
|
||||||
- 
|
- 
|
||||||
|
|
||||||
### Methoden zur Belegungsverkettung
|
## Methoden zur Belegungsverkettung
|
||||||
#### Zusammenhängende Belegung
|
### Zusammenhängende Belegung
|
||||||
|
- Einfachstes Belegungsschema
|
||||||
|
- Speicherung als zusammenhängende Menge von Plattenblöcken
|
||||||
|
- Jede Datei beginnt mit neuem Block
|
||||||
|
- 
|
||||||
|
- | Vorteile | Nachteile |
|
||||||
|
|-----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|
|
||||||
|
| Einfach zu implementieren<br/>Lokalisierung der Dateiblöcke basiert auf zwei Zahlen | Im Laufe der Zeit wird die Platte fragmentiert |
|
||||||
|
| hervorragende Leseleistung<br/>Gesamte Datei kann mit einer Operation von der Platte gelesen werden |  |
|
||||||
|
- In manchen Situationen praktikabel
|
||||||
|
- CD-ROM
|
||||||
|
- alle Dateigrößen sind bekannt, werden sich niemals während Gebrauch ändern
|
||||||
|
- DVD
|
||||||
|
- Kann als eine Datei gespeichert werden
|
||||||
|
- meistens ~4 1GB Dateien
|
||||||
|
|
||||||
|
### Verkettete Listen
|
||||||
|
- Jede Datei ist verkettete Liste von Plattenblöcken
|
||||||
|
- Erstes Wort = Zeiger auf den nächsten
|
||||||
|
- Rest = Daten
|
||||||
|
- 
|
||||||
|
- | Vorteile | Nachteile |
|
||||||
|
|-------------------------------------------------------------------------|--------------------------------------------------------------------|
|
||||||
|
| Kein verlorener Speicherplatz durch Fragmentierung | sequenzielles Lesen zwar schnell, wahlfreier Zugriff sehr langsam |
|
||||||
|
| | Für Verzeichniseintrag ist Plattenadresse des ersten Blocks ausreichend | Um Auf Block n zuzugreifen müssen n-1 Blöcke vorher gelesen werden |
|
||||||
|
|
||||||
|
### File Allocation Table (FAT)
|
||||||
|
- Zeiger jedes Plattenblocks in einer Tabelle im Arbeitsspeicher
|
||||||
|
- | Vorteile | Nachteile |
|
||||||
|
|------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|
|
||||||
|
| Gesamter Block steht für Daten zur Verfügung | Gesamte Tabelle muss durchgehend im Speicher sein |
|
||||||
|
| Obwohl Kette verfolgt werden muss, kann das im RAM ohne Zugriffe auf Platte geschehen | Bei einer !TB Festplatte mit einer Blockgröße von 1KB benötigt die Tabelle 1Mia*3Byte ~ 3GB des RAM |
|
||||||
|
| Es reicht für Verzeichniseintrag einen einzigen ganzzahligen Wert des Startblocks zu speichern | |
|
||||||
|
|
||||||
|
### I-Nodes (Index Node)
|
||||||
|
- Datenstruktur, die Informationen über eine Datei oder ein Verzeichnis auf einem Dateisystem enthält
|
||||||
|
- Jede/s Datei/Verzeichnis ist durch einen eindeutigen I-Node identifiziert
|
||||||
|
- | Vorteile | Nachteile |
|
||||||
|
|--------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
| I-Node muss nur im Speicher sein, solange Datei geöffnet ist | Jeder Node kann nur begrenzte Anzahl von Plattenadressen<br/>Sobald das Limit erreicht ist, müsste man die letzte Adresse als Zeiger auf den nächsten Node nehmen |
|
||||||
|
| Feld, das die I-Nodes enthält benötigt nur n*k Byte | |
|
||||||
|
- 
|
||||||
|
|
||||||
|
|
||||||
|
## Dateinamen
|
||||||
|
- Keine festgelegte Länge
|
||||||
|
- variable Dateinamenlängen verwalten?
|
||||||
|
- 
|
||||||
|
- Nachteil:
|
||||||
|
- Lücke variabler Länge
|
||||||
|
- entsteht, wenn eine Datei entfernt wird und nächste Lücke nicht genau passt
|
||||||
|
- Es ist möglich Verzeichniseinträge zu verschieben
|
||||||
|
- 
|
||||||
|
- Für alle Dateinamen nur feste Längen zulassen
|
||||||
|
- Gemeinsam auf einem Heap am Ende des Verzeichnisses speichern
|
||||||
|
- Vorteil:
|
||||||
|
- nach Entfernen einer Datei passt nächste immer rein
|
||||||
|
- Heap muss mitverwaltet werden :/
|
||||||
|
- Lineare Suche → sehr langsam
|
||||||
|
- Verwendung einer Hashtabelle in jedem Verzeichnis
|
||||||
|
- Vorteil einer viel schnelleren Suche
|
||||||
|
- Nachteil: komplizierte Verwaltung
|
||||||
|
- Zwischenspeichern der Resultate vorangegangener Suchen
|
||||||
|
|
||||||
|
## Gemeinsam genutzte Dateien
|
||||||
|
- 
|
||||||
|
- Probleme:
|
||||||
|
- 
|
||||||
|
- Enthält Verzeichnis Plattenadressen, dann muss Kopie der Adressen im Verzeichnis B angelegt werden
|
||||||
|
- Wenn B/C Daten an Datei anhängen
|
||||||
|
- neue Blöcke werden nur im Verzeichnis, in dem Änderung stattfand, aufgelistet
|
||||||
|
- Zweck gemeinsamer Verwendung verfehlt
|
||||||
|
|
||||||
|
### Symbolische Links
|
||||||
|
- Enthält Pfadnamen zur gewünschten Datei
|
||||||
|
- Wenn B Datei liest, sucht BS direkt im angegebenen Pfad
|
||||||
|
- | Vorteil | Nachteile |
|
||||||
|
|--------------------------------------------------------|--------------------------------------------------------------------------------------------|
|
||||||
|
| Dateien auf entfernten, vernetzten Maschinen verlinken | zusätzlicher Aufwand<br/>eigener Plattenblock für Pfad |
|
||||||
|
| | Datei mit Pfadnamen muss gelesen werden, Pfad analysieren, Komponente bis I-Node verfolgen |
|
||||||
|
| | Falls in Unterverzeichnissen wird Datei evtl. mehrfach gefunden |
|
||||||
|
| | Bei Einspielung auf anderen Computer → Link wird zur Kopie der selben Datei |
|
||||||
|
|
||||||
|
## Log-basiertes Dateisystem (LFS)
|
||||||
|
- Schreibzugriffe sind effizienter als Lesezugriffe
|
||||||
|
- Schreibleistungs- und Fragmentierungsprobleme überwinden
|
||||||
|
- Schreibvorgänge werden protokolliert
|
||||||
|
- Mit schnelleren CPUs, größerem RAM wächst Platten-Cache schneller
|
||||||
|
- Viele Lesezugriffe direkt aus Platten-Cache
|
||||||
|
- Ohne Festplattenzugriffe
|
||||||
|
- Meiste Plattenzugriffe = Schreibzugriffe :)
|
||||||
|
- Probleme
|
||||||
|
- Schreibzugriffe meist in Stückchen → ineffektiv
|
||||||
|
- Abhängig von
|
||||||
|
- Spurwechselzeit ([seek](#seek) time)
|
||||||
|
- Latenzzeit (latency)
|
||||||
|
- Kommando-Latenz (controller overhead)
|
||||||
|
- Inkonsistenzen bei Systemabstürzen
|
||||||
|
- Lösungsansatz
|
||||||
|
- Alle noch ausstehenden im Speicher gepufferten Schreibaufträge regelmäßig sammeln
|
||||||
|
- An Ende des Logs schreiben
|
||||||
|
- Einzelnes Segment kann in beliebiger Reihenfolge I-Nodes, Verzeichnisblöcke und Datenblöcke enthalten
|
||||||
|
- Am Anfang Zusammenfassung über Inhalt
|
||||||
|
- Probleme Lösungsansatz
|
||||||
|
- Log wird ohne Reorganisation immer größer
|
||||||
|
- Bereinigungsvorgang wird benötigt
|
||||||
|
- Über alle Vorgänge Protokoll zu führen erfordert logistischen Aufwand
|
||||||
|
- LFS sind hochgradig inkompatibel zu bestehenden Dateisystemen
|
||||||
|
- können Inkonsistenz bei Systemabstürzen nicht abfangen
|
||||||
|
|
||||||
|
## Journaling
|
||||||
|
- mit Grundgedanken von [LFS](#log-basiertes-dateisystem-lfs) Robustheit DS erhöhen
|
||||||
|
- Log ist Protokoll über geplante Aktionen
|
||||||
|
- Bei Systemabsturz vor Beendigung einer geplanten Arbeit
|
||||||
|
- Bei Neustart im Log nachschauen, was gerade vor sich ging
|
||||||
|
- Vorgang sauber beenden
|
||||||
|
- Beispiel:
|
||||||
|
- _NTFS_, _ext3_, _macOS Extended_
|
||||||
|
- Für zusätzliche Zuverlässigkeit
|
||||||
|
- Datenbankkonzept der atomaren Transaktion
|
||||||
|
- Gruppe von Aktionen klammern
|
||||||
|
- Anfangstransaktion (begin transaction)
|
||||||
|
- Endtransaktion (end transaction)
|
||||||
|
- Dateisystem weiß, das es alle eingeklammerten oder keine ausführen muss
|
||||||
|
- ACID-Eigenschaften
|
||||||
|
- **Atomarität (Atomicity)**
|
||||||
|
- Transaktion wird als Ganzes behandelt
|
||||||
|
- alle oder keine Operationen in Transaktion ausführen
|
||||||
|
- Wenn eine fehlschlägt Rest rückgängig machen
|
||||||
|
- **Konsistenz (Consistency)**
|
||||||
|
- Transaktionen werden von einem in einen andern konsistenten Zustand überführt
|
||||||
|
- Nach Abschluss einer erfolgreichen Transaktion
|
||||||
|
- DB in Zusatnd, der Integritätsregeln entspricht
|
||||||
|
- **Isolation (Isolation)**
|
||||||
|
- mehrere gleichzeitige Transaktionen unabhängig, gleichzeitig ausführen
|
||||||
|
- **Dauerhaftigkeit (Durability)**
|
||||||
|
- einmal abgeschlossene Transaktion dauerhaft in DB gespeichert
|
||||||
|
- Änderung auch nach Systemabsturz / Neustart erhalten
|
||||||
|
|
||||||
|
## Virtuelle Dateisysteme (VFS)
|
||||||
|
- 
|
||||||
|
- Abstraktionsschicht im BS
|
||||||
|
- dient zur Vereinheitlichung der Dateisysteme und deren Zugriffsmethoden
|
||||||
|
- Anwendungen können auf Dateien zugreifen
|
||||||
|
- ohne auf Details der zugrunde liegenden physischen Dateisysteme zu achten
|
||||||
|
- erleichtert Portabilität, flexiblere Verwaltung der Dateisystemressourcen
|
||||||
|
- Wenn System hochgefahren
|
||||||
|
- Wurzeldateisystem beim VFS registrieren
|
||||||
|
- Liste der Adressen von Funktionen dem VFS zur Verfügung stellen
|
||||||
|
- Entweder lange Aufruftabelle oder eine Tabelle pro VFS-Objekt
|
||||||
|
- VFS legt im RAM V-Nodes an
|
||||||
|
- weitere Dateisysteme jetzt oder während Ausführung
|
||||||
|
|
||||||
|