GTI


P. T.
Diese Lernkarten behandeln grundlegende Konzepte von Prozessen und Threads im Bereich der Informatik auf Berufsschulniveau. Sie decken Themen wie Synchronisation, kritische Abschnitte, Race Conditions, Scheduling-Strategien und die Unterschiede zwischen Prozessen und Threads ab. Besonders werden Mechanismen wie Semaphore, Low-Level- und High-Level-Primitive sowie deren Vor- und Nachteile erläutert. Diese Lernkarten sind ideal für Studierende und Berufsschüler, die ein tieferes Verständnis der parallelen Programmierung und Betriebssystemkonzepte erlangen möchten.
Karten
46
Lernende
0
Sprache
Deutsch
Kategorie
Informatik
Stufe
Berufslehre
Erstellt / Aktualisiert
11.01.2025 / 11.01.2025

Lernkarten

Was unterscheidet Low Level Primitiven von High Level Primitiven?
Wo ist der Zusammenhang?

Ist das eine Co-Existenz oder sind das echte Alternativen?

Die korrekte Implementierung eines Semaphors benötigt daher am besten auch eine unteilbare Hardware-Operation wie etwa TSL. Das bedeutet, dass High-Level Primitiven oft auf den Low-Level Mechanismen aufbauen.

Was ist ein Semaphore?

Das Semaphore-Konzept ist ein höherwertiger Synchronisationsmechanismus, der speziell entwickelt wurde, um das Mutual-Exclusion-Problem zu lösen. Dieses Problem tritt auf, wenn mehrere Prozesse oder Threads gleichzeitig auf gemeinsam genutzte Ressourcen zugreifen wollen, was zu Konflikten führen kann.

Welche Arten von Semaphoren gibt es (mind. 2!)?

  1. Binäre Semaphore (Mutex): Der Zähler hat nur die Werte 0 oder 1 / locked oder unlocked, wodurch immer nur ein Prozess oder Thread gleichzeitig die Ressource nutzen kann.
  2. Zählsemaphore: Der Zähler kann belibigeWerte annehmen, um mehrere gleichzeitige Zugriffe auf die Ressource zu ermöglichen, abhängig von der Anzahl der verfügbaren Einheiten der Ressource.

Wie funktioniert ein Semaphore?

(P): Beim Eintritt in den kritischen Abschnitt wird der Semaphorzähler um 1 reduziert, sofern er grösser als 0 ist. Steht der Zähler auf 0, wird der Eintritt verwehrt und der Prozess/Thread in eine Warteschlange eingereiht.

 

(V): Beim Verlassen des kritischen Abschnitts wird der Semaphorzähler wieder um 1 erhöht, sodass ein weiterer Prozess/Thread den kritischen Abschnitt betreten kann.

Wann, wo und wie wird er eingesetzt?

Ein Semaphore wird eingesetzt, wann: mehrere Prozesse oder Threads auf gemeinsame Ressourcen zugreifen müssen, wo: in Multithreading- oder parallelen Umgebungen, und wie: durch einen Zähler, der steuert, wie viele Prozesse gleichzeitig Zugriff auf die Ressource haben.

Warum können nicht alle "Probleme" mit Semaphoren gelöst werden?

Warum also braucht es bspw. eine Primitive wie "Message Passing"?

Semaphoren allein können Deadlocks nicht verhindern.