Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Seite 1 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep 2012 4) Task-Verwaltung Inhalte Eigenschaften von Rechenprozessen.

Ähnliche Präsentationen


Präsentation zum Thema: "Seite 1 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep 2012 4) Task-Verwaltung Inhalte Eigenschaften von Rechenprozessen."—  Präsentation transkript:

1 Seite 1 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) 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 Seite 2 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) 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 Seite 3 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) 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 Seite 4 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) 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 Seite 5 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) 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 Seite 6 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) 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 Seite 7 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) 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 Seite 8 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) 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 Seite 9 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) 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 Seite 10 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) 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 Seite 11 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) Task-Verwaltung 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 */ } Beispiel: einfacher Kommandointerpreter als Sohnprozess als Vaterprozess

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

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

14 Seite 14 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) 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 Seite 15 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) 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 Kernel Usermodus Prozess Thread

16 Seite 16 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) Task-Verwaltung Unterschiede zwischen Tasks und Threads Aus Sicht der Betriebszustände, der Zeitparameter, des Schedulings und der Synchronisation sind Thread und Task gleich. TaskThread Besitzer von BetriebsmittelnKann außer Prozessor selbst keine Betriebsmittel besitzen, verfügt aber über alle Betriebsmittel der Task, der er angehört Eigener AdressraumAdressraum der Task, der er angehört; Threads haben einen gemeinsamen Adressraum Enthält einen oder mehrere TasksElement einer Task Kommunikation über Taskgrenzen hinaus, bevorzugt über Botschaften Kommunikation zwischen den Threads, bevorzugt über gleiche Daten Task wird charakterisiert über einen PCBThread wird charakterisiert über Programmzähler, Register, Stack und Zustand

17 Seite 17 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) 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 Seite 18 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) 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 Seite 19 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) 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 BS Unterbr. Prozess A Prozess B 1. KW (Kontextwechsel) 2. KW 3. KW4. KW 5. KW Prozess A ist verdrängt Beim Prozesswechsel muss der Kontext des Prozesses im PCB gesichert werden, d.h. beim 1. PW: save state into PCB A und reload state from PCB B Prozesswechsel sind relativ teuer (z.B. 122 μs auf Sun Sparc 20) 2. Prozesswechsel 1. Prozesswechsel (PW)

20 Seite 20 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) 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 Seite 21 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) Task-Verwaltung Warteschlangenmodelle Prozesse migrieren zwischen den Warteschlangen

22 Seite 22 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) Task-Verwaltung Warteschlangenmodelle Beispiel:

23 Seite 23 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) Task-Verwaltung t aiai ruhend ablaufwillig laufend blockiert Parameter zur Beschreibung des Zeitverhaltens von Tasks: riri sisi cici didi pipi jiji lili eiei a i : Ankunftszeit r i : Anforderungszeit s i : Startzeit c i : Beendigungszeit d i : Zeitschranke (Deadline) p i : Periode e i : Ausführungszeit l i : Spielraum (Laxity) j i : Reaktionszeit Task- zustände

24 Seite 24 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) Task-Verwaltung t aiai ruhend ablaufwillig laufend blockiert Parameter zur Beschreibung des Zeitverhaltens von Tasks: riri sisi cici didi pipi jiji lili eiei a i : Ankunftszeit r i : Anforderungszeit s i : Startzeit c i : Beendigungszeit d i : Zeitschranke (Deadline) p i : Periode e i : Ausführungszeit l i : Spielraum (Laxity) j i : Reaktionszeit Task- zustände Ankunftszeit: Task wird in Taskliste aufgenommen Anforderungszeit: Ereignis tritt ein, Task wird ablaufwillig Startzeit: Task erhält erstmalig die CPU zugeteilt Beendigungszeit: Task hat Aufgabe erledigt und ruht wieder Deadline: Zeit, zu der die Task spätestens beendet sein muss Ausführungszeit: Rechenzeit der Task (ohne Wartezeiten) Periode: Zeitdifferenz zwischen aufeinander folgenden Anforderungen Spielraum: Restzeit zwischen Beendigung und Deadline Reaktionszeit: Zeit zwischen Anfor- derung und Start der Ausführung

25 Seite 25 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) Task-Verwaltung a i 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 r i Anforderungszeit (Request Time): Die Task bewirbt sich bei der Taskverwaltung um den Prozessor. s i Startzeit (Start Time): die Task erhält den Prozessor zugeteilt. c i Beendigungszeit (Completion Time): Die Task hat ihre Aufgabe erledigt und kehrt in den Zustand ruhend zurück. d i Zeitschranke (Deadline): Zeitpunkt, an dem die Taskausführung spätestens beendet sein muss. Die Zeitschranke kann hart, fest oder weich sein. p i Periode (Period): Zeitdauer kennzeichnet die Wiederholungsrate bei periodischen Tasks, sie ergibt sich aus der Zeitdifferenz zwischen zwei aufeinander folgenden Anforderungszeiten einer Task. e i 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. l i Spielraum (Laxity): verbleibende Restzeit zwischen Beendigungszeit und Zeitschranke. j i Reaktionszeit (Reaction Time, Release Jitter): Zeitraum kennzeichnet die Verzögerung zwischen Anforderung und dem Start der Ausführung.

26 Seite 26 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) 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.


Herunterladen ppt "Seite 1 DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep 2012 4) Task-Verwaltung Inhalte Eigenschaften von Rechenprozessen."

Ähnliche Präsentationen


Google-Anzeigen