Prozessverwaltung Flashcards
Was gehört zum Kontext eines Prozesses?
Alle Infos, die der Prozess zur Ausführung benötigt (CPU)
Die Werte in den betreffenden Registern der CPU Die Belegung des Caches mit Befehlen und Daten des Prozesses. Die Belegung des Hauptspeichers mit Programmtext und Daten des Prozesses.
Was passiert bei einem Kontextwechsel?
Ein Prozess verliert CPU
Der Kontext wird gesichert und der neue Kontext wird geladen
Wie wird ein Prozess in Linux und Windows erzeugt?
Linux: fork()
kopiert Elternprozess
Windows: CreateProcess
startet neue Anwendung
Prozesszustände
Bereit, blockiert, rechnend
Die Registerinhalte bezeichnet man auch als
Hardware-Kontext.
Thread Definition
nebenläufige Ausführungseinheit innerhalb eines Prozesses.
Alle Threads eines Prozesses teilen sich den gemeinsamen Adressraum dieses Prozesses
und können damit gleichermaßen auf Prozessdaten zugreifen und Programmcodes nutzen.
Arten von Threads
Klassifizierung je nachdem, wo die Threads verwaltet werden:
Kernel-
User-
Hybride
Vor- und Nachteile von Threads
Vorteil: #schnellerer Threadkontextwechsel, da sie gleiche Speicherbereiche nutzen (kein BS - Overhead( #Unterstützung von Parallelisierung der Prozessarbeit (sinnvoll bei mehreren CPUs)
Nachteile: #Threads müssen threadsafe oder reentrant sein (=wenn Threads nebenläufige oder auch die folgende Ausführung eines weiteren Threads nicht beeinträchtigen)
Scheduling
Zuteilung der CPUs auf Aktivitäten
Nach bestimmten Algorithmen
Scheduling Ziele
- Fairness, d. h. für jeden Prozess eine garantierte Mindestzuteilung
- Effizienz durch möglichst volle Auslastung der CPU
- Die Antwortzeit soll minimiert werden
- Die Wartezeit von Prozessen soll minimiert werden
- Der Durchsatz soll optimiert werden
- Die Durchlaufzeit (Verweilzeit) eines Prozesses soll minimiert werden
- Die Ausführung eines Prozesses soll vorhersehbar und damit kalkulierbar sein.
Klassifizierung von Scheduling - Verfahren
Preemptiv: #Vorrang-Unterbrechung darf stattfinden
Nicht-Preemptiv: #ein Prozess darf nicht unterbrochen werden, bis er seine Aufgaben vollständig erledigt hat
Scheduling - Verfahren
#First Come First Serve (FCFS) (non-preemptive) #Shortest Job First (SJF), auch als Shortest Process First (SPF) bzw. Shortest Process Next (SPN) (non-preemptive) #Shortest Remaining Time Next (SRTN) (verdrängend) --> kürzeste verbleibende Restrechenzeit im System
#RoundRobin --> FCFS in Verbindung mit einer Zeitscheibe #Priority Scheduling --> Prozess mit der höchsten Priorität
Nachteile der Scheduling Verfahren
#Verhungern: -SJF, SRTN
#Zeitbestimmung -SJF, SRTN
Atomare Aktion
Codebereiche, die in einem Stück ausgeführt werden müssen und (logisch) nicht unterbrochen werden dürfen
Nebenläufigkeit
parallele oder quasi-parallele Ausführung von Befehlen auf einer CPU oder mehreren CPUs bzw. Rechnerkernen
Race Conditions
Situationen, bei denen zwei oder mehr Prozesse gemeinsame Betriebsmittel nutzen und die Endergebnisse der Nutzung von der zeitlichen Reihenfolge der Operationen abhängen
Kritische Abschnitte
Programmteile, die nicht unterbrochen werden dürfen.
Problematische Eigenschaften nebenläufiger Programme
Blockieren, verhungern, verklemmen
Synchronisationskonzepte
dass mehrere Prozesse keinen kritischen Abschnitt betreten
#sperren (keine richtige Lösung) #TSL oder TAS (Test and Set Lock) #Semaphore #Mutex (binäres Semaphor) #Zählsemaphor #Monitor
Monitor
Menge von Prozeduren und Datenstrukturen, die als Betriebsmittel betrachtet werden und mehreren Prozessen zugänglich sind, aber nur von einem Prozess zu einer Zeit benutzt werden können.
Deadlock
Zwei oder mehr Prozesse halten jeder für sich ein oder mehrere Betriebsmittel belegt und versuchen ein weiteres zu belegen, das aber von dem anderen Prozess belegt ist.
Bedingungen für einen Deadlock
#Mutual Exclusion für die benötigten Betriebsmittel #Prozesse belegen Betriebsmittel und fordern weitere an #Kein Entzug eines Betriebsmittels ist möglich #Zwei oder mehrere Prozesse warten in einer Warteschleife (circular waiting) auf weitere Betriebsmittel
Umgang mit Deadlocks
#Erkennen und Beseitigen zur Laufzeit #Abbrechen eines Prozesses/Threads #Entziehen von Betriebsmittel
Interprozesskommunikation Formen:
- Verbindungsorientierte versus verbindungslose Kommunikation
- Speicherbasierte versus nachrichtenbasierte Kommunikation
- Synchrone versus asynchrone Kommunikation
- Kommunikationskanal: Halbduplex- versus Vollduplex-Betrieb
- Varianten der Empfängeradressierung