Architektur Eingebetteter Rechner

Eingebettetes System

Komponenten

  • Prozessor, i.A. RISC Architektur,
  • Nichtflüchtiger Programm- und Datenspeicher ROM (Read Only Memory), i.A. FLASH ROM
  • Flüchtiger Programm- und Datenspeicher RAM (Random Access Memory), i.A. DRAM
  • Timer und Clock Generator
  • IO
    • Verdrahtete serielle Kommunikation mit UART / RS232
    • Verdrahtete serielle Kommunikation mit Ethernet
    • Drahtlose serielle Kommunikation mit Bluetooth (kurzreichweitig, P2P)
    • Drahtlose serielle Kommunikation mit WLAN (kurzreichweitig, P2M)
    • Drahtlose serielle Kommunikation mit WWAN (langreichweitig, P2M)
    • General Purpose IO (Digitale Ports)
    • Analoge Eingänge mit ADC

Eingebettetes System

  • Energieversorgung
    • Spannungskonverter
    • Spannungsüberwachung (Watchdog)
    • Energiegewinnung
    • Energiespeicher

Eingebettetes System

Rapsberry PI

figpi3blockxdevs.com/article/rpi3\_oc


Abb. 1. Raspberry Pi 3 Rechnerarchitektur

Eingebettetes System

Modellierung eines Sensorknotens

figsensor_node_architecture


Abb. 2. Komponenten eines Sensorknotens (Datenflussarchitektur)

Eingebettetes System

  • Sensormodell: Ein Sensorknoten ist mit verschiedenen Sensoren verbunden.

    1. Dehnungsmessstreifen (elektrische Größe) II.Energiesensor (Ladezustand eines Energiespeichers ∼ Ladespannung)
  • Energiemodell: Jeder Sensorknoten verfügt über einen Energiespeicher, der

    1. Über eine zeitlich fluktuierende Energiequelle (Energy Harvester) mit Energie gespeist wird, und der
    2. Durch Berechnungs- und Kommunikationaktivität des Sensorknotens entladen wird.
\[\begin{gathered}
  E(t) = {E_0} + \sum\limits_{\tau  = 0}^t {{e_{{\text{harvest}}}}(\tau )}  + \sum\limits_{\tau  = 0}^t {{e_{{\text{computing}}}}(\tau )}  \hfill \\
  {e_{{\text{computing}}}}(t) = \sum\limits_{i = 0}^n {{e_{\operatorname{instruction} }}(i)}  \hfill \\ 
\end{gathered}
\]

Eingebettetes System

  • Die Bilanzierung der Energie kann vereinfacht werden: Jede elementare Berechnung des Sensorknotens benötigt die gleiche Energiemenge einstruction.

  • Energiemanagement muss verwendet werden, um mit der zur Verfügung stehenden Energie E(t) die Aufgaben und Ziele 1. Lokal (Knotenebene) und 2. Global (Netzwerk) zu erfüllen.

Eingebettetes System

Prozessor

Tasks und Prozesse sind softwarebasierte oder virtuelle Einheiten. Ein Prozessor, oder allgemein eine Datenverarbeitungseinheit (Processing Element PE) ist eine hardwarebasierte physikalische Ressource, deren Anzahl und Eigenschaften i.A. zur Laufzeit fest (statisch) sind. Ein oder mehrere Prozesse {P1,P2,..} sowie Taks {T1,T2,..} können temporal verteilt einem Prozessor PE zugeteilt und von ihm ausgeführt werden.

Programm

Schrittweise Ablaufvorschrift von Anweisungen {A1,A2,..}

Datenpfad

Der Datenpfad eines Programms stellt alle funktionalen Anteile (mit arithmetischen, relationalen, und booleschen Operation) und den Datenspeicher dar (Register, Speicherblöcke).

x := (a+b)/100;
y := f(a,b-1);

Eingebettetes System

Kontrollpfad
Der Kontrollpfad eines Programms beschreibt und steuert die schrittweise Berechnung, die sich mit einem Kontrollflussgraphen bzw. Zustandsgraphen darstellen lässt. Der Programmfluss kann von der Entwicklung von Daten abhängen.
for i := 1 to 20 do x := x * i; done;
if x < 0 then x := 0; end;

Eingebettetes System

figrtl1


Abb. 3. (Links) Programm (Mitte) Kontrollpfad als Zustandsdiagramm (Rechts) Datenpfad auf Registerebene

