Betriebssystem ZHAW

Betriebssystem wird hier gelehrt --> Willkommen in der Hölle meine Damen und Herren

Betriebssystem wird hier gelehrt --> Willkommen in der Hölle meine Damen und Herren


K. S.
Diese Lernkarten behandeln grundlegende Konzepte von Betriebssystemen auf Universitätsniveau, mit Fokus auf Prozesse, Threads, Speichermanagement und I/O-Operationen. Sie erklären die Unterschiede zwischen Prozessen und Threads, deren Verwaltung und Scheduling, sowie die Interprozesskommunikation und verschiedene Arten der Betriebssystemausführung. Die Karteikarten sind besonders nützlich für Studierende der Informatik, die ein tieferes Verständnis der Funktionsweise von Betriebssystemen erlangen möchten.
Karten
62
Lernende
6
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
22.06.2019 / 04.09.2023

Lernkarten

File Systems

File Allocation und Free Space Managment erklären und diskutieren  

Auf einer Disk hat es viele Files, die Diskspace nutzung und der Filezugriff sollen effizient sein. Folgende Lösungsmöglichkeiten:
- Contigous Allocation: Zusammenhängende Blöcke hintereinander speichern, unterstützt sequential acces und direct random access. Führt zum Problem vom finden von freien Speicher, häufig verwendete Strategie ist First-Fit und Best-Fit, führt zu extremer Fragmentierung. Ein weiterer Nachteil ist wieviel Space soll asoziert werden, beim Kopieren kein Problem aber wenn das File vergrössert wird.
- Linked Allocation: Die Blöcke eines Files bilden eine verkette Liste, löst alle Probleme von Contigous Allocation. Ist aber immernoch ineffizient für Direct (Random) Access und Pointer benötigen auch Disk Space.
- Indexed Allocation: Speichert die Blockzeiger in einem Index Block, keine Fragmentation und effizienter Direct (Random) Access. Wieder das Problem, Zeigerblöcke brauchen wieder speicher.
- Performance: Ist abhängig davon welches Filesystem benutzt werden soll, Sequential Access -> Linked Allocation und falls Direct (Random) Access -> Contigous oder Indexed Allocation. Oft trifft man eine Mischung zwischen Contagious für kleine und Indexed für grosse Files an.
- Free Space Management:  Freie Blöcke müssen auf der Disk verwaltet werden, BS führt eine Liste Free Space List. Dies kann gelöst werden mit Bit Vector jeder Block entspricht einem Bit, Linked List durch alle freien Blöcke oder Grouping im ersten freien Block die Adresse von N freien Blöcken.
 

File Systems

File Management erklären und diskutieren 

Record Locking:

- Multiuser Umgebungen -> Es sind merfahzugriffe möglich, deshalb Mutex auf Files anwenden, bei z.B. Datenbanksystemen, Daemonen, etc. 

- Exklusiver Zugriff -> Ganze Dateien zu sperren ist ineffizient, dehalb Record-Locking welches nur Teile des Files sperrt. BS-Unterstützung notwendig, z.B. bei Unix/Linux über Befehl fcntl()

- Datenbanken: Am effizientesten mit eigener Fileverwaltung

 

Journaling:

- Journaling: Verhindert Inkonsistenzen des File Systems bei Crashes dadurch, dass sämtliche Änderungen am File System mit Transaktionen gemacht werden. Moderne Betriebsysteme ünterstützen Journaling, Linux -> ext3, reiserfs, Windows -> NTFS

- z.B. ext3 Journaling-Modi: ext3 unterstützt 3 modi: 

ordered -> nur Metadaten werden im Journal gespeichert

writeback -> nur Metadata, ordered aber nicht synchron

journal -> auch Daten im Journal eintragen, wesentlich langsamer wegen zweifachem Speichern

 

Memory Mapped Files:

- Memory Mapped Files: Werden im Virtual Memory des Prozesses abgebildet und mit "demand paging" in physical Speicher gelesen. Filezugriff = Speicherzugriff. Vorteile sind einfacher Zugriff durch Speicherzugriff und Filesharing ist schnell und einfach.

 

Quotas:

Quoates legen die Grenzen für Disk-Usage (Patritions) fest, im Allgemeinen pro Anwender

File Systems

das Unix File System erklären und diskutieren können, Filegrössen bestimmen

