Sensormodell: Ein Sensorknoten ist mit verschiedenen Sensoren verbunden.
Energiemodell: Jeder Sensorknoten verfügt über einen Energiespeicher, der
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.
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.
Schrittweise Ablaufvorschrift von Anweisungen {A1,A2,..}
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);
for i := 1 to 20 do x := x * i; done;
if x < 0 then x := 0; end;
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
zwischen Speicher- und Datenverarbeitungseinheiten.
[Tokhi,2003]
Es gibt nur einen Daten- und Instruktionsstrom, der zeitlich sequenziell ist (Temporales Multiplexing).
Die Ausführung einer Maschinenanweisung ist in mehrere Teilschritte (Phasen) unterteilt:
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!
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
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.
Anwendungsspezifische Mikroprozessoren
Vorteile erweiterbar:
Nachteile erweiterbar:
Vorteile appliaktionsspezifisch:
Nachteile applikationsspezifisch:
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.
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:
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
Betriebssysteme soll eine Kapselung von unterschiedlichen Modulen und Prozessen ermöglichen
Einführung von Privilegien und Sicherheitsstufen mit unterschiedlicher Berechtigung
Fragestellung:
Was ist allen Dateisystemen gemeinsam?
Dateisysteme sind eng verknüpft mit Betriebssystemen:
FAT
(File Allocation Table), NTFS
(NT Filesystem)
EXT2
,EXT3
(Extended Filesystem)
ZFS
(Zettabyte Filesystem)
Joliet
, RockRidge
, ..
Ein Dateisystem stellt eine der wichtigen Abstraktionsmechanismen dar
Eigenschaften der Dateisysteme spiegeln Betriebssystemklasse wieder:
|
|
Aufgabe: Organisation und Ablage von beliebigen digitalen Objekten
|
[A]
|
Es gibt einen Lese- und Schreibzeiger der eine Zelle des Arrays zum Lesen oder Schreiben auswählt
Mit einer Datei sind eine Vielzahl von Attribute verknüpft → Metadaten
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.
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)
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
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
|
|
Fragestellung:
Wie werden die Daten nun konkret organisiert????
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, ..)
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
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
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
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.
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
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!
Robustheit
Energieeffizienz
Anpassung an physische Speichermedien
Journaling ja! Aber: siehe vorherigen Punkt → Besser dann nicht!
Redundanz (Replikation von kritischer Bereichen)
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:
Die Dateisysteme von UNIX und Windows unterscheiden sich deutlich auf der Implementierungsebene; Der Service ist aber ähnlich!
Verkettung und Indextabellen sind wesentliche Datenstrukturierung