Lesson 2 Prozesse und Threads Flashcards
Was ist ein Prozess?
Ein Prozess ist eine in Ausführung befindliche Instanz eines Programms mit eigenem Adressraum.
Was ist ein Thread?
Ein Thread ist ein eigenständiger Ausführungspfad innerhalb eines Prozesses, der den gleichen Adressraum wie andere Threads desselben Prozesses teilt.
Was ist der Unterschied zwischen einem Prozess und einem Thread?
Ein Prozess hat einen eigenen Adressraum, während Threads innerhalb desselben Prozesses sich einen Adressraum teilen, aber eigene Stacks haben.
Was gehört zum Ausführungszustand eines Threads?
Der Ausführungszustand eines Threads umfasst den Programmzähler, Registerwerte und einen Stack.
Was gehört zum Ausführungszustand eines Prozesses?
Der Ausführungszustand eines Prozesses umfasst Programmsegmente, Datensegmente, den Heap, den Ausführungszustand der Threads und andere Betriebsmittel wie geöffnete Dateien.
Was ist das Programmabbild (Program Image)?
Das Programmabbild enthält das Programmsegment, das den ausführbaren Code eines Programms enthält, sowie das Datensegment und Metainformationen.
Wie wird der Dateityp eines Programms bestimmt?
In Unix-Systemen wird der Dateityp anhand der Execute-Berechtigung und der ersten Bytes (Magic Number) der Datei bestimmt.
Was macht der Loader beim Start eines Programms?
Der Loader lädt das Programmabbild in den Speicher, initialisiert Speichersegmente wie Stack und Heap und startet das Programm an der definierten Startadresse.
Was ist ein Kontextwechsel (Context Switch)?
Ein Kontextwechsel bezeichnet das Unterbrechen eines laufenden Prozesses und den Wechsel zu einem anderen Prozess durch das Betriebssystem.
Was ist Quasiparallelität?
Quasiparallelität bedeutet, dass in Multitasking-Systemen mehrere Prozesse scheinbar gleichzeitig ausgeführt werden, indem die CPU schnell zwischen den Prozessen wechselt.
Was ist ein Scheduling-Verfahren?
Ein Scheduling-Verfahren bestimmt, welcher Prozess von der CPU ausgeführt wird, z.B. das Round-Robin-Verfahren oder Prioritäten-gesteuertes Scheduling.
Was ist ein Zombie-Prozess?
Ein Zombie-Prozess ist ein Prozess, der beendet wurde, aber noch in der Prozesstabelle existiert, bis der Elternprozess dessen Beendigungsstatus abfragt. wait() oder waitpid()
Wie wird ein neuer Prozess in Linux erzeugt?
Ein neuer Prozess wird in Linux mit der Funktion fork() erzeugt, die einen Klon des Elternprozesses erstellt.
Wie wird ein neuer Thread in Linux erzeugt?
Ein neuer Thread wird mit der Funktion pthread_create() erstellt, die eine Funktion als ‘main’ des Threads ausführt.
Wie wird ein Thread beendet?
Ein Thread kann entweder mit pthread_cancel() beendet werden oder seine Funktion läuft regulär aus.