Informatik-II: Prozesse und Threads
18 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Was kennzeichnet ein Prozess in einem Betriebssystem?

  • Sekundärspeicher und Variablen
  • Eingabe-/Ausgabe-Operationen und CPU-Auslastung
  • CPU-Register und Programmcode
  • Speicher und geöffnete Dateien (correct)

Wie wird in vielen Betriebssystemen die Ausführungseinheit eines Prozesses realisiert?

Threads

Prozesse und Threads können unabhängig voneinander auf einem Rechner parallel ausgeführt werden.

False (B)

In einem Prozess-Zustandsmodell können sich Prozesse unter anderem in den Zuständen new, ready, ____, blocked und exit befinden.

<p>running</p> Signup and view all the answers

Was passiert, wenn ein Prozess blockiert ist und das Ereignis eintritt, auf das er wartet?

<p>Der Prozess geht in den Zustand 'Suspend/Blocked' (C)</p> Signup and view all the answers

Was beinhaltet das Process Image (Prozess-Abbild)?

<p>Das Process Image enthält alle Informationen, die zur Ausführung eines Prozesses durch das Betriebssystem erforderlich sind.</p> Signup and view all the answers

Threads ermöglichen die Entwicklung von nebenläufigen Anwendungen, die aus mehreren Ausführungsfäden bestehen.

<p>True (A)</p> Signup and view all the answers

Welchen Zustand erreicht ein Prozess, der momentan ausgelagert ist und ausführbereit ist, wenn das Ereignis eintritt? Der Prozess befindet sich im Zustand Suspend/_____.

<p>Ready</p> Signup and view all the answers

Welche Funktion wird verwendet, um einen Thread zu beenden?

<p>pthread_exit(...) (D)</p> Signup and view all the answers

Was bewirkt die Funktion pthread_join(...)?

<p>Warten, bis der angegebene Thread beendet ist</p> Signup and view all the answers

Was ist eine wichtige Funktion der POSIX Thread Library zur Ermittlung der eigenen Thread-ID durch einen Thread?

<p>pthread_self(...) (D)</p> Signup and view all the answers

Die Multithreading ist eine konzeptionelle Erweiterung der Multiprogrammierung.

<p>True (A)</p> Signup and view all the answers

Was sind wesentliche Unterschiede zwischen Multithreading und __________?

<p>Multiprogrammierung</p> Signup and view all the answers

Was ist der Zweck des Thread Control Blocks (TCB) in einem Multi-Thread-Prozessmodell?

<p>Speichern der Thread-spezifischen Informationen (A)</p> Signup and view all the answers

Was sind einige Beispiele für Programme, die aus mehreren Threads bestehen können?

<p>E-Mail Programm, Textverarbeitungsprogramm, Web-Server</p> Signup and view all the answers

Die Threads in einem Prozess arbeiten unabhängig voneinander und sind in einem Konkurrenzverhältnis zueinander.

<p>False (B)</p> Signup and view all the answers

Warum ist die Implementierung von parallelen Abläufen mit Threads effizienter als mit Prozessen? Die Kommunikation zwischen Threads erfolgt ohne Beteiligung des _____________.

<p>Kernels</p> Signup and view all the answers

Ordne die folgenden Szenarien mit ihren entsprechenden Vorteilen für Multithreading:

<p>Parallelisierung von Berechnungen auf mehreren CPUs = Effizienz durch verbesserte Rechenleistung Quasi-parallele Ausführung von blockierenden Abläufen = Kontinuierliche Anwendungsfunktionalität Kommunikation mit mehreren Peripheriegeräten gleichzeitig = Weiterführende Verarbeitung während Kommunikation</p> Signup and view all the answers

Flashcards

What is a process?

A process is a program in execution. This means it's currently running and using system resources.

What resources does a process own?

A process is characterized by its specific set of resources such as allocated memory, open files, and connected devices.

How does a process track its progress?

A process keeps track of its progress by storing the current value of the Program Counter and CPU registers.

How does a process remember its current state?

A process keeps a record of its current state, including the values of its variables.

Signup and view all the flashcards

Explain multiprogramming.

Multiprogramming refers to the execution of multiple programs (processes) on a single computer. These programs share the CPU, switching between them rapidly.

