![]() |
Criado por Johannes Müller
mais de 5 anos atrás
|
|
Questão | Responda |
Was ist ein Prozess? | Ein Prozess ist ein Programm in Ausführung Programm • Datei mit ausführbarem Code • passiv, statisch, liegt auf der Festplatte / Netzwerk usw. Prozess • muss (zumindest teilweise) in den Arbeitsspeicher geladen werden • Programmcode wird gerade ausgeführt • aktiv |
Wie können Prozesse zusammenarbeiten? Und erklären Sie die Ziele davon | • Inter-Prozess-Kommunikation (IPC) • Ziele: o Informationen teilen o Performance (Arbeitsteilung) o Modularität o Einfachere Programmierung, blockieren vermeiden |
Nennen und beschreiben Sie die verschiedenen Zustände eines Prozesses | • Neu (new) o Gerade neu erzeugt • Laufend (running) o Code wird ausgeführt • Wartend (waiting) o wartet z.B. auf I/O, Tastatur usw. • Bereit (ready) o kann ausgeführt werden, wartet auf den Prozessor • Beendet (terminated) |
Erklären Sie den Vorgang Kontextwechsel zwischen 2 Prozessen | • Prozess wird unterbrochen • Hardware-Kontext wird gesichert à PCB o Programmzähler, Speicher-Mapping, CPU-Register • Statusänderung im PCB • Hardware-Kontext eines anderen Prozesses wird aus dem PCB geladen • anderer Prozess läuft |
Erklären Sie den Unterschied zwischen Task-Parallelism und Data-Parallelism | • Aufgaben-Parallelität (Task-Parallelism) o Verschiedene Teilaufgaben einer Aufgabe werden an mehreren Threads verteilt und parallel ausgeführt • Daten-Parallelität (Data-Parallelism) o Daten werden an mehreren Prozessen / Threads aufgeteilt o Gleiche Berechnungen laufen parallel |
Wie kann es zu einer Prozessunterbrechung kommen, geben sie hierzu drei Möglichkeiten an. | 1. Timeout 2. System Call oder Interrupt 3. Warten auf I/O |
Welche Bestandteile hat ein Prozess? | Jeder Prozess hat i.d.R. seinen • eigenen (virtuellen) Prozessor • Programm Counter, Register usw. • eigenen (virtuellen) Speicher • abgeschottet von anderen Prozessen • eigene Variablen und Daten • Code |
Welche Bestandteile hat ein Prozess? Teil2 | Programmcode • Text Aktueller Kontext • Programmzähler (zeigt auf nächsten Befehl) • Inhalte der Prozessorregister • Speicherbereich Stack • Lokale Variablen, Return-Adressen, Parameter Funktionsaufrufe Heap • dynamisch reservierter Speicher (z.B. malloc) Daten • Globale Variablen |
Der Kernel verwaltet die Prozesse indem er sie in einer Tabelle verwaltet, der sogenannten PCB (Prozesskontrollblock) Welches Informationen stehen dort je PRozess? | Status des Prozesses (z.B. waiting, running usw.) • Prozess-Identifier (pid), Elternprozess, Kinder • Programmzähler • CPU-Register • Mapping Speicherbereich des Prozesses --> phys. Speicher oder ausgelagert • CPU Scheduling Informationen • I/O Informationen à offene Dateien, I/O Geräte • Accounting-Informationen |
Was versteht man in Betriebssystemen unter einem Zombie und einem Waisen? | Zombie: Kindprozess ist beendet, aber Elternprozess hat nicht wait aufgerufen. wait() wird vom Eltern Prozess verwendet um Kind Prozesse ordnungsgemäß zu beenden Kindprozess Informationen sind weiterhin im PCB vorhanden Waise: Elternprozesse sind beendet, aber Kindprozesse laufen noch. Elternprozess hat sich verabschiedet(z.B. Fehler) ohne Kinder vorher einzusammeln mit wait() |
dd | |
Was macht der Prozess Scheduler und was sind seine Ziele? | Prozess-Scheduler verwaltet Ablaufplanung • Scheduler entscheidet, welcher Prozess die CPU bekommt • Verschiedene Strategien • Es gibt mehrere Scheduler Ziele: • Faire Ressourcenverteilung • CPU-Auslastung • Schnelle Reaktion des Systems auf User-Eingaben • Nebenläufigkeit, Multitasking |
Nennen sie drei Typen von Wartelisten des Scheduler? | - Job Queue--> Alle Prozesse - Ready Queue --> Prozesse die ausgeführt werden können - Device Queue • Warteliste für jedes Gerät • Prozesse, die auf das Gerät warten • Z.B. auf Daten von der Platte usw |
Welche Scheduler-Typen gibt es? | - Short-Term Scheduler (CPU-Scheduler) • einem Prozess den Prozessor zuweisen / entziehen - Medium-Term Scheduler • entscheidet, welche Speicherbereiche von Prozessen auf die Festplatte ausgelagert/eingelagert werden (swapping) - Long-Term Scheduler • verwaltet die ready queue • Ziel --> Guter Prozess-Mix • Zwischen CPU-lastigen und I/O-lastigen Prozessen |
Was macht fork() was macht exec() ? | • fork() -->Prozesskopie (inkl. Code!), „Kind“ • exec() --> Code des neuen Prozesses wird durch neues Programm ersetzt • Dadurch: Prozessbaum |
Was macht exit() und abort() | • exit() --> Prozess beendet sich selbst (ist fertig...) • abort() --> Prozess wird „gewaltsam“ beendet (OS oder Eltern) |
Anwendung = 1 Prozess? | • Nein, eine Anwendung kann mehrere Prozesse starten • Z.B. Chrome: • Prozess für User Interface, I/O • Prozess für HTML-Rendering • Prozesse für Plug-Ins Zusammenarbeit sinnvoll? --> JA |
Wie können diese Prozesse zusammenarbeiten? | • Inter-Prozess-Kommunikation! (IPC) Arten der Prozess-Kommunikation (interprocess communication) • über einen gemeinsamen Speicherbereich (shared memory) • Einrichtung durch Kernel • Verwaltung durch User-Programm (Prozesse) • Herausforderung: Synchronisierung (s. Kap. 5) • über Nachrichten • Einrichtung und Verwaltung durch Kernel |
Ziele der Kooperation von Prozessen? | • Informationen teilen • Performance (Arbeitsteilung) • Modularität • Einfachere Programmierung, blockieren vermeiden |
Quer criar seus próprios Flashcards gratuitos com GoConqr? Saiba mais.