Unterstüzt diverse File Systeme
UNIX -> ufs (fast file system), rfs (remote file system), nfs (network file system)
LINUX -> ext2 (extended file version 2), ufs (dito), nfs (dito)
Grundsätzlich werden remote Filesysteme in den lokalen Verzeichnisbaum gemountet. NFS ist eine Implementation oder eine Spezifikation. 
Filesystem: Systemschicht
- Bootblock: Bootcode zum starten des BS
- Superblock: Beschreibt aufbau des Filesystems
- Inode Liste: Inodes enthalten Informationen zu Files
- Datenblöcke: Beginnen nach der Inode Liste, enthalten echte Daten
- Directory Blocks: Gehören zu Directory Files, enthalten die I-Node Nummer und den Filenamen
- I-Node: Enthält sämtliche Informationen zum File, Zugriffsrecht, Datum, Open Count, etc   

# Filegrössen bestimmen
NFS:
- kleine Files direkt Zeiger auf Datenblöcke
- grosse Files Zeiger auf Blöcke
NTFS:
- kleine Files -> im Datenfeld des MFT-Records
- grosse Files -> indexed allocation von Clustern
Befehl: ls -al Filename 
-rw-rw-r-- 1 tha tha 531 <- Grösse

File Systems

(das Windows File System erklären und diskutieren)

  Wiederherstellbares File System, Daten in Cluster gespeichert, unterstützt mehere Datenströme. Clustering heisst dass mehrere Sektoren in einem Cluster gespeichert werden. Ein Sektor sind 512 Bytes und Clustergrössen zwischen 512B - 4KB. Es gibt ein Master Table File als Array von 1KB of Records, ähnlich wie I-Nodes. Die MFt iist eine Sammlung von Atrribut/Wert Paaren.
Security: Jedes File hat eine ACL (access control list)

Computer Systeme

Aufgaben und Funktionsweise der CPU kennen und erklären können

Bus Interface

  • Ansteuerung der externen Einheiten

Recheneinheiten

  • Logische und Arithmetische Rechenleistung der CPU

Adress-, Daten, und Statusregister

  • Für Benutzer sichtbar
  • Von System- und Anwenderprogrammen genutzt

Instruction (Control) Unit

  • Steuereinheit : Interpretation und Ausführung der Instruktionen

Computer Systeme

Interrupts verstehen und diskutieren können

  • Er unterbricht aktuelle Instruktionsausführung des Prozessors
  • KOntrolle geht an den Interrupt Handler über
  • evtl. wird zu einem anderen Programm umgeschaltet

Asynchrone Interrupts

  • Timer
  • I/O Devices
  • Hardwarefehler

synchrone Interrupts

  • Programmfehler z.B Division durch 0
  • Trap --> Exception durch einen User-Prozess
  • SWI (Software Interrupts)

Mit den Interrupts wird die CPU last besser verteilt. Wenn ein Programm auf I/O wartet, dann kann es auf den Interrupt warten und muss kein busy waiting betreiben

Computer Systeme

Für Betriebssysteme wichtige Rechnerkomponenten kennen und erklären können

CPU

Hauptspeicher (Code & Memory)

I/O Module

  • Sekundärspeicher
  • Monitore & Tastaturen
  • Kommunikation

Bus

  • Verbindung zwischen i/O Geräten

 

Das sind die Ressourcen die das Betriebssystem uns zur Verfügung stellt.

Computer Systeme

System / User Mode erklären und diskutieren können

Usermode

  • Code kann nicht direkt auf Hardware oder Referenzspeicher zugreifen.
  • Code muss an System-Apis delegiert werden um Hardware oder Speicher zuzugreifen
  • Dadurch können Sitzungen aus Abstürzen wieder hergestellt werden.
  • Der Grossteil des ausgeführten Codes im PC ist im Bereich des Benutzermodus

Kernel Mode:

  • Uneingeschränkter Zugriff auf Hardware
  • Jeder CPU Befehl ausführen und auf jede Speicheradresse verweisen
  • Ist die vertrauenswürdigste Funktion der untersten Ebene des Betriebssystem.
  • Abstürze in Kernelmodus sind katastrophal --> Ganze PC geht hops

Computer Systeme

Die Funktionsweise von System Calls kennen

System Calls:

  • Schnittstelle zwischen Anwendersoftware und Systemsoftware
  • rufen System-funktionen auf
  • Schalten zwischen Kernel und Usermode um

Ablauf

  • Anwenderprogramm stellt Parameter bereit(Register, Stack)
  • Ruft Bibliuotheksfunktion auf: normaler Prozerduraufruf
    • Kernler überprüft Parameter
    • Kernel ruft den System Call handler auf
    • Handler wird ausgeführt
  • Rücksprung in die Bibkiotheksfunktion
  • Rückkehr ins Anwenderprogramm

Computer Systeme

I/O Module und I/O Kommunikation kennen und diskutieren können

Drei Techniken für Kommunikation mit I/O Geräten

