Betriebssysteme

Stefan Winterberger
Study

Stefan Winterberger
Diese Lernkarten bieten einen umfassenden Überblick über die Grundlagen der Computer- und Netzwerkarchitektur auf Universitätsniveau. Sie behandeln zentrale Themen wie Prozesse, Speicherverwaltung, Interprozesskommunikation (IPC), Betriebssystemfunktionen und Hardware-Interaktionen. Besonders hervorgehoben werden Konzepte wie Scheduling, Mutexe, Semaphore, Threads und die Verwaltung von Ressourcen. Diese Karteikarten sind ideal für Studierende und IT-Profis, die ihr Verständnis der Systemarchitektur vertiefen möchten, insbesondere in Bezug auf die effiziente Nutzung von CPU, Speicher und I/O-Geräten.
Flashcards
20
Students
4
Language
German
Category
Computer Science
Level
University
Created / Updated
01.11.2013 / 09.08.2015

Flashcards

Aufgaben des Betriebssystems

  • Verwaltenund (zuteilen, Multiplexing) und ansteuern der Hardware (I/O-Geräte, Speicher, etc.)
  • Virtuelle Maschine die mächtiger ist als der Rechner selbst. (bsp. Datesystem etc.)
  • Verwalten von Benutzerrechten (Multiuser)

Programm im Speicher

  • Programme laufen im Speicher des Rechners
  • Jedes Programm erhält eigenen Beriech (Durch BS geregelt)
  • Benötigt Schutzmechanismus, der die Programme voneinander trennt.
  • Memory Management Unit (MMU) bildet die virtuellen Adressen des Programms im Speicher ab.

Interaktion mit I/O geräten

  • Das betriebssystemm greift auf die Treiber zu
  • Gerätetreiber sind Systemabhängig:
    • statisch integriert im OS-Kern
    • Einbindung über Tabellen
    • Plug and Play (dynamisches Laden)
    • Treiber greiffen auf den Controller zu.
  • Gerätecontroller
    • Stellt Schnitstelle zum gerät bereit:
    • bsp. rotation der HDD etc.

Busy Waiting / Interrupts

  • Busy Waiting (Polling)
    • System Call des BS wird an Treiber geleitet,
    • Treiber mach solange anfrage an Controller bis Befehl ausgeführt wurde.
    • Ist zu vermeiden da Ressource die ganze Zeit belegt bleibt.
  • Interrupts
    • Nach der übermittlung der Anfrage geht Kontrolle an OS zurück und kann weiterarbeiten.
    • Anwendung wird blockiert bis interrupt des Geräts kommt.

Direct Memory Access (DMA)

  • spezieller DMA-Chip übernimmt/liefert Daten firekt zwischen Gerätecontroller und Hauptspeicher
  • CPU teilt vorher DMA-Chip erforderliche Infos mit (von wo nach wo und wieviel)
  • entlastung der CPU
  • Interrupt erst nach abschluss des Transfers

Rechnerkonfiguration für Geräte

  • BS benötigt Infos über Interruptlevel (Priorität) und I/O-Adressen
  • Früher: statische Festlegung
  • Heute (PCI-Bus) Dynamische zuweisung zur Laufzeit
  • Hilfsmittel: BIOS (ESCD: Extended System Config Data)

Prozesse

  • Prozess = in Ausführung befindliches Programm
  • Benötigt: Adressraum im Speicher und Registerinhalte
  • Prozesse kommunizieren (neue erstellen oder beenden)
  • Werden "quasi" gleichzeitig ausgeführt.
  • Pseudoparallelität: Context-Switching
  • Schedulingalgorhitmus bestimmt wann werlcher ausgeführt wird.
  • Prozess ist nicht reproduzierbar (verschachtelung)

Deadlocks

  • Wenn 2 oder mehr Prozesse um eine Ressource konkurenzieren kommt es zum Stau (Deadlock)
    • BS soll dies verhindern

Files / Filesystem

  • Daten auf Massenspeicher müssen eine Struktur für den komfortablen Zugriff haben.
  • BS ist für Filesystem zuständig
    • baumartige Struktur mit Wurzelverzeichniss (ROOT)
    • Pfade
    • aktuelles Verzeichniss
    • Berechtigungen

Pipes

  • Pseudofile über welches 2 Prozesse kommunizieren können
  • entspricht einer Queue auf die gleichzeitig lesend und schreiben zugegriffen werden kann

Shells

  • BS hat üblicherweise einen Kommandointerpreter
  • Direkter aufruf von OS kommandos

Systemaufrufe

  • Anwendungsprogramme verwenden BS-funktionen über System Calls
  • sind meist ins Bibliotheken eingebettet
  • Kontrolle geht an BS über
    • vom Usermode zum Kernel mit trap-anweisungen und zurück

Prozess: Start/Ende/Zustände

  • Start
    • Systeminitialisierung
    • durch ander Prozesse
    • durch benutzer
  • Ende
    • normale beendigung
    • durch fehler
    • durch andere Prozesse
  • Zustände
    • rechnend (running)
    • rechenbereit (ready) benötigt CPU
    • blockiert (blocked) wartet auf ereignis

 

Threads

  • Parallele ausführung im selben adressraum
  • unterteilung eines Prozesses in kleiner unterprozesse
  • weniger aufwändig als Prozesse
  • Hyper-Threading
    • eine CPU wird erweitert dass mehrer Threads- gleichzeitig ausgeführt werden.
    • benötigt komplexes stuerwerk
    • nur teile der architektur doppelt vorhanden

Kommunikation zwischen Prozessen

  • Interprozesskommunikation (IPC)
  • konfliktfreier ablauf von prozessen
  • Gemeinsamer Speicher = kritischer Abschnitt
    • gleichzeitiger zugriff muss verhindert werden

Semaphore

  • "Schranke" für kritischen Bereich
  • Integer-Variable, auf die über 2 unteilbare Operationen zugegriffen wird.
    • Down-Operation, P(s) Passieren
      • falls Semaphor = 0, dann sleep
      • erniedrige Semaphor wenn >0
    • Up-Operation, V(s), Verhindern
      • erhöhe Semaphore und wecke einen Prozess wieder auf

Mutexe (Mutual exclusion)

  • ist eine Variable mit 2 Zuständen (locked, unlocked)
  • beschreibend zustand der Ressource
  • Vor dem Zugriff auf die gemeinsame Ressource führt ein Prozess die Operation mutex_lock aus, anschliessend mutex_unlock
  • ein prozess der keinen Zugriff erhält suspendiert sich selbst

Monitore

  • Monitore lösen das Koordinierungsproblem vom wechselseitigen auschluss auf einer höheren Ebene, und kapseln Prozeduren, Daten, und Variablen
  • Der Zugriff auf Monitore ist nur über die dort definierten Prozeduren möglich. Zu jeder Zeit kann sich nur ein Prozess im Monitors aufhalten.
  • Der Compiler erzeugt den entsprechend Monitorcode

Message Passing

  • Spezialfall für IPC, besonders im verteilten Fall
  • kein zugriff auf gemeinsam ressourcen sondern direkte übermittlung von Infos
  • realisierbar über Systemaufrufe
    • send(destination, &message)
    • recieve(source, &message)

Scheuling

  • Bewerben sich mehrer Prozesse um die CPU, entscheidet der cheduler welcher Prozess rechenzeit erhält
  • Nonpreemtiv:
    • ein Prozess rechnet solange bis er fertig ist
  • Preemtive
    • der Scheduler nimmt dem Prozess die CPU nach einer eit wieder weg

Study