Signup and view all the flashcards

What is multitasking?

Multitasking is a type of multiprogramming where multiple programs run concurrently on a single processor, sharing CPU time.

Signup and view all the flashcards

How does multi-core processing affect parallelism?

On a machine with multiple processors (multi-core), true parallelism can be achieved, meaning multiple processes run simultaneously.

Signup and view all the flashcards

What is quasi-parallelism?

When multiple processes share a single CPU, it's called quasi-parallelism because they run in a seemingly parallel manner.

Signup and view all the flashcards

What is a process control block (PCB)?

A process control block (PCB) is a data structure used by the operating system to manage and keep track of a process.

Signup and view all the flashcards

What information does a PCB hold?

A PCB contains vital information about a process, such as its process ID, status, and control parameters.

Signup and view all the flashcards

What is a process image?

The process image is a complete snapshot of a process, including all its data, code, and memory information needed to run it.

Signup and view all the flashcards

What are the parts of a process image?

A process image consists of the code segment, containing instructions and static data; the user stack and heap, storing local variables and dynamic data; and the kernel stack, holding parameters for system calls.

Signup and view all the flashcards

How are new processes created?

A process can be created when the system is initialized, by another process using a system call, or by a user request.

Signup and view all the flashcards

What are the reasons for a process termination?

A process can be terminated when it finishes its task, encounters an error, crashes due to a severe fault, or is terminated by another process.

Signup and view all the flashcards

What are the possible process states?

The process state indicates the current status of a process. Possible states include: new, ready, running, blocked, and exit.

Signup and view all the flashcards

What is a thread?

Threads are lightweight units of execution within a process, sharing the same resources like memory and files.

Signup and view all the flashcards

Explain multithreading.

Multithreading enables a single process to have several threads running concurrently, each executing its own code.

Signup and view all the flashcards

Study Notes

Prozesse und Threads

  • Ein Prozess ist ein Programm, das im Stadium der Ausführung ist.
    • Ein Prozess ist gekennzeichnet durch:
      • Systemressourcen (z.B. Speicher, geöffnete Dateien, Geräte)
      • Aktueller Wert des Programmzählers und CPU-Register
      • Aktuelle Werte der Variablen
    • Prozesse können auch als Tasks bezeichnet werden.

Multiprogramming/Multitasking

  • Ausführung mehrerer Programme (Prozesse) auf einem Rechner, wobei sich mehrere Prozesse eine CPU teilen.
  • Auf Mehrprozessormaschinen („Multi-Core“) können mehrere Prozesse echt parallel ausgeführt werden.
  • Wenn sich mehrere Prozesse eine CPU teilen müssen, spricht man von Quasi-Parallelität.
  • Die Auslastung des Rechners wird erhöht, wenn Prozesse einen Großteil der Zeit mit Warten, insbesondere auf E/A-Operationen, verbringen.

Mechanismen und Strukturen für die Prozessverwaltung

  • Ein Betriebssystem muss Mechanismen bereitstellen, um:
    • Prozesse zu starten und zu beenden
    • zu entscheiden, welcher Prozess wann (und auf welchem Prozessor/CPU) ausgeführt wird
    • mehrere Prozesse simultan im Hauptspeicher zu halten
    • bei konkurrierenden Zugriffen auf gemeinsame Speicherbereiche Konflikte zu vermeiden
  • Ein Betriebssystem muss Strukturen implementieren, um die aktiven Prozesse zu verwalten:
    • Queues (Warteschlangen)
    • Prozess-Image und Prozess Control Block (PCB)

Prozess-Erzeugung

  • Ein Prozess kann durch folgende Ereignisse erzeugt werden:
    • Initialisierung des Systems
    • Systemaufruf zur Erzeugung eines Prozesses durch einen anderen Prozess
    • Benutzeranfrage
  • Ein Prozess wird in der Regel durch einen anderen, bereits vorhandenen, Prozess erzeugt:
    • Eltern-Prozess (Parent Process): erzeugender Prozess
    • Kind-Prozess (Child Process): erzeugter Prozess

