Prozesse und Threads Flashcards
Was ist ein Prozess?
- > Ein Prozess stellt die Ablaufumgebung für ein Programm bereit
- > Startet man ein Programm, wird es zu einem Prozess (=eine Instanz des Programms)
- > Ein modernes Betriebssystem kann viele Prozesse parallel verarbeiten
Welche Zustände können Prozesse haben?
Created, Terminated, Waiting, Running, Blocked
Was sind Threads?
- > „Leichtere” Variante von Prozessen
- > Threads sind parallele Strukturen innerhalb eines Prozesses
- > Erlauben einem Programm, mehrere Aktivitäten quasi gleichzeitig durchzuführen
- > Threads teilen sich den Adressraum des Programms, d. h. sie können sich gegenseitig beeinflussen (Prozesse nicht)
Wie hängen Threads und Prozesse zusammen?
In einem Prozessen können mehrere Threads sein.
Was ist CPU-Scheduling?
- > Wie bereits besprochen erlauben es moderne Betriebssysteme, wesentlich mehr Prozesse und Threads auszuführen, als Prozessoren zur Verfügung stehen
- > System muss vorhandene Rechenleistung auf die unterschiedlichen Prozesse/Threads aufteilen
- > Verschiedene Vergabe-Strategien stehen zur Verfügung
- > Scheduler des Betriebssystems übernimmt diese Aufgabe
Was sind die Kriterien nach denen CPU-Scheduling erfolgt?
- > Fairness: garantierte Mindestzuteilung für jeden Prozess
- > Auslastung: Effizienz durch möglichst volle Auslastung der CPU
- > Antwortzeit: soll minimiert werden
- > Wartezeit: von Prozessen soll minimiert werden
- > Durchsatz: soll optimiert werden
- > Durchlaufzeit: eines Prozesses soll minimiert werden
- > Vorhersehbarkeit: Ausführung eines Prozesses soll vorhersehbar sein
Diese Kriterien widersprechen sich teilweise, je nach Einsatzgebiet sind sie unterschiedlich wichtig!
Wie kann man Scheduling-Verfahren unterscheiden?
- > Non pre-emptive Scheduling (nicht verdrängend => ein Task der seine Aufgabe noch nicht erfüllt hat, wird nicht unterbrochen)
- > Pre-emptive Scheduling (verdrängend => erlaubt vorzeitiges Unterbrechen)
Warum ist für Echtzeit-Betriebssysteme Vorhersehbarkeit ein wichtiges Kriterium beim CPU-Scheduling?
Ein Echtzeit-Betriebssystem (=Realtime OS) garantiert die Abarbeitung eines Inputs (z. B. eines Messwertes) innerhalb einer gewissen Zeit. Die Vorhersehbarkeit der Ausführung eines Prozesses ist daher unerlässlich.
Welche Art von Scheduling unterstützen aktuelle Desktop-Betriebssysteme?
pre-emptive Scheduling