Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

4) Task-Verwaltung Inhalte Eigenschaften von Rechenprozessen (Tasks)

Ähnliche Präsentationen


Präsentation zum Thema: "4) Task-Verwaltung Inhalte Eigenschaften von Rechenprozessen (Tasks)"—  Präsentation transkript:

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 Die 5 Taskzustände mit den wichtigsten Übergängen:
Weitere Begriffe: Dormant = idle, new Existent = ruhend Ready = runnable, busy Bereit = ablaufwillig, rechenbereit Running = executing Laufend = ablaufend, rechnend, aktiv Suspended = blocked, waiting 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 der Prozessor zugeteilt Task ist verdrängt 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 dispatch Interrupt, trap 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. Task Thread Besitzer von Betriebsmitteln Kann außer Prozessor selbst keine Betriebsmittel besitzen, verfügt aber über alle Betriebsmittel der Task, der er angehört Eigener Adressraum Adressraum der Task, der er angehört; Threads haben einen gemeinsamen Adressraum Enthält einen oder mehrere Tasks Element einer Task Kommunikation über Taskgrenzen hinaus, bevorzugt über Botschaften Kommunikation zwischen den Threads, bevorzugt über gleiche Daten Task wird charakterisiert über einen PCB Thread wird charakterisiert über Programmzähler, Register, Stack und Zustand

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) Unterbr. 5. KW 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 Parameter zur Beschreibung des Zeitverhaltens von Tasks: ai: Ankunftszeit ri: Anforderungszeit si: Startzeit ci: Beendigungszeit di: Zeitschranke (Deadline) pi: Periode ei: Ausführungszeit li: Spielraum (Laxity) ji: Reaktionszeit Task-zustände pi blockiert ji ei li laufend ablaufwillig ruhend t ai ri si ci di

24 4) Task-Verwaltung Parameter zur Beschreibung des Zeitverhaltens von Tasks: ai: Ankunftszeit ri: Anforderungszeit si: Startzeit ci: Beendigungszeit di: Zeitschranke (Deadline) pi: Periode ei: Ausführungszeit li: Spielraum (Laxity) ji: Reaktionszeit Periode: Zeitdifferenz zwischen aufeinander folgenden Anforderungen Task-zustände pi Ausführungszeit: Rechenzeit der Task (ohne Wartezeiten) blockiert ji ei li 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 ai ri si ci di

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.


Herunterladen ppt "4) Task-Verwaltung Inhalte Eigenschaften von Rechenprozessen (Tasks)"

Ähnliche Präsentationen


Google-Anzeigen