Einleitung in die Problematik
Betriebsmittel | Aufgaben eines Betriebssystems (Operating System) |
---|---|
Namenskonvention: Aus Sicht des Betriebssystems fasst man:
unter dem Oberbegriff Betriebsmittel (Ressourcen) zusammen. |
|
Nennen Sie die Betriebsmittel die ein Betriebssystem verwaltet! | Welche 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.
Wie lautet die Prozess-Definition?Warum 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.
Nennen 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...
Was 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 |
Warum "kostet" der Wechsel zwischen Threads weniger als zwischen Prozessen?
Bei welchen Problemen ist Multithreading besonders effektiv?
Worin 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:
Nennen Sie BS, die mehrere Prozessoren verwalten können!
Nennen 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:
- blockiert: Prozess kann nicht ausgeführt werden, bis ein externes Ereignis eintritt.
- rechenbereit: Prozess ist ausführbar, aber durch den Scheduler ist der Prozessor einem anderen Prozess zugeteilt. Priorität des wartenden Prozesses steigt.
- 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!)
|
Nennen Sie Beispiele für blockierte Prozesse, auf welches Ereignis wird jeweils gewartet?
Prozess-Scheduling (Strategien)
- Fairness: Jeder Prozess erhält einen gerechten Anteil an Prozessorzeit
- Effizienz: Prozessor wird immer vollständig ausgelastet.
- Antwortzeit: Wird für interaktiv arbeitende Benutzer minimiert.
- Verweilzeit: Wartezeit für Ausgabe von Stapelaufträgen wird minimiert.
- Durchsatz: Maximierung der Zahl der Aufträge für ein best. Zeitintervall.
Schwierigkeiten:
- teilweise widersprüchlich
- jeder Prozess ist anders und der Verlauf seiner Ausführung ist nicht vorhersehbar
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?
Wie nennt man ein BS, das eine definierte Antwortzeit garantiert (Abkürzung und Begriff)?
DeadLocks
de.wikipedia.org/wiki/Philosophenproblem
Wann 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.
Warum bedeutet Prozesswechsel erheblichen Aufwand?