ZHAW BSY Kap8
zhaw
zhaw
-
- 1 / 17
-
Lernkarten
Nennen und diskutieren Sie drei I/O-Techniken (siehe auch Kapitel 1).
Programmed IO (Polling / synchron / busy Wait), Interrupt Driven (asynchron), DMA (Datentransfer im Hintergrund / asynchron)
DMA Funktioniert über einen zusätzlichen DMA Controller
Erklären Sie den Unterschied zwischen logischem I/O und Ger ̈ate-I/O.
Logisch: einheitliche API-Schnittstelle (Kernel), Operationen zur Ansteuerung der physikalischen
Ger ̈ate (meist im Treiber).
Wieso gibt es Block- und Charktergeräte? Erklären und diskutieren Sie den Unterschied und nennen Sie Beispiele.
Bilden ”Funktionsweise” der wichtigsten I/O Ger ̈ate ab: sequentielle Datenstr ̈ome (character) und Block-Ger ̈ate (z.B. Disks)
Wieso steigert Double-Buffering die I/O-Performance?
Zugriff für ”lesen” und ”schreiben” parallel auf unterschiedlichen Datenbereichen.
Erklären und diskutieren Sie den Zugriff auf Disks (rotierend). Welche Komponenten bestimmen massgebend die Zugriffszeit, wie sind sie definiert?
Positionierung Kopf, warten auf Sektor, Daten lesen, siehe auch Folien.
Erklären und diskutieren Sie RAIDs? Erkl ̈aren Sie speziell Level 0, 1 und 5.
Verwendung mehrerer Disks mit Ziel schnellerer Zugriff (Level 0) oder redudanter, fehlertole- ranter bzw. sicherer Speicherung der Daten. Level 0 verteilt Daten auf meherere Disk: paralleler Zugriff → schneller, Level 1 spiegelt Daten: 2-fach Speicherung → sicherer, Level 5, vertielte Parity, weniger Aufwand fu ̈r Redundanz als Level 1
Wie sinnvoll sind Software-Raids? Was ist bei RAID-Systemen trotz redundanter Datenspeiche- rung zu beachten?
SW-Raids mit Vorsicht benutzen: keine redundante HW. Schu ̈tzt nur vor Ausf ̈allen bei einzelnen Disks: ganzes System kann ausfallen, Wassereinbru ̈che und ̈ahnliche Ereignisse → Totalausfall
Erklären und diskutieren Sie das Linux-Treiber Modell. Wie werden in Linux Module verwaltet? Wie werden Treiber für den Anwender verfügbar gemacht?
Linux Treiber sind ladbare Kernel Module mit definierter Schnittstelle: read, write, open, close, seek, etc. Verfügbar über Eintrag im dev-Filesystem und Major/Minor Nummer.
Ein 5MByte (1M = 1024x1024) grosses File soll auf den Disk geschrieben werden. Daten werden in Clustern zu 8 Blo ̈cken geschrieben, die Cluster sind zuf ̈allig u ̈ber den Disk verteilt. Fu ̈r den Disk gilt: Block- und Sektorgro ̈sse 512 Bytes, 128 Sektoren, Seek Time ts = 4ms, 7200 U/Min. Wie lange dauert es, das File auf den Disk zu schreiben?
Ein Cluster speichert 8·512 Bytes, d.h. fu ̈r die Speicherung des gesamten Files werden 5MB/4096 = 1280 Cluster ben ̈otigt. Pro Cluster f ̈allt die Seek Time, die Rotational Latency und die Transfer Time an:
Ts = 4ms
TR = 60/7200 = 8.33ms
TD = TR/2 = 4.17ms
TT = TR · 8/128 = 0.521mss (1 Cluster = 8 Sektoren)
TA = 6ms + 4.17ms + 0.521ms
Schreibzeit: Tschreiben = TA · 1280 = 11.12s
Ein Disk dreht mit 7200 U/Min und hat pro Track 256 Sektoren mit je 512 Bytes. Der Kopf bewegt sich von Track n nach Track n+1. Wie l ̈asst sich erreichen, dass sich nach einem solchen Wechsel der Kopf von Sektor 255 nach Sektor 0 bewegt hat (qualitative Anwort erwartet)?
Die Sektoren mu ̈ssen auf nebeneinanderliegenden Tracks um eine entprechende Anzahl Sektoren verschoben liegen.
Gegeben ist ein Datenmodem, das 128KBit/s Daten netto u ̈bertragen kann. Der Treiber kann jeweils 4 Datenbytes zum Modem u ̈betragen und blockiert bis ein Interrupt meldet, dass neue Daten u ̈bergeben werden ko ̈nne. Die gesamte Verarbeitung eines Interrupts inklusive Daten- transfer zum Modem dauert 40μs. Wie viel Prozent der CPU-Leistung wird durch den Treiber verbraucht?
pro Sekunde fallen 128 · 1024/32 = 4096 Interrupts an. Die Interrupts ben ̈otigen damit 4096 · 40μs = 0.164s Zeit. Der Treiber braucht also 16.4% der CPU-Leistung
Ein File System fordert Daten auf folgenden Tracks an: 136, 223, 110, 126, 10, 41, 79, 64, 120. In welcher Reihenfolge werden die Tracks von den vier Schedulinungverfahren an- gefahren, wenn zu Beginn der Schreib/Lese-Kopf auf Track 100 steht und sich in Richtung Tracknummern bewegt, sowie der Disk 250 Track besitzt? Bestimmen Sie fu ̈r jedes Verfahren den mittleren Seek-Weg.
Die grundlegenden I/O Architektur erklären
Wichstige Komponente sind die Device Drivers. Sie ermöglichen eine standardisierte Schnittstelle zum Kernel I/O System. Allerdings keine standardisierte Schnittstelle zum OS
Schichtenmodel:
- Hardwareschicht:
- Device und Devicecontroller
- Kernelschicht:
- Device Driver und Kernel I/O Subsystem.
- Hier wird das I/O Verwaltet
- Userschicht:
- User prozesse
- IO nur über Systemcalls.
die Konzepte des Linux Kernel I/O-Subsystems erklären
Wichtigste Services:
- I/O Scheduling
- I/O Anfragen von Anwendungen nach Optimierungskriterien anordnen
- Buffering
- Temporärspeicher für Datenaustausch
- Caching, Spooling
- Hält Datenkopien für schnellen Zugriff
- Fehlerhandlung
- temporäre fehler und permanente fehler in hardware möglich
- Linux hinterlegt in Variable errno einen Fehlercode
Charakteristiken von I/O-Geräten aufzeigen und diskutieren
Transfermodus:
- Stream
- Datenübertragung Byte um Byte, z.B. Serielle Schnittstelle
- Block
- Übertragung in Blöcken von Bytes, z.B. Disk
- Netzwerk
- Zugriff meist über Sockets
Zugriffsmethode: Sequentiell vs Random Access
Entweder legt Gerät fest wie Zugriff erfolgt oder der Kernel. Beispiel für Sequentiell, Network. Beispiel für Random Access: Disk
Ablauf: Synchron vs Asynchron
Gerätezugriff kann blockieren oder nicht
I/O Richtung
Read/Write, readonly, writeonly
Geschwindigkeit
Latency, transfer rate, delay
das Linux Modul/Treiber-System erklären
Der Linux-Kernel ist grundsätzlich monolithisch aufgebaut, d.h. dass Hauptfunktionen fest in den
Kernel kompiliert sind. Zur Laufzeit können jedoch Module dynamisch von Hand oder automatisch1
nachgeladen bzw. wieder entfernt werden. Der Kernel wird dabei entsprechend vergrössert oder
verkleinert. Module werden beim Laden Teil des Kernels und haben Zugriff auf alle seine Symbole,
Funktionen, etc. Gerätetreiber werden w¨ahrend der Entwicklungsphase typischerweise als Module
realisiert und von Hand geladen.
Aufgabe von Treiber ist es I/O Geräte zu verwalten und dem benutzer eine definierte API für den Zugriff auf diese Geräte zur Verfügung zu stellen.
das Windows I/O-System erklären
- Treiber unter Windows werden mit der WDF (Windows Driver Foundation) entwickelt
- Sie enthalten digitale Signaturen falls sie von MS verifiziert worden sind (.CAT Dateien) und Skriptähnliche Installationsdateien (.INF)
Von Microsofts website:
The I/O manager presents a consistent interface to all kernel-mode drivers, including lowest-level, intermediate, and file system drivers. All I/O requests to drivers are sent as I/O request packets (IRPs).
I/O operations are layered. The I/O manager exports I/O system services, which user-mode protected subsystems call to carry out I/O operations on behalf of their applications and/or end users. The I/O manager intercepts these calls, sets up one or more IRPs, and routes them through possibly layered drivers to physical devices.
The I/O manager defines a set of standard routines, some required and others optional, that drivers can support. All drivers follow a relatively consistent implementation model, given the differences among peripheral devices and the differing functionality required of bus, function, filter, and file system drivers.
Like the operating system itself, drivers are object-based. Drivers, their devices, and system hardware are represented as objects. The I/O manager and other operating system components export kernel-mode support routines that drivers can call to get work done by manipulating the appropriate objects.