Programmen I/O oder synchroner I/O

  • CPU wartet bis jede I/O Operation beendet wird -->busy wait

Interrupt Driven I/O oder asynchroner I/O

  • CPU führt währen I/O Operation Code aus, wird unterbrochen wenn I/O Operation fertig ist
  • CPU kann andere Arbeiten ausführen

Direct Memory Access

  • Speicherblock mit Daten wird vom/zum Speicher übertragen ohne Rechenleistung der CPU zu beanspruchen

Computer Systeme

Die Speicherhierarchie moderner Prozessorsysteme kennen, erklären und diskutieren können

Je grösser der Speicher wird, desto langsamer wird der Zugriff auf die Daten.

Computer Systeme

Die mittlere Zugriffszeit auf den Speicher aufgrund verschiedener Parameter berechnen können

Formel ist wie folgt

TN = Zugriffszeit auf nächsten Speicher

h = hit ratio, m = Missrate 1-h

Ta = TC + (1-h) * TN

Tc < Ta <Tm

 

Computer Systeme

Die Funktion des Stacks kennen und erklären können

Ist eine dynamische Daternstruktur, wird von den meisten Mikroprozessoren in der Hardware direkt unterstüzt

push(das objekt oben auf den Stapel legen)

pop(liefert das obesrte objekt und ernfertn es vom Stapel)

peek(nachsehen, liefert das erste objekt ohne es zu entfernen)

In Mikroprozessoren gibt es oft ein spezielles Register, den Stackpointer (Stapelzeiger). Dieses Register enthält eine Speicheradresse, die auf den aktuellen Stapeleintrag (des aktuellen Prozesses) zeigt. Viele Befehle/Operationen des Mikroprozessors nutzen diesen Stapeleintrag. Unter anderem gibt es Befehle, mit denen man in den Stack schreiben (z. B. push beim x86-Prozessor) oder von ihm lesen kann (z. B. pop). Dabei wird automatisch der Stapelzeiger verringert oder erhöht.

Prozesse Threads

Definition des Begriffs " Prozess" kennen und erklären können

Unit of Resource Ownership

  • Eine Einheit, die Ressourcen besitzt
  • ein virtueller Adressraum, in dem das Prozess Image steht
  • hat Kontrolle über Ressourcen ( Files, I/0 Geräte, etc)

Unit of Scheduling

  • Eine Einheit die schedulierbar ist
  • CPU-Scheduler weist der CPU einen Prozess zu (dispatch)
  • zum Prozess gehören der Execution State (PC, SP, Register) und eine Ausführungspriorität

Prozesse Threads

Verstehen und erklären kännen, wie Prozesse auf einer CPU ausgeführt werden

  • Prozesse werden gleichzeitig "concurrent" ausgeführt
  • Sie können mitten der Ausführung unterbrochen und später weiterverarbeitet werden
  • Erhalten von CPU vorgegebene Zeitintervall --> abhängig von Schedulingverfahren

 

Dispachter: Teilt die CPU zu

Scheduler: Plant CPU Zuteilung so das :

  • kein Prozess die CPU als Geisel nimmt
  • wer als nächster kommt und schaltet zwischen Prozesse um

Prozesse Threads

Die Modelle für das Verhalten von Prozessen skizzieren und erkären können

Prozess können wir aus Sicht der Warteschlangen-Diagramm :

  • Beschreibt wo sich ein Prozess befindet
  • Mehrere Prozesse können sich im gleichen Zustand befinden -->"Not Running" und würden somit in der Warteschlange

Zustandsmodell:

  • Beschreibt den momentanen Zustand eines Prozesses

new - Prozess ist erzeugt, aber noch nicht gestartet

ready - Prozess kann ausgeführt werden

running -Prozess wird gerade ausgeführt (ist aktiv)

blocked - Prozess wartet auf Ereignis z.B I/O etc.

suspend blocked - Prozess wurde ausgelafert, wartet auf Ereignis

suspend ready - Prozess ist ausgelagert aber bereit für Aktivierung

Prozesse Threads

Erklären können, wie Prozesse beschrieben, gesteuert und verwaltet werden

Das Betriebssystem unterhält & verwaltet verschiedene Tabellen für die Verwaltung von Prozessen & Ressourcen

  • Speicher    Memory Tabellen
  • Geräte        I/O Tabellen
  • Files           File Tabellen
  • CPU           Prozess Tabellen

Prozess Image besteht aus

  • Benutzerprogramm (Code) , Daten, Stack, Heap
  • Kontext, im (PCB) Prozesskontrollblock gespeichert

Das BS hat nur Zugriff auf Prozessdaten, wenn der Prozessimage teilweise im physikalischen speicher steht.