Rechnerarchitekturen

Datenverarbeitung kann prinzipiell

  • programmgesteuert mit einem generischen oder anwendungsoptimierten Prozessor [dynamisch], oder

  • anwendungsspezifisch [statisch] mit Register-Transfer Logik Architekturen implementiert werden. Hier wird die Maschine zur Entwicklungszeit festgelegt.

Klassifikation von Parallelrechnerarchitekturen kann basierend auf dem Flynn’schen Modell erfolgen. Klassifikation nach

  • Datenstrom und
  • Instruktionsstrom

zwischen Speicher- und Datenverarbeitungseinheiten.

figflynn1[Tokhi,2003]

Rechnerarchitekturen

SISD: Single-Instruction Single-Data Stream

  • Ein von-Neumann Rechner besteht aus einer zentralen PE, dem Mikroprozessor, einem für Daten und Instruktionen gemeinsamen Hauptspeicher, und Ein-/Ausgabeeinheiten.

figflynn2


Abb. 4. Von-Neumann Rechnerarchitektur und Flynns SISD Modell [PCRTSPC,Tokhi et al.,2003 ]

Rechnerarchitekturen

  • Es gibt nur einen Daten- und Instruktionsstrom, der zeitlich sequenziell ist (Temporales Multiplexing).

  • Die Ausführung einer Maschinenanweisung ist in mehrere Teilschritte (Phasen) unterteilt:

    1. Befehlsholphase
    2. Dekodierungsphase
    3. Operandenholphase
    4. Ausführungsphase
    5. Rückschreibephase
    6. Neuadressierung

Rechnerarchitekturen

figca1


Abb. 5. Ausführungsebenen (Stufen) in einem Mikroprozessor [ECSOC,Rowen,2004]

Rechnerarchitekturen

Harvard Architektur

  • Der von Daten- und Instruktionen gemeinsam geteilte Hauptspeicher ist der Flaschenhals bei der Programmausführung.

  • Aufteilung von Daten und Programmcode in getrennten Speicher beschleunigt die Ausführung von Maschinenanweisungen.

  • Das Leitwerk des Prozessors kann direkt mit dem Codespeicher verbunden werden!

figflynn3


Abb. 6. Übergang von zentralem Hauptspeicher zu N-Speicher System [CC,Wolf,2008]

Rechnerarchitekturen

Beispiel: ATMEG32 Mikrokontroller

figatmega32


Abb. 7. Rechnerarchitektur des Atmel ATMEGA 32 Mikrokontrollers mit Harvardarchitektur [Atmel]

Rechnerarchitekturen

SIMD: Single-Instruction Multiple-Data

  • Multiprozessorarchitektur

  • Datenverarbeitung (Berechnung) und Steuerung (Kontrollfluss) sind getrennt

  • Es gibt einen Instruktionsstrom, aber mehrere Datenströme

  • Es wird eine Instruktion auf verschiedenen Daten angewendet

  • Anwendung: Verarbeitung von Vektoren und Matrizen, z.B. in der digitalen Bildverarbeitung

  • RTL Architektur mit Zustandsautomat und RT Datenpfad gehört zur SIMD Klasse!

Bei Digitallogik und Registertransferarchitektur entspricht SIMD der Ausführung mehrerer Datenpfadoperationen (Berechnungen) in einem Zeitschritt

Rechnerarchitekturen

figflynn4


Abb. 8. SIMD Model [PCRTSPC,Tokhi et al.,2003 ]

Rechnerarchitekturen

figflynn5


Abb. 9. SIMD Architekturen: Vektor- und Arrayrechner [PCRTSPC,Tokhi et al.,2003 ]

Rechnerarchitekturen

MISD: Multiple-Instruction Single-Data

  • Es gibt mehrere Kontroll- und Datenverarbeitungseinheiten, die mit mehreren Instruktionsströmen arbeiten und die jeweils mit verschiedenen Anweisungen auf den gleichen Daten operieren.

figflynn6


Abb. 10. MISD Modell [PCRTSPC,Tokhi et al.,2003 ]

Rechnerarchitekturen

MIMD: Multiple-Instruction Multiple-Data

  • Mehrere Kontroll- und Datenverarbeitungseinheiten können unabhängig verschiedene Anweisungen mit verschiedenen Daten bearbeiten Shared-Memory Multiprozessor
  • Alternative System-on-Chip Architektur: Multi-RTL mit multiplen Zustandsautomaten und RT Datenpfaden

