zhaw


S. G.
Diese Karteikarten bieten einen umfassenden Überblick über das I/O-System und die Treiberverwaltung in Betriebssystemen, insbesondere unter Windows und Linux. Sie decken Themen wie die Architektur von I/O-Systemen, die Funktionsweise von Treibern, die Verwaltung von Datenträgern und die Optimierung von I/O-Operationen ab. Die Karteikarten sind besonders nützlich für Studierende und Fachleute, die sich mit der Implementierung und Verwaltung von I/O-Systemen in modernen Betriebssystemen befassen.
Cartes-fiches
17
Utilisateurs
3
Langue
Allemand
Catégorie
Informatique
Niveau
Université
Créé / Mis à jour
16.05.2019 / 12.06.2019

Cartes-fiches

  1. 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.

  1. Logisch: einheitliche API-Schnittstelle (Kernel), Operationen zur Ansteuerung der physikalischen

  2. 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)

  1. Wieso steigert Double-Buffering die I/O-Performance?

  1. 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.

Étudier