Prozessimage sind im virtuellen speicher abgelegt und werden mittel MMU auf der physikalischen speicher abgebildet

Prozesse Threads

Die verschiedene Arten der Betriebssystemausführung aufzählen und diskutieren können

Kernel mit eigenem Kontext (ältere BS)

  • nur Benutzerprogramme sind Prozesse
  • innerhalb eines Benutzer-Prozesskontextes wied nie Betriebssystemcode ausgeführt
  • Betriebssystemcode
    • eigenständiges Programm mit eigenem Kontext
    • wird im System Mode ausgeführt

BS-Funktionen im Kontext der Benutzerprozesse

  • Context Switching meist ausserhalb von Prozessen
  • BS stellt "nur Funktionen" zur Verfügung
    • Betriebssystemcode im Kontext des Benutzerprozesses
  • System Calls, Interrupts, Traps
    • CPU schaltet in System Mode, Ausführung aber im Benutzerkontext

Prozessbasiertes Betriebssystem

  • BS ist eine Sammlung von Systemprozessen
  • kleine Anzahl von Systemfunktionen (Prozesswechsel, IPC)
  • grösere Kernel Funktionen sind eigenständige Prozesse

 

Vorteile

  • Fördert modulare BS Implementation mit sauberen Schnittstellen
  • nicht kritische Funktionen problemlos als Prozesse implementierbar
  • implementieren z.B. Funktionen, die nicht einen speziellen Service anbieten, sondern allgemeiner sind: accounting
  • gut geeignet für Multiprozessorsysteme
  • schlanker Kernel
  • leicht erweiterbar

Prozesse Threads

Den Unterschied zwischen Thread und Prozess erklären und diskutieren können

Prozess : unit of resource ownership

  • Schwergewicht Prozesse
  • virtueller Adressraum, Programmcode, Daten, Betriebssystem-BRessourcen
  • single-thread of execution

Thread : unit of scheduling

  • leichtgewicht prozess
  • immer an Prozess gebunden
  • unabhängiges Stück Code innerhalb eines Prozesses
  • teilt sich mit anderen Threads: Adressraum, Daten, Kontext
  • hat eigene: lokale Variablen, Register, PC, Stack, Stackpointer
  • speichert Threadkontext wenn inaktiv

Multithreading --> mehrere Threads pro Prozess

 

Vorteile :

  • Threadwechsel weniger aufwendig  --> günstig
  • Aufgabenteilung
  • unterstützt Multicore-Prozessoren

 

Prozesse Threads

Das Threadverhalten erklären und diskutieren können

Wir wissen das aus einen Prozess mehrere Threads entstehen können. Dies erlaubt uns die arbeiten innerhalb eines Prozess auf mehrere Threads aufzuteilen oder uns nur auf bestimmte Aufgaben zu konzentrieren wenn uns Bedingungen gegeben werden.

Threads werden gebraucht bei :

  • DatenServer bei mehreren Anfragen gleichzeitig zu verarbeiten
  • Befehle im Hintergrund auszuführen
  • Parallelverarbeitung mit viel Kommunikation
  • Programme mit Vorder- und Hintergrundaktivitäten
  • Repetitive nummerische Aufgaben

Prozesse Threads

Threadtypen kennen und diskutieren können

User Level Threads

  • Kernel weiss nicht, das dies ein Thread ist
  • Laufen im Benutzerbereich
  • Realisiert mit Bibliotheken
  • Anwendung verantwortlich für Threadmanagement
  • Threadsheduling applikationspezifisch wählbar
  • Bei Blockade --> Prozess blockiert

Kernel Level Threads

  • Kernel weiss, das es Threads gibt
  • Kernel stellt Systemfunktionen für Threadverwaltung zu Verfügung
  • API zu Threadfunktionen im Kernel
  • Kernel verwaltet KOntextinformationen von Prozessen und Threads
  • Threadwechsel erfordert Intervention des Kernels
  • Thread is ein Schedulierbare Einheit
  • Thread können auf mehreren Prozessoren verteilt werden
  • light weight prozess

Prozesse Threads

Vor- und Nachteile User-Level Threads

+

  • Threadwechsel involviert Kernel nicht
  • Läuft auf jedem BS ( Bibliothek)
  • Schedulingverfahren kann anwendungsspezifisch gewählt werden
  • schnell und einfach

-

  • Die meisten System Calls blockieren --> Prozess blockiert und damit auch die anderen Threads des Prozesses
  • NUr der Kernel kann Prozesse den Prozessoren zuweisen, d.h Parallelverarbeitung nicht möglich

Lernen