figflynn7


Abb. 11. MIMD Modell [PCRTSPC,Tokhi et al.,2003 ]

Rechnerarchitekturen

Shared-Memory und Dsitributed-Memory Multiprozessor Architektur

figca2


Abb. 12. SM (stark gekoppelt) und DM Architektur (schwach gekoppelt) [Tokhi et al.,2003 ]

Rechnerarchitekturen

Applikationsspezifische Prozessoren

  • Generische Mikroprozessoren sind limitiert durch

    • fehlende oder eingeschränkte Parallelität im Datenpfad - meist nur eine Berechnung, i.R. eine funktionale Operation mit maximal zwei Operanden, pro Bearbeitungszyklus möglich (Ausnahme bei Pipelining und replizierten ALUs)

    • eingeschränkte Unterstützung bei Parallelität im Kontrollpfad - nur Pipelining mit Ausführung von mehreren Anweisungen in verschiedenen Phasen/Modulen der Verarbeitungspipeline und einfaches Multi-Threading

    • Multiprozessor Betrieb ermöglicht nur grob garnulierte Parallelität

    • Shared-Memory als globales Objekt führt zu erhöhter sequenzieller Ausführung (Mutex Scheduler muss Wettbewerb auflösen).

    • zentralern Hauptspeicher.

Fazit: schlechte Performanz in Latenz und Datendurchsatz, nur grob granulierte Parallelität.

Rechnerarchitekturen

  • Anwendungsspezifische Mikroprozessoren

    • erweitern generische Prozessoren mit zusätzlichen Registern, Maschinenbefehlen, und spezialisierten und optimierten Funktionseinheiten.
    • Es wird unterschieden: erweiterbar und rein applikationsspezifisch
  • Vorteile erweiterbar:

    • Mikroprozessorkern und Software-Compiler existieren
  • Nachteile erweiterbar:

    • Nur eingeschränkte Möglichkeiten der Erweiterung, keine Anpassung von Datenwortbreiten, Architekturanpassungen, etc.

Rechnerarchitekturen

  • Vorteile appliaktionsspezifisch:

    • Verbesserte Möglichkeiten der Optimierung wie Datenwortbreite, Anzahl der Bussysteme, Kommunikationsstrukturen, Architektur, usw.
  • Nachteile applikationsspezifisch:

    • Es existieren keine getesteten oder verifizierten Prozessorkerne und Software-Compiler; Entwurfsprozeß daher fehleranfällig und deutlich langwieriger als bei erweiterbaren Mikroprozessoren

Erweiterbare Mikroprozessoren können bereits gefertigt sein, und sind mit (externen) Erweiterungsschnittstellen ausgestattet, um optimierte Funktionseinheiten wie z.B. Decoder, Encoder, oder kryptographische Funktionen zu implementieren.

Rechnerarchitekturen

figca3


Abb. 13. Schnittstellen zur applikationsspezifischen Erweiterung generischer Prozessoren [ECSOC,Rowen,2004]

Rechnerarchitekturen

System-on-Chip und Multiprozessor System-on-Chip Designs

  • Parallelrechnerarchitekturen lassen sich auf einem einzigen Mikrochip als System-on-Chip Design (SoC) integrieren.
  • Ein MPSoC Design besteht aus mehreren Prozessorkernen, Speicher und Speicherkontroller, einem on-Chip Verbindungsnetzwerk (Interconnect), und weiteren Peripheriekomponenten.

figsoc1


Abb. 14. Modell MPSoC. I$, instruction cache; D$, data cache, IOP: input-output processor [MPSOC,Jerraya al.,2005]

Pipelines

Pipelines

Queues und Pipelines

Parallele Systeme die aus mehreren Prozessoren oder Verarbeitungseinheiten bestehen erfordern Datenaustausch und Synchronisation.

  • Queues (First-In First-Out FIFO Spiecher) können zum synchronisierten Datenaustausch zwischen einem Datenproduzenten und Konsumenten (zwei Prozessoren, Prozesse, oder PEs) verwendet werden.

  • Synchronisation:

    • Blockierung des Produzenten wenn die Queue vollständig gefüllt ist, und
    • Blockierung des Kosumenten wenn die Queue kein Datenwort enthält (leer ist).

Pipelines

figpipeline1