Prozess-Terminierung

  • Die 4 häufigsten Ursachen für die Beendigung eines Prozesses:
    • Normales Beenden (freiwillig): Der Prozess hat seine Arbeit verrichtet und ist nun fertig.
    • Beenden aufgrund eines Fehlers (freiwillig): Der Prozess erkennt einen Fehler und stellt eine Anfrage an das Betriebssystem zur Beendigung.
    • Beenden aufgrund eines schwerwiegenden Fehlers (unfreiwillig): Der Prozess verursacht einen schweren Fehler, so dass das Betriebssystem den Prozess beendet.
    • Beenden durch einen anderen Prozess (unfreiwillig): Ein Prozess kann mittels entsprechender Systemaufrufe andere Prozesse terminieren.

Prozess-Zustandsmodell

  • Das Prozess-Zustandsmodell beschreibt die möglichen Zustände, in denen sich ein Prozess befinden kann:
    • new: Der Prozess wurde vom Betriebssystem erzeugt.
    • ready: Der Prozess ist zur Ausführung bereit.
    • running: Der Prozess wird momentan ausgeführt.
    • blocked: Der Prozess wartet auf ein Ereignis.
    • exit: Die Beendigung des Prozesses wurde initiiert.
  • Das Prozess-Zustandsmodell beschreibt auch die möglichen Zustandsübergänge zwischen den Zuständen.

Prozess-Strukturen: Prozess-Abbild (Process Image)

  • Ein Prozess-Abbild (Process Image) enthält alle Informationen, die zur Ausführung eines Prozesses durch das Betriebssystem erforderlich sind:
    • Speicherinhalt des Prozesses
    • Prozessattribute: Welche Attribute charakterisieren einen Prozess und Wo ist der Prozess lokalisiert?
  • Ein Prozess-Abbild besteht aus:
    • Code-Bereich: Programmcode und statische Daten des Prozesses
    • User-Stack und Heap: lokale Variablen und dynamisch erzeugte Daten
    • System Stack (auch Kernel Stack): Parameter für Systemaufrufe

Prozesskontrollblock (PCB)

  • Ein Prozesskontrollblock (PCB) ist eine Datenstruktur, die von einem Betriebssystem verwendet wird, um einen Prozess zu verwalten.
  • Ein PCB enthält Informationen über:
    • Prozessidentifikation
    • Prozess-Statusinformationen
    • Prozess-Kontrollinformationen
  • Ein PCB wird von einem Betriebssystem verwendet, um Prozesse zu verwalten und kontrollieren zu können.

Prozesskontrolle: Prozess-Unterbrechungen

  • Prozess-Unterbrechungen:
    • Eine Unterbrechung des laufenden Prozesses wird durch bestimmte Ereignisse oder Aktionen ausgelöst.
    • Die Übertragung der Kontrolle an das Betriebssystem wird durch eine Unterbrechungsroutine eingeleitet.
    • Es gibt 3 unterschiedliche Ursachen für den Aufruf von Unterbrechungsroutinen:
      • Interrupts (Externe Ereignisse)
      • Traps (auch SW-Interrupts, Exceptions)
      • Systemaufruf (Supervisor-Call)### Prozesskontrolle
  • Ein Systemaufruf (in Form eines SW-Interrupts oder "Trap") kann zu einer Prozess-Unterbrechung führen, die häufig blockierend ist.
  • Beispiele für Interrupts:
    • Periodischer Takt (Timer): Überprüfung, ob der aktuell ausgeführte Prozess sein Zeitkontingent verbraucht hat.
    • E/A-Ereignis nach erfolgreicher Eingabe-/Ausgabe: Der Prozess, der auf die Beendigung der E/A-Aktion gewartet hat, wird in die "ready"-Queue verschoben.
    • Speicherfehler (z.B. bei virtuellem Speicher mit Paging): Die referenzierte (virtuelle) Adresse befindet sich nicht im physischen Hauptspeicher (Page Fault).

