ZHAW BSY Kap3
wetr
wetr
-
- 1 / 26
-
Flashcards
- Programm in Ausführung. - Muss nicht zwingend aktiv sein- Hat eigenen Kontext (Daten, Code, Stack etc)- Sandbox
- Prozesse werden concurrent (interleaved) ausgeführt. Sie können unterbrochen und wieder fortgeführt werden. Dispatchert teilt Prozessen CPU Zeit zu. (Fair, Starvation etc...)
kap3: den Prozesswechsel erklären
Wechsel wenn BS Kontrolle über CPU erhält
• System Call - expliziter Aufruf aus Benutzerprogramm - Prozess wird ev. blockiert, muss aber nicht
• Interrupt - äussere Ursache: z.B. Timer, DMA beendet, etc. - Kontrolle an Interrupt Handler, oft nur für sehr kurze Zeit
• Trap - die letzte Instruktion hat einen Fehler erzeugt - Prozess wird ev. Umständen abgebrochen, z.B. Division x / 0 Zwei Möglichkeiten
• Mode Switch: keine Prozesswechsel, nur "Unterbruch"
• Context Switch: Prozesswechsel, impliziert auch Mode Switch
Gründe für Prozesswechsel - Timer (clock) ...Zeitintervall abgelaufen Prozess geht in Zustand ready
- I/O-Interrupt ...auf Interrupt wartenden Prozess in den Zustand READY oder READY SUSPEND versetzen entscheiden, ob
• laufender Prozess unterbrochen oder weiterverarbeitet werden soll
• Prozess mit höherer Priorität aktiviert werden soll - page fault (virtual memory) adressierter Datenwert steht nicht im physikalischen Speicher, entsprechender Speicherblock muss vom Disk geladen werden Prozess wird in den Zustand blocked versetzt - trap oder exception laufenden Prozess abbrechen - system call die meisten System Calls blockieren den aufrufenden Prozess
kap3: Ausführungsmodi erklären
User Mode / Kernel Mode Die meisten modernen Prozessoren unterstützen diese beiden Modi (Hardwareunterstützung) Wieso diese Aufteilung ? • kritische Systemkomponenten aus Sicherheitsgründen vor unbeabsichtigten resp. unerlaubten Zugriff schützen • z.B. PCB, Memory Allocation Tables, IO, etc.
fork, wait (siehe praktikum)
kap3: erklären und diskutieren, wie das Betriebssystem ausgeführt wird
- Das BS arbeitet als normale Computersoftware (wird als Programm vom Prozessor ausgeführt.
- Das BS gibt oft kontrolle ab. Prozessor muss aber Kontrolle wieder an BS zurückgeben.
- Ältere BS: Kernel mit eigenem Kontext. (Nur Benutzerprogramme sind Prozesse)
- Prozessbasierte BS: BS ist eine Sammlung von Systemprozessen (Microkernel). Grössere Kernel funktionen sind eigenständige Prozesse. Leicht erweiterbar und gut geeignet für Multicore Prozessoren. Aber hohe Interprozesskommunikationskosten
ein Programm in Ausführung, beinhaltet alle notwendigen Informationen um unterbrochen und wieder gestartet werden zu k ̈onnen, Schnappschuss seiner Laufzeitumgebung
kap3: Was versteht man unter dem Begriff Prozesskontext und was geho ̈rt alles dazu?
alles ausser dem eigentlichen Programmcode, Datenbereich und Stack..
Alle notwendingen die für den Ablauf und die Verwaltung von prozessen von Bedeutung sind.
Zeitmultiplex
Zustandsdiagramm und Queueing-Diagramm
mit Tabllen für Speicher, IO, Files und Prozesse
Process Control Block: enthält alle wesentlichen Informationen zum Prozess und ist in linked lists
beim Mode Switch wird in den privilegierten Modus geschaltet über eien SW-Interrupt, beim Context Switch muss zuätzlich der gesamte Prozesskontext umgeschaltet resp. ausgetauscht werden
wählt einen lauffähigen Prozsses für die Zuweisung an die CPU aus
Kernel als eigener Kontext, BS-Funktionen im Kontext des Benutzers, BS-Funktionen alseigenständige Prozesse
init Prozess: Hauptprozess, alle Prozesse werden davon ausgehend in einer Hierarchie gestartet
fork() erstellt Kopie des Elternprozesse, exec() überlagert Programm und Daten (startet neues Programm)
Ein Prozess, auf dessen Terminierung niemand wartet, indem man Prozesse verwaisen lässt (Elternprozess wird dabei Prozess 1 (init)
nach fork() werden Daten neu erst dann erzeugt, wenn Sie geschrieben werden: COW → copy on write
Ein Prozess kann mehrere Threads enthalten, die innerhalb eines Prozesses aus geführt werden und dessen Ressourecen teilen
Umschaltung zwischen Threads schneller (Thread-Kontext kann sehr schlank gehalten werden), WEB-Services, Spread-Sheets, Arbeitsteilung auf gemeinsamen Daten und Multicore Maschinen
kap3: Erklären Sie den Unterschied zwischen Kernel-Level Threads und User-Level Threads. Diskutieren Sie Vor- und Nachteile.
Kernel-Level Threads: der Kern weiss um die Thread, User-Level Threads: der Kernel weiss nichts von den Threads
User level threads:
+ Kann auch auf einem Betriebssystem, welches threads nicht unterstützt implementiert werden
+ Thread switching ist günstig
- Sind dem OS nicht bekannt -> nicht optimiert
Kernel Level Threads:
+ Scheduler kann effekt Zeit zuweisen
+ Gut für Applikationen die häufig blocken
- Langsam und ineffizient.
Blockierenden System-Call aufrufen: wenn der Prozesss blockiert → User-Level Thread
?