Abb. 15. Queues zum synchronem Datenaustausch zwischen Verarbeitungseinheiten und Verwendung in Pipelines

Pipelines

figpipeline2


Abb. 16. Verwendung von Queues in Pipelines zur Steuerung des Datenflusses

Betriebssysteme

Abstraktion von Rechnern

  • Ein Betriebssystem soll wie eine virtuelle Maschine die technischen Einzelheiten von Hardware von der Software kapseln

  • Ein Betriebssystem soll Abstraktionen und einen einheitlichen Zugriff einführen für

    • Speicher
    • Prozessor
    • Sicherheit
    • Kommunikation
    • Ein- und Ausgabegeräte
    • Sensoren
    • Aktoren
    • Energie

Abstraktion von Rechnern

  • Betriebssysteme soll eine Kapselung von unterschiedlichen Modulen und Prozessen ermöglichen

    • Ein Fehler in einem Modul oder Prozess A darf nicht andere Module beeinflussen
    • Ein fehlerhaftes Modul oder Prozess sollte neu gestartet werden können ohne dass es zu einem Zusammenbruch des gesamten Systems kommt
    • Ein Modul oder Prozess A darf nicht in der Lage sein ein anderes Modul oder Prozess B zu beeinflussen (Veränderung von privaten Speicher usw.)
  • Einführung von Privilegien und Sicherheitsstufen mit unterschiedlicher Berechtigung

    • Einschränkung des Speicherzugriffs
    • Einschränkung des Befehlssatzes des Prozessors
    • Einschränkung auf Zugriff von IO Geräten
    • Einschränkung der Prozessausführungszeit

Abstraktion von Rechnern

  • Vergleich der Privilegienebenen eines RISC und eines CISC Prozessors

figcpuprivppc1


Abb. 17. Privilegiensystem des PowerPC-Prozessors [C]

figcpuprivpi86


Abb. 18. Privilegiensystem des Intel X86 Prozessors [C]

Betriebssysteme für Eingebettete Systeme

Anforderungen

  • Leichtgewichtig (kleine Code Größe, geringer Speicherbedarf, geringer CPU Bedarf)
  • Kurze Startzeiten
  • Stabilität
  • Effizienter Umgang mit knappen Ressourcen (CPU, Speicher, usw.)
  • Power Management inkl. Sleep Mode (Abschaltung von Geräten)
  • Sicherheit?

Beispiele

Dateisysteme

Fragestellung:
Was ist allen Dateisystemen gemeinsam?

Dateisysteme und Betriebssysteme

  • Dateisysteme sind eng verknüpft mit Betriebssystemen:

    • MS Windows: FAT (File Allocation Table), NTFS (NT Filesystem)
    • Linux, Android ( UNIX): EXT2,EXT3 (Extended Filesystem)
    • Solaris ( UNIX): ZFS (Zettabyte Filesystem)
    • Aber unabhängig (CD/DVD): Joliet, RockRidge, ..
  • Ein Dateisystem stellt eine der wichtigen Abstraktionsmechanismen dar

  • Eigenschaften der Dateisysteme spiegeln Betriebssystemklasse wieder:

    • Einzelnutzer System
    • Mehrbenutzer System
    • Server System
    • Mobiles System
    • Netzwerk System
    • Verteiltes System

    figmultiuser

Aufgaben der Dateisysteme

Aufgabe: Organisation und Ablage von beliebigen digitalen Objekten

  • Speicherung der Objektdaten auf Langzeitspeichern (z.B. Festplatte)

  • Die Objekte werden auf verschiedenen Abstraktionsebenen auf binäre Daten abgebildet

  • Objekte: Text, Musik, Video, Foto, Zeichnung, Programmcode, ..

  • Jedes Objekt ist durch einen Satz von Attributen gekennzeichnet: Name, Größe, Art, Einordnung in Containern, ..

[A]

  • Attribute sind Metadaten
  • Organisation der Objekte in Containern
  • Ein Objekt ist schließlich nur noch eine Nummer!

Dateien - Das Linearmodell

  • Auf der Programmier- und Programmebene sind Dateien eine Folge von Bytes Array/Tabellenstrukturierung
    • Eine Datei kann gelesen (Lesezugriff) und verändert werden (Schreibzugriff)
    • Es gibt einen Lese- und Schreibzeiger der eine Zelle des Arrays zum Lesen oder Schreiben auswählt

      figfile


      Abb. 19. Logischer Aufbaue einer Datei (links) und programmatischer Zugriff (rechts, C)

