1 / 26

4) Task-Verwaltung

4) Task-Verwaltung. Inhalte Eigenschaften von Rechenprozessen (Tasks) Taskübergänge (process control block) Multitasking (kooperativ und präemptiv) Scheduler Erzeugen, Starten und Beenden von Tasks Taskzustände (running, suspended, runnable/ready, dormant) Tasks und Threads

zach
Download Presentation

4) Task-Verwaltung

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 4) Task-Verwaltung • Inhalte • Eigenschaften von Rechenprozessen (Tasks) • Taskübergänge (process control block) • Multitasking (kooperativ und präemptiv) • Scheduler • Erzeugen, Starten und Beenden von Tasks • Taskzustände (running, suspended, runnable/ready, dormant) • Tasks und Threads • Zeitparameter von Tasks: Periode, Antwortzeit, Ausführungszeit, Spielraum, …

  2. 4) Task-Verwaltung • Task = Rechenprozess • Ein Rechenprozess ist ein von einem Echtzeit-Betriebssystem gesteuerter Vorgang der Abarbeitung eines sequenziellen Programms. • Rechenprozess beginnt mit Eintrag in eine Liste des Echtzeit-Betriebssystems und endet mit dem Löschen aus dieser Liste. • Rechenprozess existiert nicht nur während der Ausführung der Befehle, sondern auch während geplanter oder erzwungener Wartezeiten. • Rechenprozess benötigt Betriebsmittel/Ressourcen (CPU-Zeit, Speicherplatz, Zugriff auf E/A-Geräte) und ist selbst ein Betriebsmittel, das vom Betriebssystem (BS) verwaltet wird (Erzeugung, Terminierung, Scheduling, ...). • Ein Prozessor führt in jeder Zeiteinheit maximal einen Rechenprozess aus. • Laufen mehrere Prozesse auf einem Rechner, finden Prozesswechsel statt. Das Betriebssystem entscheidet, welcher Prozess zu welchem Zeitpunkt ausgeführt wird. • Rechenprozesse sind gegeneinander abgeschottet – jeder besitzt (virtuell) seine eigenen Betriebsmittel wie etwa den Adressraum. Das BS sorgt für diese Abschottung.

  3. 4) Task-Verwaltung • Eigenschaften von Rechenprozessen • Ein Rechenprozess wird durch folgende Eigenschaften beschrieben: • Eine Folge von Maschinenbefehlen, die durch das ausgeführte Programm (program code, text section) festgelegt sind. • Der aktuelle Zustand der Bearbeitung ist durch den Programmzähler und die Registerinhalte des Prozessors beschrieben (internal state). • Der Inhalt des Stapelspeichers, auf dem temporäre Variablen und Parameter für Funktionsaufrufe verwaltet werden (stack). • Der Inhalt des Speichers, in dem die globale Daten des Prozesses gehalten werden (data section). • Beziehungen zu anderen Betriebsmitteln wie z.B. geöffnete Dateien (external state).

  4. 4) Task-Verwaltung • Prozesskontrollblock (PCB) • Ein Prozess wird im Betriebssystem durch einen Prozesskontrollblock (Prozessleitblock) repräsentiert, in dem alle Informationen zu einem laufenden Prozess verwaltet werden. • Beispiel für Informationen in einem PCB:

  5. 4) Task-Verwaltung • Multitasking bezeichnet die Fähigkeit eines Betriebssystems, mehrere Aufgaben (Tasks) nebenläufig auszuführen. Dabei werden die verschiedenen Prozesse in so kurzen Abständen immer abwechselnd aktiviert, dass der Eindruck der Gleichzeitigkeit entsteht: • Optimiert die Prozessor-Auslastung und verringert die Prozessor-Wartezeit • Prozess ist ein „Programm in Ausführung“: • Speicherabbild eines gestarteten Programms mit den vom Betriebssystem benötigten Systemdaten • alle Prozesse laufen isoliert voneinander ab, so dass die Prozesszustände vor der Unterbrechung gespeichert werden müssen • Voraussetzung: • Ein Timer-Interrupt wird in regelmäßigen Abständen an die CPU geschickt • Die zugehörige Interrupt-Service-Routine löst den Scheduler (Prozessverwalter) aus • Kooperatives Multitasking (DOS, Windows 3.1): • Scheduler überlässt Prozessen die Zuteilung von CPU Zeit • Vorteil: geringer Verwaltungsaufwand nötig; Nachteil: fehlerhafter Prozess blockiert alle anderen • Präemptives Multitasking (Windows NT): • Scheduler verwaltet Liste aller aktiven Prozesse, Reihenfolge entscheidet über Dringlichkeit, Aufbau der Listen nach verschiedenen Prinzipien • Unterbrechungen jederzeit möglich

  6. 4) Task-Verwaltung • Kooperatives Multitasking • Jeder Prozess gibt seinen Status freiwillig an nächsten Prozess weiter • Wenn Prozess 1 fertig ist, gibt er dies an Prozess 2 weiter und wechselt in den Status rechenbereit, während der Prozess 2 von rechenbereit auf rechnend wechselt • Bsp: Eine Runde von Indianern, die die Friedenspfeife raucht • Jeder Indianer in diesem Kreis stellt einen Prozess (alle rechenbereit) dar und die Friedenspfeife stellt Rechenzeit dar • • Rauchender Indianer entspricht dem Zustand rechnend, alle anderen Indianer sind rechenbereit, da sie auf die Pfeife warten • Das Kooperative an diesem System ist, dass jeder Indianer, nachdem er eine Weile geraucht hat, die Pfeife freiwillig an den nächsten Indianer weitergibt. • • Hieraus wird auch der Nachteil des Systems sichtbar: Kann oder will ein Indianer die Pfeife nicht weiterreichen, kommt das System zum erliegen • • Vorteil: leicht implementierbar

  7. 4) Task-Verwaltung • Präemptives Multitasking • Jedem Prozess wird bestimmtes Zeitfenster gegeben in dem er ausgeführt wird; am Ende der Zeit wird der Prozess unterbrochen • Teil des Betriebssystems kümmert sich um Wechseln zum nächsten Prozess und gibt dem nächsten auszuführenden Prozess die Kontrolle bis zum Ende des Zeitfensters • Bsp.: Häuptling nimmt selbst die Pfeife in die Hand und reicht sie von Indianer zu Indianer weiter, ohne sie aus der Hand zu geben • • Da sich keiner zu widersprechen getraut, ist der ordnungsgemäße Ablauf sichergestellt. • • Häuptling fungiert als Interrupt, der regelmäßig ISR (Interrupt Service Routine ‚Pfeife weiterreichen’ aufruft • Dann gibt er dem jeweiligen Indianer, der nun rauchen darf, den Status running bis er ihn wieder unterbricht. • • Nachteil des Systems: mehr Programmieraufwand • • Vorteil: stabil funktionierendes System

  8. 4) Task-Verwaltung • Scheduler • Bestandteil des Betriebssystems • sinnvolle Verteilung der CPU Zeit an aktive Prozesse • verantwortlich für die Umsetzung von Multitasking • Ziele des Schedulers (die sich jedoch im Einzelfall widersprechen können) : • Fairness: jeder Prozess soll einen gerechten Anteil an der CPU-Leistung bekommen, d.h. kein Prozess wird dauerhaft benachteiligt • Effizienz: CPU sollte dauerhaft belegt werden • Antwortzeit: Antwortzeit soll für interaktive Benutzer minimal sein • Durchsatz: Anzahl der bearbeiteten Prozesse pro Zeitintervall soll maximiert werden (= die zur Verfügung stehenden Ressourcen sollen optimal ausgelastet werden) • Verweilzeit: Verweildauer von Programmen soll möglichst gering sein • Terminerfüllung: Prozesse, die zu einem bestimmten Termin beendet sein müssen, werden so geplant, dass der Termin eingehalten wird.

  9. 4) Task-Verwaltung • Erzeugen von Prozessen • Prozesse werden erzeugt bei: • Initialisierung des Systems (einfache Systeme, z.B. Steuerung eines Mikrowellenherds) • Systemaufruf zum Erzeugen eines (Sohn-)Prozesses durch einen anderen (Vater-)Prozess • Benutzeranfrage, einen neuen Prozess zu erzeugen • Initiierung einer Stapelverarbeitung (Batch-Job) • POSIX-Systeme benutzen hierzu den fork() Systemaufruf. • Der neu erzeugte Prozess (child) ist eine exakte Kopie des erzeugenden Prozesses (parent), besitzt aber eine neue Prozessnummer • Beide Prozesse führen dieselben Instruktionen nach dem fork() aus. • Der Ergebniswert des fork() Systemaufrufs ist in beiden Prozessen unterschiedlich. • Mittels des Systemaufrufs exec() können in einem Prozess neue Programme gestartet werden. • Windows Systemaufruf: CreateProcess() • Da beliebige Prozesse neue Prozesse erzeugen können, entsteht eine Hierarchie (Baum) von Prozessen, die als verkettete Liste organisiert ist. (POSIX = Portable Operating System Interface (Standard-Schnittstelle zw. Applikation und Betriebssystem)

  10. 4) Task-Verwaltung • Beenden von Prozessen • Prozesse können sich selbst durch den exit()-Systemaufruf beenden und damit aus dem System entfernen. • Ein Prozess kann die von ihm erzeugten Prozesse beenden, falls • ein Prozess die ihm zugestandenen Betriebsmittel verbraucht hat, • ein Prozess nicht länger gebraucht wird oder falls • der erzeugende Prozess sich beendet und es nicht gewünscht oder erlaubt ist, dass die erzeugten Prozesse unabhängig weiter existieren (cascading termination). • Auf die Beendigung eines erzeugten Prozesses kann in POSIX-Systemen mit Hilfe des wait() Systemaufrufs gewartet werden. • Der Ergebniswert (return code) eines sich beendenden Prozesses wird an den erzeugenden Prozess weitergeleitet.

  11. 4) Task-Verwaltung Beispiel: einfacher Kommandointerpreter while (1) { /* repeat forever */ type_prompt(); /* display prompt on screen */ read_command(); /* read input from the terminal */ pid = fork(); /* create a new process */ if (pid < 0) { /* repeat if system call failed */ perror("fork"); continue; } if (pid != 0) { /* parent process */ waitpid(pid, &status, 0); /* wait for child */ } else { /* child process */ execve(command, params, 0); /* execute command */ } } als Vaterprozess als Sohnprozess

  12. 4) Task-Verwaltung Weitere Begriffe: Dormant = idle, new Existent = ruhend Ready = runnable, busy Bereit = ablaufwillig, rechenbereit Running = executing Laufend = ablaufend, rechnend, aktiv Suspended = blocked, waiting Die 5 Taskzustände mit den wichtigsten Übergängen: Task ist der Prozessverwaltung bekannt gegeben dormant / existent Task ist gestartet und alle Betriebsmittel vorhanden (eingeplant) Betriebsmittel vorhanden ready / bereit suspended / blockiert Task ist eliminiert Task ist verdrängt Task ist der Prozessor zugeteilt Betriebsmittel fehlen running / laufend terminated / beendet Task ist abgearbeitet

  13. 4) Task-Verwaltung Die 5 Taskzustände mit den wichtigsten Übergängen: dormant / existent admitted I/O or event completion ready / bereit suspended / blockiert Task ist eliminiert Interrupt, trap dispatch I/O or event wait running / laufend terminated / beendet exit

  14. 4) Task-Verwaltung • Zustandsübergänge (Umhängen in eine andere Liste) • Es existieren drei Arten des Prozessor-Entzugs: • Aufgabe des Prozessors durch einen Warteaufruf  Warteliste • Verdrängung durch einen anderen Prozess (Präemption)  Bereitliste • Beendigung • Vom Zustand „blockiert“ geht es nicht direkt in den Zustand „running“ • Der Übergang von „running“ nach „blockiert“ wird immer durch den Prozess selbst initiiert • Der Übergang von „running“ nach „beendet“ wird immer durch den Prozess selbst initiiert • Der Übergang von „bereit“ nach „running“ und zurück geschieht immer durch das Betriebssystem

  15. 4) Task-Verwaltung • Leichtgewichtsprozesse (Threads) • Threads sind parallele Kontrollflüsse, die nicht gegeneinander abgeschottet sind: • laufen innerhalb des Adressraums eines „echten“ Rechenprozesses • teilen sich gemeinsame Ressourcen (z.B. globale Variable) • Es gibt Threads im Betriebssystem-Kernel: Scheduling durch BS • Es gibt Threads im Usermodus des Betriebssystems: Scheduling durch Anwendung, BS nur für Prozess-Scheduling verantwortlich Thread Usermodus Prozess Kernel

  16. 4) Task-Verwaltung • Unterschiede zwischen Tasks und Threads • Aus Sicht der Betriebszustände, der Zeitparameter, des Schedulings und der Synchronisation sind Thread und Task gleich.

  17. 4) Task-Verwaltung • Vorteile von Threads • Kontextwechsel zwischen Threads effizienter als zwischen Prozessen • kein Wechsel des Adressraums • kein automatisches Scheduling • kein Retten und Restaurieren des Kontextes (nur Programmzähler und Register) • Pro Zeiteinheit sind viel mehr Threadwechsel als Prozesswechsel möglich, deshalb auch „leichtgewichtige“ Prozesse • Einfachere Programmierung (gegenüber Tasks), wenn mehrere gleichzeitige Aktivitäten, von denen einige von Zeit zu Zeit blockieren, modelliert werden müssen • Bessere Performance bei Erzeugung und Zerstörung, da keine Ressourcen mit Threads verbunden sind • Bessere Performance bei Mischung von CPU- mit I/O-intensiven Aufgaben (kein Vorteil bei reiner CPU-Nutzung • ABER: Da die Schutzfunktion der getrennten Adressräume fehlt, werden Synchronisationsmechanismen benötigt

  18. 4) Task-Verwaltung • Prozesswechsel • Zur Erinnerung: • Auf einem Rechner laufen mehrere Prozesse. • Es gibt meist nur eine CPU. • Das heißt, die Prozesse müssen sich in der Nutzung der CPU abwechseln. • Das Betriebssystem entscheidet, welcher Prozess als nächstes die CPU benutzen darf. • Komponenten des Scheduling: • Prozesswechselkosten • Warteschlangenmodelle • Scheduling-Verfahren

  19. 4) Task-Verwaltung • Prozesswechselkosten • Ein Prozesswechsel zwischen 2 Prozessen A und B schließt genau genommen drei weitere mit ein: • Prozess A  Unterbrechungsbearbeitung (UB) • UB  Betriebssystem (BS) • BS  Prozess B • Prozess B  BS • BS  Prozess A Prozess A ist verdrängt • Beim Prozesswechsel muss der Kontext des Prozesses im PCB gesichert werden, d.h. beim 1. PW: save state into PCBA und reload state from PCBB • Prozesswechsel sind relativ teuer (z.B. 122 μs auf Sun Sparc 20) Prozess A 1. KW (Kontextwechsel) 5. KW Unterbr. 2. KW BS 3. KW 4. KW Prozess B 1. Prozesswechsel (PW) 2. Prozesswechsel

  20. 4) Task-Verwaltung • Warteschlangenmodelle • Prozesse werden intern in Warteschlangen gehalten, wenn ihnen die angeforderten Betriebsmittel (z.B. die CPU) nicht zur Verfügung stehen oder die erwarteten Ereignisse (z.B. Beendigung eines Prozesses) noch nicht eingetreten sind. • Die Auswahlstrategien der Warteschlangen haben wesentlichen Einfluss auf das Systemverhalten. • Prozesse migrieren aus Sicht des Betriebssystems zwischen den verschiedenen Warteschlangen • Job queue (Prozessliste): Menge aller Prozesse im System • Ready queue (Bereitliste, CPU-Warteschlange): Menge der Prozesse, die im Hauptspeicher geladen und bereit zur Ausführung sind • Device queues (Warteschlange für jedes Gerät): Menge der Prozesse, die auf ein I/O-Gerät warten

  21. 4) Task-Verwaltung Warteschlangenmodelle Prozesse migrieren zwischen den Warteschlangen

  22. 4) Task-Verwaltung Warteschlangenmodelle Beispiel:

  23. 4) Task-Verwaltung ai: Ankunftszeit ri: Anforderungszeit si: Startzeit ci: Beendigungszeit di: Zeitschranke (Deadline) pi: Periode ei: Ausführungszeit li: Spielraum (Laxity) ji: Reaktionszeit Parameter zur Beschreibung des Zeitverhaltens von Tasks: Task-zustände pi blockiert ji li ei laufend ablaufwillig ruhend t si ai di ri ci

  24. 4) Task-Verwaltung ai: Ankunftszeit ri: Anforderungszeit si: Startzeit ci: Beendigungszeit di: Zeitschranke (Deadline) pi: Periode ei: Ausführungszeit li: Spielraum (Laxity) ji: Reaktionszeit Parameter zur Beschreibung des Zeitverhaltens von Tasks: Periode: Zeitdifferenz zwischen aufeinander folgenden Anforderungen Task-zustände pi Ausführungszeit: Rechenzeit der Task (ohne Wartezeiten) blockiert ji li ei Reaktionszeit: Zeit zwischen Anfor-derung und Start der Ausführung Spielraum: Restzeit zwischen Beendigung und Deadline laufend ablaufwillig Ankunftszeit: Task wird in Taskliste aufgenommen Anforderungszeit: Ereignis tritt ein, Task wird ablaufwillig Beendigungszeit: Task hat Aufgabe erledigt und ruht wieder Deadline: Zeit, zu der die Task spätestens beendet sein muss ruhend Startzeit: Task erhält erstmalig die CPU zugeteilt t si ai di ri ci

  25. 4) Task-Verwaltung ai Ankunftszeit (Arrival Time): Zeitpunkt, an dem eine Task dem Betriebssystem bekannt gemacht wird; die Taskverwaltung nimmt die Task in die Taskliste und setzt sie in den Zustand ruhend ri Anforderungszeit (Request Time): Die Task bewirbt sich bei der Taskverwaltung um den Prozessor. si Startzeit (Start Time): die Task erhält den Prozessor zugeteilt. ci Beendigungszeit (Completion Time): Die Task hat ihre Aufgabe erledigt und kehrt in den Zustand ruhend zurück. di Zeitschranke (Deadline): Zeitpunkt, an dem die Taskausführung spätestens beendet sein muss. Die Zeitschranke kann hart, fest oder weich sein. pi Periode (Period): Zeitdauer kennzeichnet die Wiederholungsrate bei periodischen Tasks, sie ergibt sich aus der Zeitdifferenz zwischen zwei aufeinander folgenden Anforderungszeiten einer Task. ei Ausführungszeit (Execution Time): Zeitdauer, die eine Task zur Ausführung ihrer Aufgabe benötigt, wenn sie sich im Zustand laufend befindet. Eine Variante ist die maximale Ausführungszeit (worst case execution time = WCET), eine obere Schranke der Ausführungszeit, die in keinem Fall überschritten werden darf. li Spielraum (Laxity): verbleibende Restzeit zwischen Beendigungszeit und Zeitschranke. ji Reaktionszeit (Reaction Time, Release Jitter): Zeitraum kennzeichnet die Verzögerung zwischen Anforderung und dem Start der Ausführung.

  26. 4) Task-Verwaltung Übungsfragen (Vorl. Uni Stuttgart) 􀂅 Eine Task im Zustand “runnable” wird momentan ausgeführt. 􀂅 Ein Task-Zustand kann direkt von “running” zu “dormant” wechseln. 􀂅 Eine Task im Zustand “suspended” kann direkt in den Zustand “running” wechseln. 􀂅 Eine Task im Zustand “dormant” ist nicht bereit, da Zeit- oder andere Bedingungen nicht erfüllt sind. 􀂅 Eine Task im Zustand “suspended” wartet auf das Auftreten eines Events.

More Related