Computer and Network Architecture
Betriebssysteme
Betriebssysteme
20
0.0 (0)
Stefan Winterberger
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
-
- 1 / 20
-
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
- Down-Operation, P(s) Passieren
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