Dateien - Metadaten

  • Mit einer Datei sind eine Vielzahl von Attribute verknüpft Metadaten

    • Name
    • Größe (Länge des Dateninhalts)
    • Datum (Erzeugung, Zugriff)
    • Typ (Text, Binär, Programmcode, usw.)
    • Zugriffsrechte (Operationen Lesen, Schreiben, Ausführen, usw. )
    • Eigentümer
    • Sperren (Modifikationsschutz bei Mehrfachzugriff)
  • Welche Metadaten gespeichert werden hängt vom Dateisystem und Betriebssystem ab!

  • Metadaten werden i.A. in Verzeichnisstrukturen untergebracht. Die Datei selber ist nur durch eine eindeutige Nummer referenziert.

Physische und Logische Ebene

Blockstrukturierung

  • Für die technische Speicherung (Festplatte, DVD, USB-FLASH) werden Dateisysteme und die Dateien in Blöcke gleicher Größe zerlegt

  • Das ermöglich eine vereinfachte und effizientere Ausnutzung des Datenträgers (siehe verteilte Belegung)

figfileLinearBlock

figfileBelegung

Organistationsstrukturen

Verzeichnisse und Baumstruktur

  • Die meisten Dateisyssteme organisieren Dateien in Baum- oder Graphenstrukturen

  • Diese Graphen bestehen aus Knoten: Verzeichnisse (Ordner) die als Container für Dateien und weitere Unterverzeichnisse dienen

figdirgraph


Abb. 20. Beispiel von Verzeichnissen und eines Verzeichnisbaums

Organistationsstrukturen

Pfade

  • Einzelne Dateien und Unterverzeichnisse sind dabei eindeutig über einem Pfad gekennzeichnet.

  • Ein Pfad beginnt im Wurzelknoten und geht entlang des hierarchischen Verzeichnisweges; Wurzelknoten: Windows C:\, Unix /

  • Einzelne Elemente des Pfades werden durch ein Trennzeichen zusammengefügt: Windows \, Unix /

Beispiele für Pfade

Windows 
Pfadname: \Programme\java\j2re1.4.2_06\bin\java.exe
Dateiname: java.exe
Verzeichnispfad: \Programme\java\j2re1.4.2_06\bin\ 
Verzeichnisname: bin
Unix
Pfadname: /usr/jre1.6.0_31/bin/java
Dateiname: java
Verzeichnispfad: /usr/jre1.6.0_31/bin  
Verzeichnisname: bin

Aufbau und Eigenschaften von Dateisystemen

Fragestellung:
Wie werden die Daten nun konkret organisiert????

UFS (Unix Filesystem)

Struktur

  • Dateien werden in Blöcken im Blockbereich gespeichert

  • Die Belegung kann verteilt sein

  • Das Auffinden von Dateiblöcken geschieht durch Index Blöcke (I-nodes) im Indexbereich

  • Der Superblock enthält alle relevanten Parameter des Dateisystems (Bereichsgrößen, Datum, Name, Blockgröße, ..)

figufsBlocks


Abb. 21. Allgemeine Datenträgerunterteilung des UFS.

UFS (Unix Filesystem)

I-Nodes

  • Eine I-Node ist eine Tabelle mit Blockreferenzen die zu einer Datei gehören.

  • Eine I-Node hat eine feste Größe Begrenzte Anzahl von Datenblockreferenzen!

  • Daher Verkettung von vielen I-Nodes für große Dateien

figufsInodes


Abb. 22. Vernetzung und Tabellenstruktur von I-Nodes

FAT (File Allocation Table)

  • Es gibt nur eine einzige globale Tabelle für alle Dateien mit Blockreferenzen die zu einer Datei gehören.

figat


Abb. 23. Funktionsweise der FAT-Belegungstabelle

NTFS (New Technology Filesystem)

  • Keine Trennung zwischen Index- und Datenbereichen

  • Das Auffinden von Dateiblöcken geschieht mit Bereichsbäumen (B-trees) komplex in der Implementierung, aber schnelle Suche!

  • Alles ist eine Datei, auch Verzeichnisse sehr viele Metadateien

  • Es gibt eine erweiterbare globale Tabelle für alle Metadateien und Dateien: Masterfile Table MFT Dateisystemjournal

  • Eigenschaften: Wiederherstellbarkeit, Zugriffsrechteverwaltung, Datenkomprimierung, Datenverschlüsselung

