MezData-Logo

Prozesse und Threads

Einleitung in die Problematik

Betriebsmittel Aufgaben eines Betriebssystems (Operating System)

Namenskonvention: Aus Sicht des Betriebssystems fasst man:

  • Prozessor
  • Arbeitsspeicher
  • Externspeicher
  • Ein- / Ausgabe-Geräte

unter dem Oberbegriff Betriebsmittel (Ressourcen) zusammen.

  • Prozessorverwaltung
  • Speicherverwaltung (virtueller Speicher)
  • Dateiverwaltung
  • Geräteverwaltung
  • Auftragsverwaltung
FrageNennen Sie die Betriebsmittel die ein Betriebssystem verwaltet! FrageWelche Aufgaben hat ein Betriebssystem?

Erweitert: Der Benutzer soll seine Programme von den Hardwareeigenschaften seines PC's "abstrahiert" schreiben können, d.h. es soll das Fehlverhalten eines Benutzerprogramms erkennen, dem Benutzer melden und dafür sorgen, dass die Bearbeitung anderer Programme reibungslos weitergeführt wird. -> Betriebssysteme sind komplexe Softwarepakete

Prozesse

Prozess: Mit konkreten Daten ablaufendes Programm, das vom Betriebssystem des PC als Einheit verwaltet wird.
Prozesse können sich im Ablauf gegenseitig beeinflussen, z.B. Zugriff auf gemeinsame Ressourcen.

FrageWie lautet die Prozess-Definition?FrageWarum muss das BS Prozesse verwalten?

Prozessstrukturbaum

Erzeugt ein Prozess einen oder mehrere andere Prozesse (sog. Kindprozesse) entsteht ein Prozessstrukturbaum.

Beispiele:

Der Prozess "Gärtnerei" erzeugt zwei Kindprozesse:

Baumpflanzen und Rasen mähen.

Baumpflanzen wiederum erzeugt
Beet richten, Baum eingraben, gießen.

Prozess A hat zwei Kindprozesse:

B und C

Prozess B erzeugt Kindprozesse

D,E und F.

FrageNennen Sie x Beispiele von Kindprozessen und dazugehörendem Vaterprozess auf Ihrem PC!

Multitasking (warum zwischen Prozessen wechseln)

Unter Multitasking versteht man die Möglichkeit zwischen einzelnen Prozessen zu wechseln, auch wenn die Prozesse noch nicht beendet sind.

Problem-Beispiel (Interrupt): Beim Kochen klingelt das Telefon, das Telefon steht in einem anderen Raum.
Folge: der Prozess Kochen wird unterbrochen und der Prozess Telefonieren gestartet...

Problem-Beispiel (Polling): Gleichzeitiges Kochen von Abendessen und Brennen mehrerer CD's für Schüler (auch in getrennten Räumen)...

Home-Story: Morgens Aufstehen und Duschen, Kaffewasser in Wasserkocher einfüllen und Kocher anschalten, anziehen, Kaffee überbrühen... Verzahnen von Prozessen, die Zeit brauchen...

FrageWas ist zu tun, wenn zwischen Prozessen gewechselt wird? Welche Auswirkung hat das auf die Gesamtzeit zur Fertigstellung der Prozesse?

Threads (sind auch Prozesse)

"Leichtgewichtige Prozesse", sog. Threads (dt. Programmfaden). Mit deren Hilfe können mehrere Teile eines Prozesses gleichzeitig bearbeitet werden. Kommunikation der Threads untereinander erfolgt über den Speicher des Prozesses, der allen Threads gemeinsam ist, nach bestimmten Modellen.

Prozess Thread
Prozess = mit konkreten Daten ablaufendes Programm
Instrument zum Ausführen eines Programms
Eigenständige Programmfragmente
In einem Prozess können mehrere Threads ablaufen
Zugriff auf getrennte Adressräume Zugriff auf dieselben Variablen möglich
Multitasking: mehrere Programme / Prozesse laufen (quasi-) parallel ab Multithreading: mehrere Threads laufen parallel innerhalb eines Programms ab

FrageWarum "kostet" der Wechsel zwischen Threads weniger als zwischen Prozessen?

FrageBei welchen Problemen ist Multithreading besonders effektiv?

FrageWorin besteht der Unterschied zwischen einem Prozess und einem Thread?

Scheduling (wie behandelt man Prozesse am Geschicktesten)

Tatsächliche, gleichzeitige Ausführung mit beispielsweise drei CPU's:

FrageNennen Sie BS, die mehrere Prozessoren verwalten können!

FrageNennen Sie BS, die nur einen Prozessor verwalten können!

 

Verzahnte Ausführung mit einem einzelnen Prozessor (Scheduling)

Aufteilung durch den sog. Scheduler des Betriebssystems über Scheduling Algorithmen.

Ein einzelner Prozessor kann zwischen mehreren Prozessen aufgeteilt werden. Diese Prozesse sind gekoppelt, da sie gemeinsame Betriebsmittel benutzen.

Prozesszustände (Verwaltung)

Zustände, in denen sich ein Prozess befinden kann:

  1. blockiert: Prozess kann nicht ausgeführt werden, bis ein externes Ereignis eintritt.
  2. rechenbereit: Prozess ist ausführbar, aber durch den Scheduler ist der Prozessor einem anderen Prozess zugeteilt. Priorität des wartenden Prozesses steigt.
  3. rechnend: der Prozessor ist durch den Scheduler dem Prozess zugeteilt.

Oft müssen Prozesse miteinander kommunizieren (interagieren); z.B. kann ein Prozess Ausgaben erzeugen, die ein anderer als Eingabe benutzt.

Prozesskommunikationsprobleme! (Inter-Prozess-Kommunikation notwendig!)

  1. Wartebedingung: z.B. Prozess benötigt Eingabe
  2. Wartebedingung erfüllt: z.B. Eingabe ist verfügbar
  3. Zuteilung: Scheduler teilt Prozessor zu
  4. Verdrängung: Scheduler entzieht Prozessor

FrageNennen Sie Beispiele für blockierte Prozesse, auf welches Ereignis wird jeweils gewartet?

Prozess-Scheduling (Strategien)

  1. Fairness: Jeder Prozess erhält einen gerechten Anteil an Prozessorzeit
  2. Effizienz: Prozessor wird immer vollständig ausgelastet.
  3. Antwortzeit: Wird für interaktiv arbeitende Benutzer minimiert.
  4. Verweilzeit: Wartezeit für Ausgabe von Stapelaufträgen wird minimiert.
  5. Durchsatz: Maximierung der Zahl der Aufträge für ein best. Zeitintervall.

Schwierigkeiten:

Daher Unterbrechungssignal (50 - 60 Hertz, oder beliebiger Wert) zur Betriebssystemkontrolle und weiteren Entscheidung: soll der gerade ausgeführte Prozess weiter ausgeführt werden oder nicht?

FrageWie nennt man ein BS, das eine definierte Antwortzeit garantiert (Abkürzung und Begriff)?

DeadLocks

de.wikipedia.org/wiki/Philosophenproblem

FrageWann entsteht die Situation der Verklemmung von Prozessen (DeadLock)?

Prozesse fordern nacheinander ihre einzelnen Betriebsmittel vom BS und mehrere Prozesse benötigen dieselben Betriebsmittel. Modell(-vorstellung): Straßenkreuzung.

Strategien: über Algorithmen oder Ignorieren !! (Anwender beendet!!)

Anmerkung: Prozesswechsel bedeutet erheblichen, zeitlichen Aufwand.

FrageWarum bedeutet Prozesswechsel erheblichen Aufwand?

weiter mit Scheduling-Algorithmen...