Was ist ein Algorithmus?
Eine Verarbeitungsvorschrift, die so präzise formuliert ist, dass sie auch von einer Maschine abgearbeitet werden kann.
eindeutig
ausführbar
endlich
Aus was besteht ein Programm (Prozedur, Unterprogramm)
Befehlen (Codebereich, Textbereich)
Programmdaten (Datenbereich)
Welche zwei Aspekte besitzt (klassischer) Prozess?
Einheit des Ressourcen besitzes
eigener (wirtueller) Adressraum
Einheit der Ablaufplanung / Ausführung
Ausführung folgt einem Weg (Trace) durch ein Programm
Welche 4 Bereiche gehören zu einer Instanz?
C D S I
C
Codesegment
D
Datensegment
S
Stacksegment
I
Statusinformation
Eigenschaften von Prozessen?
Jeder Prozess besitzt eigene Umgebung (Instanz)
Jeder Prozess kann andere Prozesse erzeugen oder mit ihnen Kommunizieren
Prozesse können voneinander abhängen
solche müssen sich untereinander synchonisieren
Prozesse können eigenschaften zugeordnet werden, aus welchen sich Abarbeitungsreihenfolge ergibt
Die Speicherung von Prozesszuständen erfolg in einer Prozesstabelle
Ein Eintrag in Prozesstabelle heißt Prozesskontrollblock (PCB).
Aufgaben der Ablaufsteuerung?
Programm wird geladen (und damit zum Prozess)
Speicherbereich & Ressourcen wernden zugeteilt
Prozess wird abgearbeitet, Statusinformation sofort ausgewertet
Daten werden ausgegeben und/oder gespeichert
Prozess wird beendet und aus Speicher entfernt
Aktiver Prozess?
Wird gerade auf Prozessor ausgeführt
Bereiter Prozess?
Wartet auf Ausführung von Prozessor UND ist sofort bereit zur Ausführung
Blockierter Prozess?
Alle Prozesse welche auf ein Ergebnis warten
z.B.
Eingabe oder Nachricht von anderem Prozess
Beendeter Prozess?
Alle Prozesse welche ihre Ausführung beendet haben.
Inaktiver Prozess?
Inaktiver Prozess der bei Aktivierung noch berücksichtigt werden muss
Ausgelagerter Prozess?
Prozess der sich nicht im Hauptspeicher befindet und zur bearbeitung erst noch in den Hauptspeicher geladen werden muss.
Was ist ein Thread?
Er ist ein sequenzieller Ablauf, der teil eines Prozesses ist.
In Multithreading-Betriebssystemen kann ein Prozess mehrere Thread haben, die unabhängig voneinenander Aufgaben ausführen. Die ermöglicht parallele Verarbeitung innerhalb eines einzelnen Programms.
Nenne die Trennung zwischen Prozessen und Thread’s.
Prozess
Einheit des Ressourcenbesitzes und des Schutzes
Thread
Einheit der Ausführung (Prozessorzuteilung)
“Ausführungsfade“
Innerhalb eines Prozesses sind mehrere Thread’s möglich.
Vorteile für die verwendung von Thread’s?
Bei Blockierung eines Thread’s (z.B. durch I/O) können andere weiterarbeiten
Kürzere Reaktionszeiten auf Benutzereingaben sind möglich
Bei MultiCPU Systemen
echte parallele Abarbeitung von Prozessen/Thread’s möglich
Hardwareseitiges MultiThreading (z.B. Hyperthreading) möglich
Nenne Gründe für die Kommunikation zwischen Prozessen.
Daten eines Prozesses zum anderen bringen
Sicherstellen, dass Prozesse sich nicht in den Weg kommen
Sicherstellen, dass eine Reihenfolge eingehalten wird
Nenne Möglichkeiten der Prozesskommunikation.
Kommunikation über gemeinsamen Speicherbereich.
Kommunikaiton über gemeinsame Daten.
Kommunikation über Pipes.
Kommunikation über Signale.
Kommunikation über Nachrichten.
Kommunikation über Streams.
Kommunikation über Prozedur-Fernaufrufe.
In welche Klassen lassen sich Abhängigkeiten zwischen Prozessen einteilen?
Prozesse Konkurieren um Nutzung gemeinsamer, exklusiv nutzbarer Betriebsmittel
Zwei Prozesse greifen verändernd auf gemeinsame Daten zu
Prozesse sind voneinander abhängig
Ein Prozess erzeugt daten, die von anderem Prozess weiterverarbeitet werden sollen
Warum ist Synchronisation zwischen Prozessen so wichtig?
Da sonst daten aus gemeinsammen Betriebsmitteln Inkonsisten sein können.
Was ist eine Race-Condition?
Wenn zwei Thread’s auf die gleichzeitig auf die dieselbe Ressource zugreifen, können dabei die Ergebnisse durcheinander gebracht werden.
Was ist eine Critical Section?
Ein Teil eines Code’s - bei dem nicht mehr als ein Thread gleichzeitig ausgeführt werden sollte. (Z.B. Programmabschnitt bei dem auf gemeinsam genutzte Daten zugegriffen werden soll)
Was ist ein Dead-Lock?
Wenn alle beteiligten Prozesse auf die Freigabe von mindestem einem Betriebsmittel warten, dass ein anderer Prozess bereits exclusiv belegt hat.
Nenne 4 Bedingungen für eine gute Lösung (Synchronisierung) nach Tannenbaum.
Höchstens ein Prozess darf sich in Critical Section aufhalten
Korrektheit
Es dürfen keine Annahmen über Ausführungsgeschwindigkeiten oder Anzahl der Prozesse gemacht werden
Kein Prozess der sich innerhalb der Critical Section befindet darf anderen blockieren
Kein Prozess soll unendlich lange warten müssen, bis er in Critical Section eintreten darf
Letzte Beiden Punkte dienen der Stabilität.
Sie sollten Prozessverklemmungen verhindern.
Was ist eine Semaphore?
Für jede zu schützende Datenmenge wird Variable angelegt.
Variable Signalisiert Zustand der Datenmenge.
(Belegt, unbelegt)
Nenne eine weiter möglichkeit der Steuerung eines ausschließlichen Zugriffs und erläutere wie er funktioniert.
Monitor
Speichert wer zugriff auf gemeinsamen Punkt haben möchte und gibt ihn in der gewünschten reihenfolge immer weiter frei, an den nächsten in der reihe, wenn er unbelegt ist.
Bedingungen für einen (Ressourcen-)Deadlock?
Wechselseitiger Ausschluss:
Jede Ressource kann zu einem Zeitpunkt von höchstens einem Prozess genutzt werden.
Hold-and-Wait (Besitzen und Warten):
Ein Prozess, der bereits Ressourcen besitzt, kann noch weitere Ressourcen anfordern.
Ununterbrechbarkeit (kein Ressourcenentzug):
Einem Prozess, der im Besitz einer Ressource ist, kann diese nicht gewaltsam entzogen werden.
Zyklisches Warten:
Es gibt eine zyklische Kette von Prozessen, bei der jeder Prozess auf eine Ressource wartet, die vom nächsten Prozess in der Kette belegt ist.
Bedingungen 1-3 sind notwendige Bedingungen, aber nicht hinreichend. Bedingung 4 ist eine potentielle Konsequenz aus 1-3.
Die Unauflösbarkeit des zyklischen Wartens ist eine Folge aus 1-3.
Alle vier Bedingungen zusammen sind notwendig und hinreichend für eine Verklemmung.
Konsequenz: Wenn eine der Bedingungen unerfüllbar ist, können keine Deadlocks auftreten.
Nenne Behandlungen von einem Dead Lock.
Vogel-Strauß-Algorithmus
nichts tun und hoffen, dass alles gut geht
Deadlock-Erkennung und -Behebung
lässt zunächst alle Anforderungen zu, löst ggf. Deadlock auf
Deadlock-Avoidance (Deadlock-Vermeidung)
BS lässt Ressourcenanforderung nicht zu, wenn dadurch ein Deadlock entstehen könnte
Deadlock-Prevention (Deadlock-Verhinderung)
macht eine der 4 Deadlock-Bedingungen unerfüllbar
Achtung: Unterscheidung von Verhinderung bzw. Vermeidung
Zuletzt geändertvor einem Jahr