figntfs

Metadaten und Eigenschaften

Aufagbe!
(1) Windows: File Explorer öffnen Nach C:\Windows\System32 wechseln Detailinformation von Datei cmd.exe
(2) Unix: Terminal öffnen cd /usr/bin ls -l sh

Attribut DOS/WIN98 FAT Windows NTFS Unix EXT2/UFS
Dateiname + +1 +
Namenslänge 11/2553 255 255
Case Sens.\UTF -\- +\+ +\?
Eigentümer - + +
Erzeugungszeit + + -/+
Zugriffszeit - + +
Modifikationszeit - + +
POSIX Rechte2 - - +
Links - + +
Max. Dateien 65k-270M3/65k4 4G/4G4 4G/32k4
Dateigröße <4GB3 >1TB >16GB/512GB

1 Primäres Attribut (direkt gespeichert) 2 Read/Write/Execute: Owner/Group/Others
3 Abhängig von FAT Version und ggf. Volumegröße 4 Pro Verzeichnis

Fehler und Robustheit

Dateien werden bei den meisten Dateisystemen mit verketteten Listen gespeichert.

Speichern einer Datei bedeutet: 1. Datenblöcke speichern und verketten; 2. Verzeichnis aktualisieren; 3. I-Node Tabelle und Superblock aktualisieren.

Fehler

  • Ist die Kette an einer Stelle beschädigt ist die ganze Datei fehlerhaft und inkorrekt.

  • Wird das Verzeichnis nicht aktualisiert sind die Daten nicht auffindbar

  • Ist das Verzeichnis ebenfalls eine Kette kann bei einer Beschädigung das gesamte Verzeichnis unbrauchbar werden

  • Ist der Superblock beschädigt ist das gesamte Dateisystem unbrauchbar

figchain

Journaling, Replikation und Redundanz

  • Um nach einem Crash das Dateisystem wieder schnell und konsistent herstellen zu können wird bei vielen modernen Dateisystemen ein Journal geführt.

  • Replikation und Synchronisation von Superblöcken (der Zugang zum Dateisystem)

  • Replikation von Dateisystemen (Synchronisierte Kopien auf mehreren physischen Datenträgern)

  • Backups!!!

  • Aufbau des Dateisystems selber kann verbessert werden um Inkonsistenzen zu vermeiden!
    KISS: Keep It Simple and Safe!

  • Auswahl des richtigen Dateisystems!

Dateisysteme für Eingebettete Systeme

Anforderungen

  • Robustheit

    • Bei plötzlichen Abbruch durch z.B. Energiemangel
    • Störeinflüsse (elektromagnetisch, Schwankungen der Versorgungsspannung)
  • Energieeffizienz

    • Minimierung der Schreib- und Lesezugriffe (administrativer Overhead!)
    • Minimierung des Ressourcenbedarfs (Minimierung der administrativen Daten wie I-Nodes)
  • Anpassung an physische Speichermedien

    • Flash EEPROM Speicher hat begrenzte Anzahl von Schreibzyklen (1000-100000)
    • Anpassung der Blockgröße und Schreiben nur von vollständigen Blöcken Flash EEPROM kann keine einzelnen Speicherzellen löschen (zurücksetzen), nur ganze Blöcke
  • Journaling ja! Aber: siehe vorherigen Punkt Besser dann nicht!

  • Redundanz (Replikation von kritischer Bereichen)

Zusammenfassung

  • Dateisysteme sind wesentlicher Bestandteil von Betriebssystemen: Service

  • Dateisysteme speichern Dateien und bieten eine Organisationsstruktur mit Verzeichnissen und Bäumen

  • Es gibt unterschiedliche Repräsentation von Dateien: Linearmodell; Blockmodell; Physisches Modell (Datenträger)

  • Es gibt eine große Vielzahl von Dateisystemen die sich unterscheiden durch:

    • Speicherung der Dateien (Größe, Verteilung, Effizienz, Performanz)
    • Verwaltung von Verzeichnissen
    • Metadaten (Dateiattribute)
  • Die Dateisysteme von UNIX und Windows unterscheiden sich deutlich auf der Implementierungsebene; Der Service ist aber ähnlich!

  • Verkettung und Indextabellen sind wesentliche Datenstrukturierung