Thread-Konzept

  • Das Thread-Konzept ist ein Konzept, das in modernen Betriebssystemen zur Ausführung von Prozessen eingesetzt wird.
  • Moderne Betriebssysteme unterstützen ein Ausführungskonzept, bei dem die Ausführung von Anwendungen (Prozessen) in Form von Threads stattfindet.
  • Vorteile des Thread-Konzepts:
    • Nebenläufige/parallele Anwendungen können entwickelt werden, die aus mehreren nebenläufigen Threads (Abarbeitungs- bzw. Ausführungsfäden) bestehen, die die Ressourcen der zugehörigen Anwendung (Prozess) gemeinsam nutzen.
    • Die Kommunikation zwischen diesen Ausführungsfäden (Threads) ist erleichtert, da alle Threads eines Prozesses auf den gemeinsamen Prozess-Adressraum zugreifen können.

Zusammenhang: Prozess – Thread

  • Ein Prozess besitzt Ressourcen (virtueller Adressraum, Process Image, etc.) und ist eine Ausführungseinheit (mit Ausführungszuständen und Priorität).
  • Ein Thread ist eine Ausführungseinheit (Faden) innerhalb eines Prozesses, der den Code der jeweiligen Threads ausführt.
  • Gemeinsamer Adressraum bei Multithreading: Alle Threads eines Prozesses nutzen den gleichen Adressraum und können auf die gleichen Daten und Ressourcen zugreifen.

Singlethreading vs. Multithreading

  • Singlethreading: Ein Prozess besitzt genau einen Thread.
  • Multithreading: Ein Prozess kann mehrere Threads haben, die jeweils den Code der jeweiligen Threads ausführen.
  • Vorteile von Multithreading:
    • Die Generierung eines neuen Threads in einem existierenden Prozess ist in einigen Betriebssystemen schneller als die Generierung eines neuen Prozesses.
    • Der Wechsel zwischen den Threads eines Prozesses geht i.d.R. schneller als ein Prozesswechsel.
    • Die Kommunikation zwischen den Threads eines Prozesses verläuft häufig ohne Beteiligung des Kernels.

Multithreading – Vorteile

  • Vorteile des Multithreading-Programmiermodells:
    • Parallele Ausführung von Anwendungen auf mehreren CPUs
    • Quasi-parallele Ausführung mehrerer, z.T. blockierender, Abläufe innerhalb einer Anwendung
    • Die Anwendung kann im Hintergrund gleichzeitig mit mehreren unterschiedlichen Peripheriegeräten kommunizieren

Multithreading – Herausforderungen

  • Herausforderungen bei Multithreading:
    • Datenkonsistenz: Mehrere Threads können auf dieselben Daten zugreifen, daher müssen Race Conditions vermieden werden.
    • Zugriff auf beschränkte Betriebsmittel: Der Zugriff auf Geräte, Dateien etc. muss zeitlich koordiniert werden, um Zugriffkonflikte zu vermeiden.
    • Zusammenarbeit der Threads: Die Threads müssen koordiniert werden, um einen geordneten Ablauf der nebenläufigen Ausführungspfade zu gewährleisten.

Multithreading – Thread-Synchronisation

  • Notwendigkeit der Thread-Synchronisation:
    • Alle Threads eines Prozesses teilen sich den Adressraum und die Ressourcen des zugehörigen Prozesses.
    • Die Threads müssen synchronisiert werden, um sich gegenseitig nicht zu stören oder gemeinsame Datenstrukturen zu beschädigen.
  • Die Verfahren zur Synchronisation von Threads sind mit den Verfahren, die für Prozesse zum Einsatz kommen, weitestgehend identisch.

Fallbeispiel: Thread-Konzept im Linux-Betriebssystem

  • Die POSIX Thread-Library für C/C++ erlaubt die Implementierung von multithreaded Anwendungen für unterschiedliche Betriebssysteme, die Multithreading und die POSIX-Schnittstelle unterstützen.
  • Funktionen der POSIX Thread-Library:
    • pthread_create: Erzeugt einen neuen Thread.
    • pthread_exit: Beendet einen Thread.
    • pthread_cancel: Beendet einen Thread durch einen anderen Thread.
    • pthread_join: Wartet, bis der angegebene Thread beendet ist.
    • pthread_self: Ermittelt die eigene Thread-ID durch einen Thread.
    • pthread_equal: Ermittelt, ob zwei Thread-IDs identisch sind.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

Description

Erfahren Sie, wie Betriebssysteme Programme ausführen und lernen Sie, die Begriffe Prozess und Thread zu unterscheiden.

More Like This

Use Quizgecko on...
Browser
Browser