Fichas
Kap.3 : Prozesse
Fichas del conjunto (20)
- 1Was 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 - 2Wie 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 - 3Nennen 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) - 4Erklä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 - 5Erklä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 - 6Wie 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 - 7Welche 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 - 8Welche Bestandteile hat ein Prozess? Teil2Programmcode
• 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 - 9—
- 10Der 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 - 11Was 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() - 12—dd
- 13Was 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 - 14Nennen 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 - 15Welche 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 - 16Was macht fork() was macht exec() ?• fork() -->Prozesskopie (inkl. Code!), „Kind“
• exec() --> Code des neuen Prozesses wird durch neues Programm ersetzt
• Dadurch: Prozessbaum - 17Was macht exit() und abort()• exit() --> Prozess beendet sich selbst (ist fertig...)
• abort() --> Prozess wird „gewaltsam“ beendet (OS oder Eltern) - 18Anwendung = 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 - 19Wie 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 - 20Ziele der Kooperation von Prozessen?• Informationen teilen
• Performance (Arbeitsteilung)
• Modularität
• Einfachere Programmierung, blockieren vermeiden
Información
- Descripción
- Prozesse
- Creado por
- Usuario eliminado · feb 2019
- Actualizado
- 1 feb 2019
- Visitas
- 17
- Etiquetas
- Historial
-
- Creado por Johannes Müller · 31 ene 2019
- Copiado por Johannes Müller · 1 feb 2019
- Valoración