4.3 Aufbau von Echtzeitbetriebssystemen

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "4.3 Aufbau von Echtzeitbetriebssystemen"

Transkript

1 4.3 Aufbau von Echtzeitbetriebssystemen Aufgaben eines Standardbetriebssystems: Taskverwaltung: Steuerung und Organisation der durchzuführenden Verarbeitungsprogramme (Tasks) Zuteilung des Prozessors an Tasks. Betriebsmittelverwaltung: Zuteilung von Betriebsmittel an Tasks: Speicherverwaltung: Zuteilung von Speicher IO-Verwaltung: Zuteilung von IO-Geräten Interprozesskommunikation: Die Kommunikation zwischen den Tasks Synchronisation: Zeitliche Koordination der Tasks Schutzmaßnahmen: Der Schutz der Betriebsmittel vor unberechtigten Zugriffen Zusätzliche Aufgaben eines Echtzeitbetriebssystems: Wahrung der Rechtzeitigkeit und Gleichzeitigkeit Wahrung der Verfügbarkeit 1

2 4.3 Aufbau von Echtzeitbetriebssystemen Ein Schichtenmodell für informationsverarbeitende Systeme Anwendung Schicht n Schicht n-1... Schicht 2 Schicht 1 Realer Prozessor M n M n-1 M 2 M 1 M 0 Abstrakte Maschinen Funktionalität von M n setzt auf Funktionalität (Dienste) von M n-1 auf Funktionalität des Realen Prozessors 2

3 4.3 Aufbau von Echtzeitbetriebssystemen Schichtenmodell eines Makrokernbetriebssystems Anwendung API Kommando- Interpreter M 6 API (Application Program Interface) Taskverwaltung M 5 Zuteilung des Prozessors an die Tasks Betriebsmittelverwaltung Speicherverwaltung Ein-/Ausgabeverwaltung Ein-/Ausgabesteuerung M 4 M 3 M 2 Betriebssystemkern Zuteilung von Ressourcen an die Tasks Logische E/A Steuerung Gerätetreiber M 1 Realer Prozessor M 0 Betriebssystemkern im Kernelmode, Usermode für Anwendung 3

4 4.3 Aufbau von Echtzeitbetriebssystemen API Betriebsmittelverwaltung Anwendung Gerätetreiber Ein-/Ausgabeverwaltung Kommando- Interpreter Taskverwaltung Speicherverwaltung Ein-/Ausgabesteuerung Mikrokern Realer Prozessor M 7 M 6 M 5 M 4 M 3 M 2 M 1 M 0 Erweiterungsmodule im Usermode die Interprozesskommunikation die Synchronisation Schichtenmodell eines Mikrokernbetriebssystems Vorteile Mikrokern: sehr gut anpassbar an Aufgabe Hohe Skalierbarkeit durch Erweiterungsmodule Einfache Portierbarkeit Preemptiver Kern Kurze kritische Bereiche die elementaren Funktionen zur Taskverwaltung, dies sind i.a. - das Einrichten einer Task, - das Beenden einer Task, - das Aktivieren einer Task, und - das Blockieren einer Task 4

5 4.3 Aufbau von Echtzeitbetriebssystemen Anwendung Öffne Datei API Usermode- und Kernelmode-Wechsel bei Makro- und Mikrokernbetriebssystem Usermode Kernelmode Betriebsmittelverwaltung Ein-/Ausgabeverwaltung Ein-/Ausgabesteuerung Gerätetreiber Festplatte a: Makrokernbetriebsystem Anwendung Öffne Datei Festplatte API Betriebsmittelverwaltung Ein-/Ausgabeverwaltung Ein-/Ausgabesteuerung Gerätetreiber Usermode Kernelmode Mikrokern b: Mikrokernbetriebsystem 5

6 4.3 Aufbau von Echtzeitbetriebssystemen Taskverwaltung: Tasks und Threads Anwendung Task 1 Task n Thread 1 Thread i Thread 1 Thread j Aus Sicht der Betriebszustände, der Zeitparameter, des Schedulings und der Synchronisation sind Thread und Task gleich. 6

7 4.3 Aufbau von Echtzeitbetriebssystemen Task (schwergewichtiger Prozess) eigene Variablen und Betriebsmittel von den anderen Tasks abgeschirmt Eigener Adressraum Kommunikation nur über Interprozesskommunikation Task-Umschaltung bis zu mehrere 1000 Prozessortakte Thread (leichtgewichtiger Prozess) innerhalb einer Task. Benutzt Variablen und Betriebsmittel der Task Gemeinsamer Adressraum aller Threads innerhalb einer Task Kommunikation über beliebige globale Variable. Sehr schnelle Kommunikation und Thread-Umschaltung (wenige Takte). Wenig Schutz zwischen Threads. 7

8 4.3 Aufbau von Echtzeitbetriebssystemen Taskzustände/Threadzustände Ruhend (dormant) Die Task ist im System vorhanden, aber momentan nicht ablaufbereit, da Zeitbedingungen oder andere Voraussetzungen (noch) nicht erfüllt sind. Einrichten der Task Entfernen ruhend ablaufwillig blockiert laufend Ablaufwillig (runnable) Die Task ist bereit, alle Zeitbedingungen oder andere Voraussetzungen zum Ablauf sind erfüllt, die Betriebsmittel sind zugeteilt, lediglich die Zuteilung des Prozessors durch die Taskverwaltung steht noch aus. Laufend (running) Die Task wird auf dem Prozessor ausgeführt. Bei einem Einprozessorsystem kann nur eine Task in diesem Zustand sein, bei einem Mehrprozessorsystem kann dieser Zustand von mehreren Tasks gleich-zeitig angenommen werden. Blockiert (suspended, blocked) Die Task wartet auf das Eintreffen eines Ereignisses (z.b. einen Eingabewert, eine Interprozesskommunikation) oder das Freiwerden eines Betriebsmittels (Synchronisation). 8

9 4.3 Aufbau von Echtzeitbetriebssystemen Beispiel: zeitlicher Ablauf der FTS-Steuerung Transponderdatenverarbeitung (2. Prior.) Motorsteuerung Laserscannerdatenverarbeitung (1. Prior.) > 2T < 2T Kameradatenverarbeitung Ruhe T > T T 2T 3T 4T 5T 6T 7T 8T Periodendauer Kameradatenverarbeitung: T Periodendauer Motorsteuerung: 2T Kollisionswarnung Kollisionswarnung Landmarke 9

10 4.3 Aufbau von Echtzeitbetriebssystemen Zustände der Task Kameradatenverarbeitung blockiert laufend ablaufwillig ruhend T 2T 3T 4T 5T 6T 7T 8T Kollisionswarnung Kollisionswarnung Landmarke 10

11 4.3 Aufbau von Echtzeitbetriebssystemen Wesentliche Zeitparameter einer Echtzeittask a i : Ankunftszeit (Arrival Time) r i : Anforderungszeit (Request Time) blockiert laufend j i e i Task i l i s i : Startzeit (Start Time) j i : Reaktionszeit (Reaction Time, Release Jitter) e i : Ausführungszeit (Execution Time) ablaufwillig er i : Restausführungszeit (Remaining Execution Time) er i ruhend c i : Beendigungszeit (Completion Time) a i r i s i t c i d i d i : Zeitschranke (Deadline) p i : Periode (Period) p i t: aktueller Zeitpunkt l i : Spielraum (Laxity, l i = d i (t + er i ) ) 11

12 4.4 Echtzeitscheduling Aufgabe eines Echtzeitschedulers Aufteilung des Prozessors zwischen allen ablaufwilligen Tasks derart, dass sofern möglich alle Zeitbedingungen eingehalten werden. Fragen zur Beurteilung eines Echtzeitschedulingverfahrens Existiert für ein gegebenes Taskset überhaupt ein Schedule, das alle Zeitbedingungen einhält? Findet das verwendete Schedulingverfahren diesen Schedule? Kann dieser Schedule in endlicher Zeit berechnet werden? Ein Schedulingverfahren heißt optimal, wenn es einen Schedule findet, sofern dieser existiert 12

13 4.4 Echtzeitscheduling Analyse des Echtzeitverhaltens (Scheduling Analysis, Feasibility Analysis) Prozessorauslastung (Processor Demand). Benötigte H = Verfügbare Prozessorzeit Prozessorzeit Prozessorauslastung auf einem Einprozessorsystem für ein Taskset aus n periodischen Tasks mit Zeitschranke = Periode: H = n i = 1 ei pi mit e i : Ausführungszeit, p i : Periodendauer von Task i H > 100%: kein Schedule H 100%: Schedule existiert (wird jedoch je nach verwendetem Echtzeitschedulingverfahren nicht unbedingt gefunden) 13

14 4.4 Echtzeitscheduling Klassifizierungsmerkmale von Scheduling-Verfahren Scheduling-Verfahren Statisches Scheduling Dynamisches Scheduling Nicht-preemptives Scheduling Preemptives Scheduling Nicht-preemptives Scheduling Preemptives Scheduling Statische Prioritäten Nicht prioritätsbasiert Dynamische Prioritäten Statische Prioritäten Nicht prioritätsbasiert Dynamische Prioritäten 14

15 4.4 Echtzeitscheduling Preemptives und nicht-preemptives Scheduling Task 1 fertig Task 1 fertig Task 1 (wichtig) Task 2 (weniger wichtig) Preemption Ruhe Ereignis für Task 2 Ereignis für Task 1 Ereignis für Task 2 Ereignis für Task 1 a) Preemptives Scheduling b) Nicht-preemptives Scheduling 15

16 4.4.1 FIFO-Scheduling 4.4 Echtzeitscheduling First In First Out Prinzip: wer zuerst kommt, erhält zuerst den Prozessor Dynamisch, nichtpreemptiv, ohne Prioritäten Wenig geeignet für Echtzeit, da keinerlei Zeitbedingungen eingehen Beispiel.: Task 1: Periode p 1 = 150 msec Task 2: Periode p 2 = 10 msec Ausführungszeit e 1 = 15 msec Ausführungszeit e 2 = 1 msec H = 15 msec / 150 msec + 1 msec / 10 msec = 0,2 = 20% Task 1 Task 2 Zeitschranke für erste Ausführung von Task 2 verpasst Erste Ausführung Task 2 fertig Ruhe msec Ereignis für Task 1 Ereignis für Task 2 Ereignis für Task 2 16

17 4.4 Echtzeitscheduling Fixed-Priority-Scheduling Jede Task erhält eine feste Priorität Dynamisches Scheduling, statische Prioritäten 2 Varianten: Fixed-Priority-Preemptive-Scheduling (FPP) Fixed Priority-Non-Preemptive Scheduling (FPN) Zuordnung der Prioritäten zu den Tasks ist entscheidend für das Echtzeitverhalten 17

18 4.4 Echtzeitscheduling Rate-Monotonic-Scheduling (RMS) Gibt eine Regel der Prioritätenzuordnung für periodische Tasks an: Es werden den periodisch auszuführenden Tasks Prioritäten umgekehrt proportional zu ihren Periodendauern zugewiesen: PR i ~ 1 / p i mit p i : Periodendauer der Task i, PR i : Priorität der Task i es wird preemptives Scheduling verwendet, die Periodendauer p i ist konstant, die Zeitschranke d i ist gleich der Periodendauer p, i die Ausführungszeit e i ist konstant und bekannt, und die Tasks sind voneinander unabhängig, d.h. sie blockieren sich nicht gegenseitig z.b. durch Synchronisation Als Deadlines werden die Periodendauer angenommen 18

19 Task Echtzeitscheduling Beispiel: RMS bei nicht gleichzeitigem Auftreten der Ereignisse Fixed-Priority-Preemptive-Scheduling und Prioritätenverteilung gemäß dem Rate-Monotonic-Prinzip Task 1: Periode p 1 = 150 msec => niedere Priorität Ausführungszeit e 1 = 15 msec Task 2: Periode p 2 = 10 msec => hohe Priorität Ausführungszeit e 2 = 1 msec Deadlines sind die Periodendauern, H = 20% Task 2 Preemption Preemption Ruhe msec Ereignis für Task 1 Ereignis für Task 2 Ereignis für Task 2 19

20 4.4 Echtzeitscheduling Beispiel: RMS bei gleichzeitigem Auftreten der Ereignisse Task 1: Task 2: p 1 = 150 msec, e 1 = 15 msec => niedere Priorität p 2 = 10 msec, e 2 = 1 msec => hohe Priorität Task 1 Task 2 Ruhe Ereignis für Task 1 und msec Ereignis für Task 2 Ereignis für Task 2 Zuteilung der Prioritäten gemäß dem Rate-Monotonic-Prinzip sind essentiell. Würde man keine Preemption zulassen oder die Prioritäten anders herum verteilen, so würde im obigen Beispiel Task 2 ihre Zeitschranken verletzen. 20

21 4.4 Echtzeitscheduling RMS = Optimale Prioritätenverteilung? Behauptung: Rate-Monotonic-Scheduling liefert bei festen Prioritäten und Preemption für periodische Tasks, bei denen die Zeitschranke identisch zur Periode ist, eine optimale Prioritätenverteilung. 21

22 4.4 Echtzeitscheduling Prinzip des Beweises am Beispiel zweier Tasks, p 2 > p 1 : Task 1 e 1 Prioritätenverteilung 1 (entgegen RMS) Task 2 e 2... Taskset ausführbar, wenn gilt: e 1 + e 2 p 1 Anderenfalls verpasst Task T 1 ihre Zeitschranke Ruhe Task 1 0 e 1 p 1 p 2 Prioritätenverteilung 2 (gemäß RMS) e 2 Aus e 1 + e 2 p 1 folgt: T 1 wie auch T 2 terminiert Task 2... vor oder spätestens zum Zeitpunkt p 1 Daraus folgt: Task 1 hält ihre Zeitschranke Ruhe Aus p 2 > p 1 folgt: Task 2 terminiert vor p 2 Daraus folgt: Task 2 hält ihre Zeitschranke 0 p 1 p 2 22

23 4.4 Echtzeitscheduling Dies gilt auch für alle späteren Aufrufe, da beim ersten Aufruf durch gleichzeitige Aktivierung von Task 1 und Task 2 der schlimmste Fall bereits abgedeckt ist. Schlussfolgerung: ist Taskset mit 2 Tasks unter einer Prioritätenverteilung entgegen dem Rate-Monotonic-Prinzip (Variante 1) ausführbar, so ist es immer auch mit dem Rate-Monotonic-Prinzip (Variante 2) ausführbar. Für 2 Tasks ist Rate-Monotonic-Scheduling also eine optimale Prioritätenzuteilung für feste Prioritäten. Die Beweisführung lässt sich leicht von zwei auf eine beliebige Anzahl Tasks erweitern ([Liu Layland 1973]) 23

24 4.4 Echtzeitscheduling FTS Beispiel mit drei Aufgaben Funk- Kommunikation Transponder- Erkennung Motorsteuerung und -regelung FTS Kamera- Datenverarbeitung Laserscanner- Datenverarbeitung 24

25 4.4 Echtzeitscheduling Daten aus industriellem FTS mit aufgeklebter Fahrspur und Landmarken FTS Prod 2 Prod 1 Lager Fahrgeschwindigkeit: 0,65 m/sec, Positionsgenauigkeit 1 cm T1: Kameradatenverarbeitung, p 1 = d 1 = 10 msec, e 1 = 1 msec T2: Motorsteuerung, p 2 = d 2 = 10 msec, e 2 = 5 msec T3: Transpondererkennung, d 3 = 1 cm : 0,65 m/sec = 15,4 msec, e 3 = 5,5 msec 25

26 Prozessorauslastung Prioritätenvergabe gemäß RMS: 4.4 Echtzeitscheduling H = e 1 / p 1 + e 2 / p 2 + e 3 / p 3 = = 1 msec/10 msec + 5 msec/10 msec + 5,5 msec/15,4 msec = = 95,71% (aperiodisches Transponderereignis als schlimmster Fall mit seiner Zeitschranke periodisiert) T1 (Kameradatenverarbeitung): T2 (Motorsteuerung): T3 (Transpondererkennung): hohe Priorität mittlere Priorität. niedrige Priorität oder: T1 (Kameradatenverarbeitung): mittlere Priorität. T2 (Motorsteuerung): hohe Priorität T3 (Transponderdatenerkennung): niedrige Priorität 26

27 4.4 Echtzeitscheduling Ablauf des FTS Beispiels mit Priorität T1 > T2 > T3 Kameradaten verarbeitung (T1) 1 msec 1 msec Motorsteuerung (T2) Transponder- Erkennung (T3) 5 msec Preemption 4 msec 5 msec 1,5 msec Ruhe Zeitschranke T 1 &T 2 Zeitschranke T 3 um 2,1 msec verpasst msec Ereignis für T 1, T 2 und T 3 Ereignis für T 1 und T 2 27

28 4.4 Echtzeitscheduling Ablauf des FTS Beispiels mit Priorität T2 > T1 > T3 Kameradatenverarbeitung (T 1 ) 1 msec 1 msec Motorsteuerung (T 2 ) 5 msec Preemption 5 msec Transponder- Erkennung (T 3 ) 4 msec 1,5 msec Ruhe Zeitschranke T 1 & T 2 Zeitschranke T 3 um 2,1 msec verpasst msec Ereignis für T 1, T 2 und T 3 Ereignis für T 1 und T 2 28

29 4.4 Echtzeitscheduling Daraus folgt: Feste Prioritäten mit Preemption ist kein optimales Schedulingverfahren. Obergrenze der Prozessorauslastung ist mathematisch ermittelbar, bis zu der immer ein ausführbarer Schedule für Rate-Monotonic-Scheduling mit Preemption gefunden wird. H max = n(2 1/n 1), n = Anzahl der Tasks Bsp.: H max = 3 (2 1/3-1) = 0,78 = 78% 29

30 4.4.3 EDF-Scheduling 4.4 Echtzeitscheduling Bei Earliest-Deadline-First-Scheduling (EDF) erhält diejenige Task den Prozessor zugeteilt, die am nächsten an ihrer Zeitschranke (Deadline) ist. => Prioritäten ergeben sich automatisch und dynamisch aus den Zeitschranken. Dynamisches Scheduling, dynamische Prioritäten, preemptiv oder nicht-preemptiv Preemptives EDF-Scheduling auf Einprozessorsystemen liefert optimales Scheduling H max = 100% EDF findet für periodische Tasks mit d i = p i einen Schedule, wenn gilt: e i / p i 1 n i= 1 30

31 4.4 Echtzeitscheduling Ablauf des FTS-Beispiels mit EDF-Scheduling Kameradatenverarbeitung (T 1 ) 1 msec 1 msec Motorsteuerung (T 2 ) Transponder- Erkennung (T 3 ) 5 msec 5,5 msec 5 msec Ruhe Zeitschranke T 1 &T 2 Zeitschranke T 3 Zeitschranke T 1 &T msec Ereignis für T 1, T 2 und T 3 Ereignis für T 1 und T 2 Ereignis für T 1 und T 2 31

32 4.4.4 LLF-Scheduling 4.4 Echtzeitscheduling Bei Least-Laxity-First-Scheduling (LLF) erhält diejenige Task den Prozessor zugeteilt, die den geringsten Spielraum (Laxity) hat. Dynamisches Scheduling, dynamische Prioritäten, preemptiv oder nicht-preemptiv Preemptives LLF ist wie EDF ein optimales Schedulingverfahren auf Einprozessorsystemen, H max = 100%. Für den Spielraum gilt l i = d i (t + er i ) LLF erzeugt eine drastisch höhere Anzahl an Taskwechseln als EDF Aber besseres Verhalten als EDF bei Überlast 32

33 4.4 Echtzeitscheduling Kameradatenverarbeitung (T 1 ) T 1 und T 2 fertig T 3 fertig 2 msec Motorsteuerung (T 2 ) Transpondererkennung (T 3 ) 4 msec 1,8 msec 0,3 msec 5 msec 0,8 msec 3,6 msec T 1 und T 2 fertig Ruhe Zeitschranke T 1 & T 2 Zeitschranke T 3 Zeitschranke T 1 & T 2 Ablauf des FTS Beispiels mit LLF-Scheduling l 3 = 9,9 l 2 = 9,0 l 2 = 5, msec Ereignis für T 1, T 2 und T 3 Laxity msec l = 5, ,8 msec l = 4,1 5,8 + 0,3 msec l = 3,9 6,1 + 5 msec l = 3,9 Ereignis für T 1 und T 2 11,1 + 0,8 msec l = 3,5 11,9 + 3,6 msec l = 3,5 Ereignis für T 1 und T 2 15,5 + 2 msec l = 2,5 T 1 T 2 T msec 33

34 4.4 Echtzeitscheduling Time-Slice-Scheduling Time-Slice-Scheduling (Zeitscheibenverfahren) ordnet jeder Task eine feste Zeitscheibe (Time Slice) zu. Die Reihenfolge der Taskausführung entspricht hierbei der Reihenfolge der ablaufwilligen Tasks in der Taskverwaltungsliste des Betriebssystems. Die Dauer der Zeitscheibe für eine Task kann individuell festgelegt werden. Preemptives dynamisches Scheduling ohne Prioritäten. Task 1, ablaufwillig, Zeitscheibe 1 Task 2, nicht ablaufwillig, Zeitscheibe 2 Task 3, ablaufwillig, Zeitscheibe 3... Task n, ablaufwillig, Zeitscheibe n Einfaches Verfahren, bei feinkörnigen Zeitscheiben nahe an der Optimalität, aber Periodendauer abhängig von der Anzahl der Tasks 34

35 4.4 Echtzeitscheduling Ablauf des FTS-Beispiels mit Time-Slice-Scheduling T 1 : H 1 = e 1 / p 1 = 1 msec / 10 msec = 10% T 2 : H 2 = e 2 / p 2 = 5 msec / 10 msec = 50% T 3 : H 3 = e 3 / p 3 = 5,5 msec / 15,4 msec = 36% (35,714%) Die Zeitscheiben wurden auf der Proportionalitätsbasis 1% 0,05 msec wie folgt gewählt: T 1 : Zeitscheibe 0,5 msec (~ 10%) T 2 : Zeitscheibe 2,5 msec (~ 50%) T 3 : Zeitscheibe 1,8 msec (~ 36%) Kameradatenverarbeitung (T 1 ) Motorsteuerung (T 2 ) Transpondererkennung (T 3 ) 0,5 msec 0,5 msec T 1 fertig 0,5 msec 0,5 msec T 1 fertig 2,5 msec 2,5 msec T 2 fertig 2,5 msec 2,5 msec T 3 fertig 1,8 msec 1,8 msec 1,8 msec 0,1 msec Slice T 1 = 0,5 msec Slice T 2 = 2,5 msec Slice T 3 = 1,8 msec T 2 fertig Ruhe Zeitschranke T 1 &T 2 Zeitschranke T 3 Zeitschranke T 1 &T msec Ereignis für T 1, T 2 und T 3 Ereignis für T 1 und T 2 Ereignis für T 1 und T 2 35

36 4.4 Echtzeitscheduling Guaranteed Percentage Scheduling Guaranteed Percentage Scheduling (GP) ordnet jeder Task einen festen Prozentsatz der verfügbaren Prozessorleistung innerhalb einer Periode zu (virtueller Prozessor pro Task) Preemptives dynamisches Schedulingverfahren ohne Prioritäten Periodendauer unabhängig von der Anzahl der Tasks Auf Einprozessorsystemen ein optimales Schedulingverfahren: H max = 100% Bei periodischen Tasks werden die Zeitschranken erfüllt, wenn gilt: e i / p i 1 Viele Taskwechsel wie bei LLF n i= 1 Für mehrfädige Prozessoren geeignet. 36

37 4.4 Echtzeitscheduling Beispiel Komodo-Mikrocontroller, GP Periode 100 Taktzyklen (vgl. Abschnitt 2.6) Thread A, 30% Thread B, 20% Thread C, 40%... Thread A 30 Taktzyklen Thread B 20 Taktzyklen Thread C 40 Taktzyklen Thread A 30 Taktzyklen Thread B 20 Taktzyklen Thread C 40 Taktzyklen Taktzyklen 100 Taktzyklen 37

38 4.4 Echtzeitscheduling T 1 : H 1 = e 1 / p 1 = 1 msec / 10 msec = 10% T 2 : H 2 = e 2 / p 2 = 5 msec / 10 msec = 50% T 3 : H 3 = e 3 / p 3 = 5,5 msec / 15,4 msec = 36% (35,714 %) Hierdurch ergibt sich für jede Task eine Ausführungszeit, die ihrer Periode und damit ihrer Zeitschranke entspricht: T 1 : Ausführungszeit: 1 msec in 10 msec (10%) T 2 : Ausführungszeit: 5 msec in 10 msec (50% ) T 3 : Ausführungszeit: 5,5 msec in 15,3 msec (36%) Ablauf des FTS-Beispiels mit Guaranteed Percentage Scheduling Kameradatenverarbeitung (T 1 ) Motorsteuerung (T 2 ) Transpondererkennung (T 3 ) T 1 und T 2 fertig T 3 fertig T 1 und T 2 fertig Ruhe Zeitschranke T 1 &T 2 Zeitschranke T 3 Zeitschranke T 1 &T msec Ereignis für T 1, T 2 und T 3 Ereignis für T 1 und T 2 Ereignis für T 1 und T 2 38

39 4.5 Synchronisation und Kommunikation Synchronisation gemeinsamer Betriebsmittel Gemeinsame Betriebsmittel Daten Geräte Programme Task 1 Task 2 Temperatur- Sensoren auslesen Temperatur- Tabelle lesen Beispiel: gemeinsam genutzte Temperatur- Tabelle Temperatur- Verteilung in Temperatur- Tabelle ablegen Konkurrierender Zugriff Temperatur- Verteilung ausdrucken 39

40 4.5 Synchronisation und Kommunikation Synchronisation Variante 1 Task 1 Task 2 Die Sperrsynchronisation Temperatur Sensoren auslesen Mutex für Temperatur- Tabelle belegen Temperatur- Tabelle ablegen Sperrsynchronisation kritischer Bereich Mutex für Temperatur Tabelle belegen Temperatur Tabelle lesen Mutex für Temperatur- Tabelle freigeben Mutex für Temperatur- Tabelle freigeben Temperatur- Verteilung ausdrucken 40

41 4.5 Synchronisation und Kommunikation Synchronisation Variante 2 Task 1 Task 2 Die Reihenfolgensynchronisation Temperatur- Sensoren auslesen Task blockiert Temperatur- Verteilung in Temperatur- Tabelle ablegen Task blockiert Reihenfolgensynchronisation Temperatur- Tabelle lesen Temperatur- Verteilung ausdrucken 41

42 4.5 Synchronisation und Kommunikation Ein Semaphore besteht aus: einer Zählvariablen zwei nicht unterbrechbaren Operationen P (Passieren) und V (Verlassen) P V Zähler := Zähler - 1 Zähler := Zähler + 1 nein Zähler<0? nein Zähler<1? ja Task blockieren ja eine blockierte Task bereit machen Bei Standardbetriebssystemen: Bereitmachen einer beliebigen wartenden Task bei V Bei Echtzeitbetriebssystemen: Bereitmachen der höchstprioren wartenden Task bei V 42

43 4.5 Synchronisation und Kommunikation Sperrsynchronisation mit einem Semaphore Initialisiere Semaphore S 1 = 1 Task 1 Task 2 Passiere(S 1 ) Diese Form des Semaphore-Einsatzes heißt auch Mutex (Mutual Exclude) Zugriff auf geschützte Betriebsmittel Verlasse(S 1 ) Task 2 blockiert Task 2 freigegeben Passiere(S 1 ) Zugriff auf geschützte Betriebsmittel Verlasse(S 1 ) 43

44 4.5 Synchronisation und Kommunikation Reihenfolgensynchronisation mit zwei Semaphoren Task 1 Task 2 Initialisiere Semaphore S 1 =0 Task 1 blockiert Initialisiere Semaphore S 2 =1 Passiere(S 1 ) Passiere(S 2 ) Aktivität Task 2 Task 1 freigegeben Verlasse(S 1 ) Aktivität Task 1 Verlasse(S 2 ) Task 2 freigegeben Passiere(S 2 ) Task 2 blockiert Passiere(S 1 ) Task 1 blockiert Task 1 freigegeben Aktivität Task 2 Verlasse(S 1 ) 44

45 4.5 Synchronisation und Kommunikation Erzeuger-/Verbraucher- Synchronisation mit zwei Semaphoren Task "Erzeuger" Initialisiere Semaphore Leerungen = n Task "Verbraucher" Initialisiere Semaphore Füllungen = 0 Passiere(Leerungen) Passiere(Füllungen) Erzeuge Objekt Verbrauche Objekt Leerungen: Freie Plätze für Objekte des Erzeugers, Füllungen: erzeugte Objekte für Verbraucher Verlasse(Füllungen) Verlasse(Leerungen) 45

46 4.5 Synchronisation und Kommunikation Verklemmungen Deadlock (Blockierung, Deadly Embrace): mehrere Tasks warten auf die Freigabe von Betriebsmitteln, die sich gegenseitig blockieren. Task 1 Task 2 Temperatur- und Druck- Sensoren auslesen Mutex für Druck- Tabelle belegen Mutex für Temperatur- Tabelle belegen kreuzweise Betriebsmittelbelegung Mutex für Temperatur- Tabelle belegen Mutex für Druck- Tabelle belegen Temperatur- Tabelle lesen Beispiel: kreuzweise Betriebsmittelbelegung Gegenmaßnahmen: Abhängigkeitsanalyse Vergabe der Betriebsmittel in gleicher Reihenfolge Timeout Druck-Verteilung In Druck-Tabelle ablegen Temperatur- Verteilung in Temperatur- Tabelle ablegen Mutex für Temperatur- Tabelle freigeben Mutex für Druck- Tabelle freigeben Druck- Tabelle lesen Mutex für Druck- Tabelle freigeben Mutex für Temperatur- Tabelle freigeben Temperatur- und Druck- Verteilung ausdrucken 46

47 4.5 Synchronisation und Kommunikation Ein Deadlock durch Programmierfehler Initialisiere Semaphore S 1 = 1 Task 1 Task 2 Passiere(S 1 ) Passiere(S 1 ) Gegenmaßnahme: höhere Synchronisationskonstrukte (z.b. Monitore) Zugriff auf geschützte Betriebsmittel Zugriff auf geschützte Betriebsmittel Passiere(S 1 ) Verlasse(S 1 ) 47

48 4.5 Synchronisation und Kommunikation Verklemmungen Livelock (Starvation, Aushungern): eine Task wird durch andere Tasks ständig an der Ausführung gehindert. Beispiel: eine hochpriore Task verhindert ständig die Ausführung einer niederprioren Task Auch hochpriore Tasks können Opfer von Livelocks werden, Problem Prioritäteninversion 48

49 4.5 Synchronisation und Kommunikation Prioritäteninversion Task 1 hohe Priorität Mutex Task 2 niedere Priorität Task 1 versucht, Mutex zu belegen, wird blockiert Task 2 gibt Mutex frei Task 1 Task 2 belegt Mutex Task 2 Prioritäteninversion Ruhe Ereignis für Task 2 Ereignis für Task 1 Zeit 49

50 4.5 Synchronisation und Kommunikation Task 1 hohe Priorität Mutex Task 2 niedere Priorität Task 3 mittlere Priorität Task 1 versucht, Mutex zu belegen, wird blockiert Task 1 Task 2 belegt Mutex Ein Livelock durch Prioritäteninversion Task 2 Task 3 Ruhe Livelock, Task 1 ist längerfristig blockiert Zeit Ereignis für Task 2 Ereignis für Task 1 Ereignis für Task 3 50

51 4.5 Synchronisation und Kommunikation Task 1 hohe Priorität Mutex mit Prioritätenvererbung Task 2 niedere Priorität Task 3 mittlere Priorität Task 1 versucht, Mutex zu belegen, wird blockiert Task 2 gibt Mutex frei Task 1 ist fertig Task 1 Task 2 belegt Mutex Vermeidung des Livelocks durch einen Mutex mit Prioritätenvererbung Task 2 Task 3 Ruhe Ereignis für Task 2 Ereignis für Task 1 Prioritätenvererbung, Task 2 erhält die Priorität von Task 1 (daher keine Unterbrechung durch Task 3) Ereignis für Task 3 Zeit 51

52 4.5 Synchronisation und Kommunikation Task-Kommunikation Zwei grundlegende Varianten der Task-Kommunikation: Gemeinsamer Speicher (schneller) Nachrichten Bei Echtzeitbetriebssystemen: Wahrung der End-zu-End-Prioritäten durch prioritäts-basierte Kommunikation (hochpriorenachrichten überholen niederpriore,keine Bockierung) Task 1, Priorität n Kommunikation Priorität n Task 2, Priorität n 52

53 4.5 Synchronisation und Kommunikation Weiteres Unterscheidungsmerkmal zeitliche Koordination - Synchrone Kommunikation - Asynchrone Kommunikation Task 1 Task 2 Task 1 Warte_auf_Nachricht Task 2 Prüfe_ob_Nachricht _vorhanden Task 2 blockiert Sende_Nachricht Hole_Nachricht Sende_Nachricht Prüfe_ob_Nachricht _vorhanden Hole_Nachricht a) synchrone Kommunikation b) asynchrone Kommunikation 53

54 4.5 Synchronisation und Kommunikation Für asynchrone Kommunikation: der Kommunikationskanal muss Botschaften puffern Konzepte: Briefkasten: individuelle Botschaftenwarteschlange zwischen Sender und Empfänger Port: spezielle Form des Briefkastens, bei der mehrere Sender Daten mit einem Empfänger austauschen können Task "Erzeuger" Task "Verbraucher" Empfange(Verbraucher, Port, Priorität, Leerbotschaft) for i:= 1 to n do Sende(Erzeuger, Port, Priorität, Leerbotschaft) Beispiel nachrichtenbasierter Kommunikation: Botschaftenaustausch Erzeuge Objekt Vollbotschaft Sende(Verbraucher, Port, Priorität, Vollbotschaft) Empfange(Erzeuger, Port, Priorität, Vollbotschaft) Vollbotschaft Verbrauche Objekt Sende(Erzeuger, Port, Priorität, Leerbotschaft) 54

55 4.5 Synchronisation und Kommunikation Entfernter Prozeduraufruf mittels Botschaftenaustausch Ausgangsrechner Zielrechner 1 3 Task 6 Stellvertreter (Stub) Stellvertreter (Skeleton) 4 Prozedur 2 5 Netzwerk, Feldbus,... (1), (3), (4), (6) - Prozeduraufrufe (2), (5), - Botschaftentransfer 55

56 4.6 Speicher- und IO-Verwaltung Speicherverwaltung Die Speicherverwaltung teilt den verfügbaren Speicher mittels einer Speicherabbildungsfunktion M zu: M: logische Adresse physikalische Adresse Logische Adresse: Physikalische Adresse: Speicheradresse innerhalb einer Task wirkliche Arbeitsspeicheradresse Modelle der Speicherverwaltung: Speicherzuteilung: Adressbildung und Adressierung: Statische Speicherzuteilung Reelle Adressierung Dynamische Speicherzuteilung Virtuelle Adressierung Nichtverdrängende Speicherzuteilung Lineare Adressbildung Verdrängende Speicherzuteilung Streuende Adressbildung 56

57 4.6 Speicher- und IO-Verwaltung Lineare Adressbildung durch Segmente, statische Zuteilung, reelle Adressierung, keine Verdrängung physikalischer Adressraum Segment 1 (log. Adressraum Task 1) Segment 2 (log. Adressraum Task 2) Segment 3 (log. Adressraum Task 3) unbenutzt Vorteile: Tasks im Speicher verschiebbar Tasks gegeneinander geschützt Zeitverhalten sehr gut vorhersagbar Nachteile: Speicherschema starr, nicht online änderbar Für jede Task maximaler Speicher Bei variierender Anzahl von Tasks muss für alle Tasks Speicher reserviert werden, kein Teilen von Speicher zwischen Tasks Bevorzugte Lösung für eingebettete Systeme mit einfachen Mikrocontrollern 57

58 4.6 Speicher- und IO-Verwaltung Lineare Adressbildung durch Segmente, dynamische Zuteilung, reelle Adressierung, keine Verdrängung Task 3 30 kbytes wird ablaufwillig Task 2 48 kbytes wird beendet Task 4 20 kbytes wird ablaufwillig physikalischer Adressraum Segment 1 Task 1 32 kbytes Segment 2 Task 2 48 kbytes Segment 1 Task 1 32 kbytes Segment 2 Task 2 48 kbytes Segment 3 Segment 3 Segment 3 unbenutzt, Task 3 Task 3 Task 3 48 kbytes 30 kbytes 30 kbytes 30 kbytes unbenutzt unbenutzt unbenutzt 18 kbytes 18 kbytes 18 kbytes Tasks können sich phys. Speicher teilen, so lange keine Verdrängung ist die Zugriffszeit konstant. Speicherbereinigung wegen löchrigem Speicher. 58 Segment 1 Task 1 32 kbytes unbenutzt 48 kbytes Segment 1 Task 1 32 kbytes Segment 4 Task 4 20 kbytes unbenutzt 18 kbytes

59 4.6 Speicher- und IO-Verwaltung Lineare Adressbildung mit Speicherbereinigung Task 5 32 kbytes wird ablaufwillig Wegen Segmentverschiebungen für Echtzeit problematisch. physikalischer Adressraum Segment 1 Task 1 32 kbytes Segment 4 Task 4 20 kbytes unbenutzt 18 kbytes Segment 3 Task 3 30 kbytes unbenutzt 18 kbytes kompaktifizieren Segment 1 Task 1 32 kbytes Segment 4 Task 4 20 kbytes Segment 3 Task 3 30 kbytes unbenutzt 36 kbytes Segment 1 Task 1 32 kbytes Segment 4 Task 4 20 kbytes Segment 3 Task 3 30 kbytes Segment 5 Task 5 32 kbytes 4 kbytes 59

60 4.6 Speicher- und IO-Verwaltung Lineare Adressbildung mit virtueller Adressierung und Verdrängung logischer Adressraum physikalischer Adressraum Verdrängungsstrategien (auslagern): Task 1 Task 2 Segment 1 Segment 2 eingelagert Segment 1 Segment 4 FIFO (First In First Out), am längsten im Sp. LRU (Least Recently Used), a. l. nicht mehr ben. LFU (Least Frequently Used), am seltensten ben. LRD (Least Reference Density), ger. Zugriffsdichte Zuteilungsstrategien (einlagern, wohin): Task 3 Segment 3 unbenutzt First Fit (erstes) Best Fit (kleinstes) Worst Fit (größtes) Task 4 Segment 4 ausgelagert (verdrängt) Peripheriespeicher Nachschubstrategien (wann einlagern): Verlangend (Demand Fetch) Vorausschauend (Anticipatory Fetch) Echtzeitbetriebsysteme: Verriegeln von einzelnen Tasks, d.h. keine Verdrängung 60

61 4.6 Speicher- und IO-Verwaltung Taskzustände bei verdrängender Speicherverwaltung Einrichten der Task Entfernen ruhend ablaufwillig, verdrängt ablaufwillig, eingelagert laufend blockiert 61

62 4.6 Speicher- und IO-Verwaltung Realisierung der linearen Adressbildung mit Segmenten virtuelle Adresse n Bit Segmentadresse Offsetadresse phys. Deskriptor- Tabellen-Startadresse + m Bit v Bit m Bit p Bit Segmentdeskriptor Segmenttyp physikalische Segment- Startadresse Segmentlänge Zugriffsrechte Segment verdrängt... m Bit + m Bit physikalische Adresse in der Segmentdeskriptor- Tabelle im Arbeitsspeicher 62

63 4.6 Speicher- und IO-Verwaltung Streuende Adressbildung: Aufteilung der Tasks auf Seiten Task 1 Task 2 Task 3 Seite Task 1 Seite 2 Seite 3 Seite Task 14 Seite 5 Seite 6 Seite Task 17 Seite 8 Seite 9 Seite Task 10 1 unbenutzt Seite 11 Seite 12 63

64 4.6 Speicher- und IO-Verwaltung Task 1 Task 2 Task 3 logischer Adressraum Seite Task 1 Seite 2 Seite 3 Seite Task 14 Seite 5 Seite 6 Seite Task 17 Seite 8 Seite 9 Seite Task 10 1 unbenutzt Seite 11 Seite 12 Streuende Adressbildung: Zuordnung von Seiten zu Kacheln Physik. Adressraum Kachel Task 11 Kachel 2 Kachel 3 Kachel Task 14 Kachel 5 Kachel 6 Kachel Task 17 Kachel 8 Kachel 9 Kachel Task 110 unbenutzt Kachel 11 Kachel 12 Kachel 13 Kachel 14 Kachel Task 115 unbenutzt Kachel 16 Kachel 17 Kachel 18 Kachel 19 Kachel Task 120 unbenutzt Kachel 21 Kachel Die Zuordnung von Seiten zu Kacheln erfolgt in der Regel ohne Beachtung der sequentiellen Reihenfolge der Seiten Vorteile: einfache Zuweisung, keine Zuteilungsstrategie dynamische Taskgrößenänd. einfacher und zeitlich besser vorhersagbar keine Speicherbereinigung Virtuelle Adressierung benötigt nur Verdrängung- und Nachschubsstrategie Nachteile: letzte Seite nur teilweise voll höherer Seitenverwaltungsaufwand durch kleine Seiten mehr Datentransfers zwischen Haupt- und Peripheriespeicher 64

65 4.6 Speicher- und IO-Verwaltung Realisierung der streuenden Adressbildung mit Seiten logische Adresse n Bit Seitenadresse Offsetadresse Startadresse der phys. Seitentabelle m Bit + v Bit p Bit m Bit k = Konkatenation Kachelnummer der Seite m-p Bit k m Bit physikalische Adresse Seitentabelle im Arbeitsspeicher 65

66 4.6 Speicher- und IO-Verwaltung Hierarchischer Aufbau der Seitentabellen logische Adresse Seitenadresse Offsetadresse k Seitenverzeichnisadresse Seitentabellenverzeichnis Seitentabelle k physikalische Adresse 66

67 4.6 Speicher- und IO-Verwaltung Kombination von linearer und streuender Adressbildung logische Adresse Segmentadresse Seitenadresse Offsetadresse Kombination der Vorteile 67

68 4.6 Speicher- und IO-Verwaltung IO-Verwaltung Aufgaben der IO-Verwaltung: Zuteilen und Freigeben von Geräten Benutzen von Geräten Die angeschlossenen Geräte unterscheiden sich hierbei stark in Geschwindigkeit und Datenformat => das Betriebssystem muss dem Anwenderprogramm die Schwierigkeiten der Kommunikation abnehmen und einfache, transparente Schnittstellen zur Verfügung stellen Tasks Ein- /Ausgabesteuerung Gerätetreiber (hardwareabhängig) Hardware (Geräte) Ein- /Ausgabeverwaltung Architektur der Ein-/Ausgabeverwaltung 68

69 4.6 Speicher- und IO-Verwaltung Die wichtigsten Teilfunktionen der Ein/Ausgabesteuerungsschicht sind: Symbolische Namensgebung Annahme von Ein-/Ausgabeanforderungen Vergabe und Zuteilung von Geräten Synchronisation Schutz der Geräte Kommunikation mit den Gerätetreibern Pufferung Einheitliches Datenformat 69

70 4.6 Speicher- und IO-Verwaltung Synchronisationsmechanismen Schnittstellenbaustein Steuerbus Adressbus Steuerung Eingaberegister Statusregister Eingaberegister Steuerregister Steuer- Signale Datenbus Eingaberegister Datenregister Ein/Ausgabe- Daten Prozessor, Bus Gerät 70

71 4.6 Speicher- und IO-Verwaltung Synchronisation durch Polling Task Schnittstellenbaustein Gerät Gerät initialisieren: Steuerregister schreiben Gerät nimmt Tätigkeit auf Statusregister lesen Gerät bereit? Datenregister lesen Datum verarbeiten nein ja bereit Datum ins Datenregister übertragen Einfach, hohe Übertragungsleistung bei einem Gerät Prozessor ständig aktiv, keine Nebenaktivitäten 71

72 4.6 Speicher- und IO-Verwaltung Polling von mehreren Geräten innerhalb einer Task Gerät 1 bereit? ja Gerät 1 behandeln nein Gerät 2 bereit? ja Gerät 2 behandeln nein... Verlangsamte Reaktionszeit bei mehreren Geräten Gerät n bereit? ja Gerät n behandeln nein 72

73 4.6 Speicher- und IO-Verwaltung Synchronisation durch Busy Waiting Task Schnittstellenbaustein Gerät Gerät initialisieren: Steuerregister schreiben Gerät nimmt Tätigkeit auf Statusregister lesen Kurze Aktivität durchführen Gerät bereit? ja nein bereit Datum ins Datenregister übertragen Datenregister lesen Datum verarbeiten Nebenaktivitäten möglich Verlangsamte Reaktionszeit, Nebenaktivität muss in kleine Teilschritte aufgeteilt werden 73

74 4.6 Speicher- und IO-Verwaltung Synchronisation durch Unterbrechung Task Schnittstellenbaustein Gerät Gerät initialisieren: Steuerregister schreiben Gerät nimmt Tätigkeit auf... Unterbrechungsbehandlung Datenregister lesen Unterbrechung Datum ins Datenregister übertragen Datum verarbeiten Rückkehr zur Unterbrochenen Task Beliebige Nebenaktivitäten, schnelle Reaktionszeit Verringerte Übertragungsraten 74

75 4.6 Speicher- und IO-Verwaltung Synchronisation durch Polling mit Handshake Task Schnittstellenbaustein Gerät Gerät initialisieren: Steuerregister schreiben Gerät nimmt Tätigkeit auf Statusregister lesen Gerät bereit? ja nein bereit Handshake Datum ins Datenregister übertragen Datenregister lesen Bestätigung Warte auf Bestätigung Datum verarbeiten Wenn Gerät Daten schneller liefert als die Task sie entgegennehmen kann 75

76 4.6 Speicher- und IO-Verwaltung Synchronisation durch Unterbrechung mit Handshake Task Schnittstellenbaustein Gerät Gerät initialisieren: Steuerregister schreiben Gerät nimmt Tätigkeit auf... Unterbrechungsbehandlung Datenregister lesen Unterbrechung Handshake Bestätigung Datum ins Datenregister übertragen Warte auf Bestätigung Datum verarbeiten Rückkehr zur unterbrochenen Task Wenn Gerät Daten schneller liefert als die Task sie entgegennehmen kann 76

77 4.6 Speicher- und IO-Verwaltung Unterbrechungsbehandlung in Echtzeitbetriebssystemen Task 1 Task 2 Task 3 Unterbrechungs- Behandlungsprogramm Unterbrechung a) Unterbrechung der Taskverarbeitung Task-Scheduler des Echtzeitbetriebssystem Unterbrechungssystem des Prozessors Zeit Task 1 Task 2 Task 3 Task 4 (Unterbrechungsbehandlung) Unterbrechungs- Behandlungs-programm - Unterbrechung b) Integration der Unterbrechung in die Taskverarbeitung Task-Scheduler des Echtzeitbetriebssystem Unterbrechungssystem des Prozessors Zeit 77

78 4.7 Klassifizierung und Beispiele von Echtzeitbetriebssystemen Filesystem Komfortable E/A Treiber, Netzwerke Ein/Ausgabe Verw. Einfache E/A Treiber Speicherverwaltung Virtuelle Adr. Speicherverwaltung Physikal. Adr. Scheduler Komm.über DPRAM, FIFO Nachrichten Semaphore Tasks Threads Minimales Echtzeitbetriebssystem (MEBS) x x x x x x Controller System (CS) Dediziertes System (DS) x x x x x x x x x x x x x x Betriebssystemaufsatz (BA) x x x x x x x x x Allgemeines Echtzeitbetriebssystem (EBS) x x x x x x x x x 78

79 4.7 Klassifizierung und Beispiele von Echtzeitbetriebssystemen Auswahlkriterien für Echtzeitbetriebssysteme 1. Entwicklungs- und Zielumgebung Programmiersprache Zielsystem (ZE)- Crossentwicklungsumgebung (CE) - Ladezeiten bei Crossentwicklung - Debug-Möglichkeiten (CE): Quellcode-Debugging (C, C++, Java), Zeitverfälschung bei CE-Debugging - EBS und EU vom selben Hersteller 2. Modularität und Kerngröße Konfigurierbarkeit auf Anwendung Minimaler Mikrokern für eingebettete Systeme 79

80 4.7 Klassifizierung und Beispiele von Echtzeitbetriebssystemen 3. Anpassbarkeit an verschiedene Zielumgebungen Ist EBS an Mikrocontroller/Signalprozessor mit spezieller Peripherie anpassbar? ROM-Fähigkeit für Code mit RAM für Daten Feldbusse verfügbar 4. Allgemeine Eigenschaften Bedieneroberfläche (Grafik, Kommandos, keine) Bibliotheken (Mathem., Graph., Textverarbeitung, ) Werkzeug für GUI-Echtzeitanwendungen Werkzeuge zur Versionsverwaltung, Datenhaltung oder zur Programmentwicklung 80

81 4.7 Klassifizierung und Beispiele von Echtzeitbetriebssystemen 5. Leistungsdaten maximale Taskanzahl (Tasks, Threads) Welche Scheduling-Strategien Anzahl unterschiedlicher Prioritätsebenen (64-256) Taskwechselzeiten (Threads schneller als Tasks) Latenzzeiten bei Unterbrechungen Behandlung von Unterbrechungen (direkt indirekt) EBS-Klasse für harte, feste, weiche Echtzeitanwendungen 81

82 4.7 Klassifizierung und Beispiele von Echtzeitbetriebssystemen Industrielle Echtzeitbetriebssysteme QNX Software Systems Ltd. Typ DS, EBS Standard für EBS, BA Produkt QNX POSIX.4 RT-Linux VxWorks OS-9 CMX Windows CE Hersteller Posix Wind River Microware CMX Systems Microsoft Zielsystem IA32 IA32, IA64, PowerPC GPL (GNU Public License) BA EBS EBS MEBS EBS IA32, PowerPC, ARM IA32, PowerPC, 680XX, div. Mikrocontroller C, C++, Java Unix, Windows IA32, PowerPC, 680XX Diverse Mikrocontroller IA32, Power- PC, MIPS, ARM Sprachen C, C++ C, C++, Java, Ada C, C++, Java C, C++, Java C C, C++, Java Dateisystem Unix, Unix Unix, Windows - Windows Windows Windows GUI X-Win X-Win X-Win X-Win X-Win - Windows Netzwerk TCP/IP TCP/IP, TCP/IP, TCP/IP TCP/IP - TCP/IP UDP UDP Feldbus CAN, CAN, - - ProfiBus ProfiBus, Scheduling FPP, FPN, Timeslice, FIFO FPP, FPN, Timeslice, Benutzerdefiniert FPP, FPN, Timeslice FPP, FPN, Timeslice Interbus S FPP, FPN, Timeslice FPP, FPN, Timeslice FPP, FPN 82

83 4.7.1 QNX 4.7 Klassifizierung und Beispiele von Echtzeitbetriebssystemen Task 1 Task 2... Task n Anwendertasks Dateisystem- Manager Netzwerk- Manager Geräte- Manager Prozess- Manager weitere Systemtasks Systemtasks QNX Inter- Taskkommunikation Netzwerk- Schnittstelle Unterbrechungsbehandlung Scheduler Mikrokern Unterbrechungen Prozessor, Speicher, Geräte Hardware Architektur von QNX 83

84 4.7 Klassifizierung und Beispiele von Echtzeitbetriebssystemen Posix POSIX- Standards POSIX.1 POSIX.2 POSIX.3 POSIX.4 POSIX.5 POSIX.6 POSIX.7 POSIX.8 POSIX.9 POSIX.10 POSIX.11 POSIX.12 POSIX.13 POSIX.14 POSIX.15 POSIX.16 POSIX.17 POSIX.18 POSIX.19 POSIX.20 POSIX.21 Grundlegende Betriebssystemschnittstelle Kommando-Interpreter Test-Methoden Echtzeiterweiterungen ADA Anbindung an POSIX.1 Sicherheitserweiterungen Systemverwaltung Transparenter Dateizugriff FORTRAN-77 Anbindung an POSIX.1 Supercomputer Profile Transaktionsverwaltung Protokollunabhängige Kommunikation Echtzeitprofile Multiprozessorprofile Supercomputererweiterungen Sprachunabhängiges POSIX.1 Verzeichnis- und Namensdienste Grundlegendes POSIX Systemprofil FORTRAN-90 Anbindung an POSIX.1 ADA Anbindung an POSIX.4 Verteilte Echtzeiterweiterungen 84

85 4.7 Klassifizierung und Beispiele von Echtzeitbetriebssystemen POSIX.4 POSIX.4: Echtzeiterweiterungen Threads POSIX.4a zwingend POSIX.4b Echtzeitscheduling Zeitgeber Asynchrone Ein-/Ausgabe Priorisierte Ein-/Ausgabe Synchronisierte Ein-/Ausgabe Hauptspeicherdateien Speicherverriegelung Echtzeitsignale Nachrichtenaustausch Semaphore Gemeinsamer Speicher Speicherschutz optional 85

86 4.7 Klassifizierung und Beispiele von Echtzeitbetriebssystemen RTLinux Linuxtask 1... Linuxtask m Kommunikation Linux- Kern Echtzeit- Task 1... Echtzeit- Task n Architektur von RTLinux Echtzeit-FIFO Echtzeitkern Unterbrechungen Hardware 86

87 4.7 Klassifizierung und Beispiele von Echtzeitbetriebssystemen Aufteilung der eingebetteten Anwendung in Nicht-Echtzeit und Echtzeittasks Anwendung Nicht-Echtzeittasks Benutzerschnittstelle Grafik Datenhaltung, Datenaufbereitung,... Echtzeittasks (Module) Aufgaben mit harten Echtzeitanforderungen 87

88 4.7 Klassifizierung und Beispiele von Echtzeitbetriebssystemen RT-Prozesse unter RTLinux Bei RT-Linux wird eine Task als Prozess bezeichnet Ein Prozess enthält einem Thread und kann weitere zur Laufzeit erzeugen Ein RT-Prozess wird über ein Kernel-Modul definiert: insmod "Prozessname" Der Linux-Befehl insmod lädt das Kernel-Modul "Prozessname" und startet die Funktion init_module zur Initialisierung. Innerhalb init_module können weitere Threads angelegt werden 88

89 4.7 Klassifizierung und Beispiele von Echtzeitbetriebssystemen Funktionen zur Verwaltung von RT-Prozessen Erzeugen eines RT-Threads: int pthread_create(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *arg); Erzeugt einen Thread thread mit den Attributen attr (z.b. Stack-Größe) und startet ihn durch Aufruf der Funktion start_routine(arg). start_routine(arg) ist die Funktion, welche die Thread- Aufgaben realisiert. Beenden eines RT-Threads: int pthread_delete_np(pthread_t thread); RT-Thread periodisch definieren: int pthread_make_periodic_np(pthread_t thread, hrtime_t start_time, hrtime_t period); Der Thread thread wird zum Zeitpunkt start_time gestartet und in durch period (in Nanosekunden) gegebenen Intervallen aufgerufen 89

90 4.7 Klassifizierung und Beispiele von Echtzeitbetriebssystemen Suspendieren eines RT-Threads: int pthread_suspend_np(pthread_t thread); Thread wird angehalten. Entspricht Blockiert-Zustand. Aufwecken eines RT-Threads: int pthread_wakeup_np(pthread_t thread); Thread kann fortgesetzt werden. Entspricht Zustandsübergang Blockiert nach Bereit. Periodischen Thread bis zur nächsten Periode suspendieren: int pthread_wait_np(void); Thread gibt Kontrolle an Scheduler bis zum nächsten periodischen Aufruf ab. 90

91 Beispiel: RT-Modul 4.7 Klassifizierung und Beispiele von Echtzeitbetriebssystemen pthread_t thread; /* Datenstruktur für Threads */ int init_module(void) /* wird beim Laden des RT-Moduls aufgerufen */ { /* Erzeugen eines Threads mit Funktion start_routine */ return pthread_create (&thread, NULL, start_routine, 0); } void cleanup_module(void) /* wird beim Entfernen des RT-Moduls aufgerufen */ { pthread_delete_np (thread); /* Entfernen (Löschen) des Threads */ } 91

92 4.7 Klassifizierung und Beispiele von Echtzeitbetriebssystemen void *start_routine(void *arg) /* Implementierung der Thread-Funktion */ { struct sched_param p; /* Datenstruktur für Thread-Eigenschaften */ p. sched_priority = 1; /* Thread-Priorität in Datenstruktur eintragen */ /* Funktion zum Setzen der Thread-Parameter aufrufen */ /* SCHED_RR: Round Robin Scheduling (auch möglich: SCHED_FIFO) */ pthread_setschedparam (pthread_self(), SCHED_RR, &p); /* Periodischer Aufruf des Threads: Periode ist 0,5 sec, starte sofort */ pthread_make_periodic_np (pthread_self(), gethrtime(), ); } while (1) { pthread_wait_np (); /* bis zur nächsten Periode warten */ rtl_printf("hello, I'm here!\n"); /* Thread-Funktion: Text-Ausgabe */ } return 0; 92

Prozessinformationsverarbeitung. Echtzeitbetriebssysteme. Professur für Prozessleittechnik Wintersemester 2009/2010

Prozessinformationsverarbeitung. Echtzeitbetriebssysteme. Professur für Prozessleittechnik Wintersemester 2009/2010 Fakultät Elektrotechnik und Informationstechnik, Professur für Prozessleittechnik Prozessinformationsverarbeitung (PIV) Echtzeitbetriebssysteme Professur für Prozessleittechnik Wintersemester 2009/2010

Mehr

Schichtenmodell eines Betriebssystems

Schichtenmodell eines Betriebssystems FB Technologie und Management SISD Operanden VonNeumannRechner Rechenwerk Ergebnisse Datenverarbeitung (DV 1) (Kapitel 6 Betriebssysteme) Steuerwerk Speicherwerk Befehle Eingabe Speicher Ausgabe 1 2 Layer

Mehr

RTEMS- Echtzeitbetriebssystem

RTEMS- Echtzeitbetriebssystem RTEMS- Echtzeitbetriebssystem Name: Hussein Hammoud Matrikel- Nr.: 230768 Studiengang: Technische Informatik Fach: Projekt Eingebettete Kommunikation Technische Universität Berlin Sommersemester 2006 RTEMS-

Mehr

5) Realzeitscheduling

5) Realzeitscheduling Inhalte Anforderungen Klassifizierungen Verschiedene Verfahren: FIFO, Round Robin, Least Laxity, EDF, fixed/dyn. Prio. Beispiele und Aufgaben Seite 1 Motivation Gegeben: Ein Einprozessorsystem, das Multiprogrammierung

Mehr

Echtzeitscheduling (1)

Echtzeitscheduling (1) Echtzeitscheduling (1) Scheduling in Betriebssystemen Ressourcenausteilung (CPU, Speicher, Kommunikation) Faire Ressourcenvergabe, insbesondere CPU Hohe Interaktivität / kurze Reaktionszeit für interaktive

Mehr

Scheduling in Echtzeitbetriebssystemen. Prof. Dr. Margarita Esponda Freie Universität Berlin

Scheduling in Echtzeitbetriebssystemen. Prof. Dr. Margarita Esponda Freie Universität Berlin Scheduling in Echtzeitbetriebssystemen Prof. Dr. Margarita Esponda Freie Universität Berlin Echtzeitsysteme Korrekte Ergebnisse zum richtigen Zeitpunkt Hart Echtzeitsysteme Eine verspätete Antwort ist

Mehr

Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden.

Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden. 5. Steuerung technischer Prozesse 5.1 Echtzeit (real time) Im Gegensatz zu Aufgabenstellungen aus der Büroumgebung, wo der Anwender mehr oder weniger geduldig wartet, bis der Computer ein Ergebnis liefert

Mehr

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme Wilhelm Haas Wilhelm.Haas@informatik.stud.uni-erlangen.de Friedrich-Alexander-Universität Erlangen-Nürnberg Institut für Informatik Lehrstuhl 4

Mehr

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003 Task! evt. parallel zu bearbeitende Ausführungseinheit! Beispiel: Task A Zündung Task B Einspritzung Task C Erfassung Pedalwert Zeit t J. Schäuffele, Th. Zurawka:, Vieweg, 2003 Echtzeitbetriebssysteme

Mehr

Betriebssysteme Kap A: Grundlagen

Betriebssysteme Kap A: Grundlagen Betriebssysteme Kap A: Grundlagen 1 Betriebssystem Definition DIN 44300 Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften dieser Rechenanlage die Basis der möglichen Betriebsarten

Mehr

Operating System Kernels

Operating System Kernels Operating System Kernels von Patrick Bitterling 1 Themenübersicht -Eine Einleitung über Kernel -Begriffserklärung, Architekturen -Kernel Subsysteme -Prozess-Scheduling, Speichermanagement,... -Der Networking

Mehr

Rechnernutzung in der Physik. Betriebssysteme

Rechnernutzung in der Physik. Betriebssysteme Rechnernutzung in der Physik Betriebssysteme 1 Betriebssysteme Anwendungsprogramme Betriebssystem Treiber BIOS Direkter Zugriff von Anwenderprogrammen auf Hardware nur in Ausnahmefällen sinnvoll / möglich:

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 20.11.2013 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Wdhlg.: Attributinformationen in

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

Der Scheduler von Windows Konzepte und Strategien

Der Scheduler von Windows Konzepte und Strategien Gliederung Der Scheduler von Windows Konzepte und Strategien Daniel Lohmann 1 Grundbegriffe 2 Eigenschaften des Schedulers Grundlegende Eigenschaften Prioritätenmodell Dynamische Prioritätenanpassungen

Mehr

Prozesse und Scheduling

Prozesse und Scheduling Betriebssysteme für Wirtschaftsinformatiker SS04 KLAUSUR Vorbereitung mit Lösungen / Blatt 1 Prozesse und Scheduling Aufgabe 1 : Scheduling Gegeben seien die folgenden Prozesse und die Längen des jeweiligen

Mehr

RTOS Einführung. Version: Datum: Autor: Werner Dichler

RTOS Einführung. Version: Datum: Autor: Werner Dichler RTOS Einführung Version: 0.0.1 Datum: 20.07.2013 Autor: Werner Dichler Inhalt Inhalt... 2 RTOS... 3 Definition... 3 Anforderungen... 3 Aufgaben... 3 Eigenschaften... 4 Einteilung der Betriebssysteme...

Mehr

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

Vorbereitung zur Prüfung Echtzeitbetriebssysteme Vorbereitung zur Prüfung Echtzeitbetriebssysteme Zugelassene Hilfsmittel: Taschenrechner Bitte verwenden Sie keinen roten Farbstift! 1. Echtzeitbetriebssysteme - Allgemein (15 Punkte) 1.1. Warum setzen

Mehr

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind Betriebssysteme Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind Umfaßt z.b. auch Compiler, Interpreter und Dienstprogramme

Mehr

Threads Einführung. Zustände von Threads

Threads Einführung. Zustände von Threads Threads Einführung Parallelität : Zerlegung von Problemstellungen in Teilaufgaben, die parallelel ausgeführt werden können (einfachere Strukturen, eventuell schneller, Voraussetzung für Mehrprozessorarchitekturen)

Mehr

U6-1 Organisatories. U6-2 Motivation von Threads. U6-3 Vergleich von Thread-Konzepten. Organisatorisches

U6-1 Organisatories. U6-2 Motivation von Threads. U6-3 Vergleich von Thread-Konzepten. Organisatorisches U6 6. Übung U6 6. Übung U6-1 Organisatories U6-1 Organisatories Organisatorisches Zusätzliche Tafelübung zur S1-Klaurvorbereitung Besprechung Aufgabe 5 (crawl) OSIX-Threads Motivation Thread-Konzepte am

Mehr

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur Hochschule Mannheim Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun Übungsklausur Aufgabe 1: Definieren Sie den Begriff der Systemsoftware. Nennen Sie die Aufgaben und Komponenten

Mehr

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher Speicherverwaltung Aufgaben der Speicherverwaltung wichtigstes Betriebsmittel - neben dem Prozessor: Speicher Sowohl die ausführbaren Programme selbst als auch deren Daten werden in verschiedenen Speicherbereichen

Mehr

Seminar: Mobile Geräte QNX Einführung

Seminar: Mobile Geräte QNX Einführung Seminar: Mobile Geräte QNX Einführung Vortragender: Alex Maurer 2010/2011 Philipps Universität Marburg Echtzeitbetriebssystem QNX QNX ist ein RTOS (Real Time OS) vorhersagbares Zeitverhalten niedrige Latenz

Mehr

Der Scheduler von Windows 2000 Konzepte und Strategien

Der Scheduler von Windows 2000 Konzepte und Strategien Der Scheduler von Windows 2000 Konzepte und Strategien Daniel Lohmann lohmann@informatik.uni-erlangen.de Gliederung 1. Grundbegriffe 2. Eigenschaften des Schedulers Grundlegende Eigenschaften Prioritätenmodell

Mehr

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads Prozesse und Prozessmanagement des BS 1 Unterschied Prozess, Threads 1.1 Prozess Bei jedem Programm muss gespeichert werden, welche Betriebsmittel (Speicherplatz, CPU- Zeit, CPU-Inhalt,...) es benötigt.

Mehr

Systeme 1. Kapitel 5. Scheduling

Systeme 1. Kapitel 5. Scheduling Systeme 1 Kapitel 5 Scheduling Scheduling Verteilung und Zuweisung von begrenzten Ressourcen an konkurrierende Prozesse Beispiel: -> Zeitablaufsteuerung Zwei Prozesse zur gleichen Zeit rechenbereit auf

Mehr

5) Realzeitscheduling

5) Realzeitscheduling Inhalte Anforderungen Klassifizierungen Verschiedene Verfahren: FIFO, Round Robin, Least Laxity, EDF, fixed/dyn. Prio. Beispiele und Aufgaben Seite 1 Motivation Gegeben: Ein Einprozessorsystem, das Multiprogrammierung

Mehr

Musterlösung Prüfung WS 01/02

Musterlösung Prüfung WS 01/02 Musterlösung Prüfung WS 01/02 Fach: I3 Software-Technik (SEE, GRS, BTS) Teilprüfung: Betriebssysteme Tag: 29.01.2002 10:45 14.45 Raum: 1006 Bearbeitungszeit: 4 Stunden Name:... Matr.Nr.:... Punkte:...

Mehr

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend U7 6. Übung U7 6. Übung U7-1 Motivation von Threads U7-1 Motivation von Threads Besprechung Aufgabe 5 (crawl) OSIX-Threads Motivation Thread-Konzepte pthread-ai Koordinierung UNIX-rozesskonzept: eine Ausführungsumgebung

Mehr

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper Speicherverwaltung Real Mode Nach jedem starten eines PC befindet sich jeder x86 (8086, 80386, Pentium, AMD) CPU im sogenannten Real Mode. Datenregister (16Bit) Adressregister (20Bit) Dadurch lassen sich

Mehr

Domänenmodell: Fadenkommunikation und -synchronisation

Domänenmodell: Fadenkommunikation und -synchronisation Domänenmodell: Fadenkommunikation und -synchronisation Alexander Humphreys, Reinhard Rösch, Fabian Scheler 15. Mai 2003 Inhaltsverzeichnis 1 Domänendefinition 1 2 Domänenlexikon 1 3 Konzeptmodelle 4 4

Mehr

Betriebssysteme II SS 2012. Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404. Stand: 23.

Betriebssysteme II SS 2012. Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404. Stand: 23. Betriebssysteme II SS 2012 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 23. April 2014 Betriebssysteme / verteilte Systeme Betriebssysteme II (1/13)

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard Systeme I: Betriebssysteme Kapitel 4 Prozesse Wolfram Burgard Version 18.11.2015 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Dämon-Prozesse ( deamon )

Dämon-Prozesse ( deamon ) Prozesse unter UNIX - Prozessarten Interaktive Prozesse Shell-Prozesse arbeiten mit stdin ( Tastatur ) und stdout ( Bildschirm ) Dämon-Prozesse ( deamon ) arbeiten im Hintergrund ohne stdin und stdout

Mehr

Teil 2: Speicherstrukturen

Teil 2: Speicherstrukturen Inhalt Teil 2: Speicherstrukturen Hauptspeicher Cache Assoziativspeicher Speicherverwaltungseinheit ( Memory Management Unit ) 1 Virtueller Speicher Trennung von virtuellem Adreßraum (mit virtuellen Adressen)

Mehr

Real Time Operating Systems

Real Time Operating Systems Real Time Operating Systems Philipp Marschall Student der Medieninformatik an der Universität Ulm Helmholtzstraße 18, 89081 Ulm Email: philipp.marschall@uni-ulm.de Zusammenfassung Im Folgenden werden Voraussetzungen

Mehr

2 Echtzeitbetriebssysteme

2 Echtzeitbetriebssysteme 35 2 Echtzeitbetriebssysteme In den letzten Jahren hat sich die Automobilindustrie zu einem der wesentlichen Anwender von Echtzeitbetriebssystemen für eingebettete Systeme entwickelt. Relativ zeitig erkannten

Mehr

Technische Informa/k II

Technische Informa/k II Technische Informa/k II Prof. Dr. Bernd Freisleben Sommersemester 2013 Vorlesung zur Klausurvorbereitung Folie 00-2 Organisatorisches Klausur: Dienstag, 16.07.13, 12:00-14:00 Uhr im Hörsaal 00/0070 Zugelassene

Mehr

Softwaresysteme I Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2007 U9.fm

Softwaresysteme I Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2007 U9.fm U9 9. Übung U9 9. Übung U9-1 Überblick Besprechung Aufgabe 6 (printdir) Posix-Threads U9.1 U9-2 Motivation von Threads U9-2 Motivation von Threads UNIX-Prozesskonzept: eine Ausführungsumgebung (virtueller

Mehr

Technische Informatik II

Technische Informatik II Institut für Technische Informatik und Kommunikationsnetze Technische Informatik II Übung 1: Prozesse und Threads Aufgabe 1: Prozesse und Threads a) Wie verhält sich eine Applikation die aus mehreren Prozessen

Mehr

Übung zu Grundlagen der Betriebssysteme. 7. Übung 27.11.2012

Übung zu Grundlagen der Betriebssysteme. 7. Übung 27.11.2012 Übung zu Grundlagen der Betriebssysteme 7. Übung 27.11.2012 Threads Thread (Faden des (Kontrollflusses)): ist ein sequentieller Abarbeitungsablauf (Kontrollfluss) innerhalb eines Prozesses. Umfasst ein

Mehr

Inhaltsverzeichnis XII

Inhaltsverzeichnis XII 1 Einführung... 1 1.1 Computersysteme... 1 1.1.1 Einführung... 2 1.1.2 Aufgabe von Betriebssystemen... 3 1.1.3 Grundlegende Hardwaremodelle... 3 1.1.4 CPU-Registersatz... 7 1.1.5 Multicore-Prozessoren

Mehr

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Name: Matrikel-Nr: Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Bitte schreiben Sie leserlich und antworten Sie kurz und präzise. 1. Zeichnen Sie das Schichten-Modell eines Computersystems und markieren

Mehr

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161? Was machen wir heute? Betriebssysteme Tutorium 2 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1

Mehr

^ Springer Vi eweg. Grundkurs Betriebssysteme. Synchronisation, Prozesskommunikation, Virtualisierung. Architekturen, Betriebsmittelverwaltung,

^ Springer Vi eweg. Grundkurs Betriebssysteme. Synchronisation, Prozesskommunikation, Virtualisierung. Architekturen, Betriebsmittelverwaltung, Peter Mandl Grundkurs Betriebssysteme Architekturen, Betriebsmittelverwaltung, Synchronisation, Prozesskommunikation, Virtualisierung 4. Auflage ^ Springer Vi eweg 1 Einführung 1 1.1 Computersysteme 1

Mehr

Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX. Frank Erdrich Semester AI 7

Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX. Frank Erdrich Semester AI 7 Echtzeitprogrammierung und Echtzeitverhalten von Frank Erdrich Semester AI 7 Inhalt Einleitung Echtzeit und Echtzeitsysteme Echtzeitprogrammierung Real-Time Operating System Keil RTOS RTX Zusammenfassung

Mehr

POSIX-Threads. Aufgabe 9 SP - Ü U10.1

POSIX-Threads. Aufgabe 9 SP - Ü U10.1 U10 10. Übung U10 10. Übung POSIX-Threads Aufgabe 9 U10.1 U10-1 Motivation von Threads U10-1 Motivation von Threads UNIX-Prozesskonzept: eine Ausführungsumgebung (virtueller Adressraum, Rechte, Priorität,...)

Mehr

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel Aufgabe 1 (5 Punkte) (Multiple Choice) Beantworten Sie folgende Fragen durch Ankreuzen der richtigen Antwort. Für jede falsche Antwort wird ein Punkt abgezogen (es werden minimal 0 Punkte vergeben). Welche

Mehr

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Architektur Verteilter Systeme Teil 2: Prozesse und Threads Architektur Verteilter Systeme Teil 2: Prozesse und Threads 21.10.15 1 Übersicht Prozess Thread Scheduler Time Sharing 2 Begriff Prozess und Thread I Prozess = Sequentiell ablaufendes Programm Thread =

Mehr

Round-Robin Scheduling (RR)

Round-Robin Scheduling (RR) RR - Scheduling Reigen-Modell: einfachster, ältester, fairster, am weitesten verbreiteter Algorithmus Entworfen für interaktive Systeme (preemptives Scheduling) Idee: Den Prozessen in der Bereitschaftsschlange

Mehr

U9-3 Vergleich von Thread-Konzepten. U9-2 Motivation von Threads. U9-3 Vergleich von Thread-Konzepten (2) U9-1 Überblick

U9-3 Vergleich von Thread-Konzepten. U9-2 Motivation von Threads. U9-3 Vergleich von Thread-Konzepten (2) U9-1 Überblick U9 9. Übung U9 9. Übung U9-1 Überblick Besprechung Aufgabe 6 (printdir) Posix-Threads U9.1 User-Level Threads: Federgewichtige Prozesse Realisierung von Threads auf Anwendungsebene innerhalb eines Prozesses

Mehr

Lösungsskizzen zur Abschlussklausur Betriebssysteme

Lösungsskizzen zur Abschlussklausur Betriebssysteme Lösungsskizzen zur Abschlussklausur Betriebssysteme 24. Januar 2013 Name: Vorname: Matrikelnummer: Studiengang: Hinweise: Tragen Sie zuerst auf allen Blättern (einschlieÿlich des Deckblattes) Ihren Namen,

Mehr

Grundkurs Betriebssysteme

Grundkurs Betriebssysteme Grundkurs Betriebssysteme Architekturen, Betriebsmittelverwaltung, Synchronisation, Prozesskommunikation von Peter Mandl 3., akt. und erw. Aufl. 2013 Springer Vieweg Wiesbaden 2012 Verlag C.H. Beck im

Mehr

Ein Scheduler für alle Fälle Robert Kaiser, SYSGO AG

Ein Scheduler für alle Fälle Robert Kaiser, SYSGO AG Ein Scheduler für alle Fälle Robert Kaiser, SYSGO AG Am Pfaffenstein 14 D-55270 Klein-Winternheim Tel. +49 (0) 6136 9948-0 Fax. +49 (0) 6136 9948-10 PikeOS: multiple VM Umgebung VM #0 VM #1 VM #2... PikeOS

Mehr

Echtzeitfähige Ereignisgetriebene Scheduling-Strategien

Echtzeitfähige Ereignisgetriebene Scheduling-Strategien Friedrich-Alexander-Universität Erlangen-Nürnberg Ausgewählte Kapitel eingebetteter Systeme Echtzeitfähige Ereignisgetriebene Scheduling-Strategien Sven Kerschbaum 1. Einführung Bei einem eingebetteten

Mehr

Scheduler. Optimierung des Schedulings. Gliederung. Allgemeine Ziele. Synchronisationsprotokolle

Scheduler. Optimierung des Schedulings. Gliederung. Allgemeine Ziele. Synchronisationsprotokolle Aufgabe: Zuteilung der auf die CPU Automatisches Entwurfs- und Entwicklungssystem für harte Echtzeitsysteme Zuteilungsstrategien: Satz Jan Blumenthal 20.02.2003 Zyklisch 4 Gliederung Optimierung des Schedulings

Mehr

Übung zu Einführung in die Informatik # 10

Übung zu Einführung in die Informatik # 10 Übung zu Einführung in die Informatik # 10 Tobias Schill tschill@techfak.uni-bielefeld.de 15. Januar 2016 Aktualisiert am 15. Januar 2016 um 9:58 Erstklausur: Mi, 24.02.2016 von 10-12Uhr Aufgabe 1* a),

Mehr

(b) Worin besteht der Unterschied zwischen online und offline Scheduling?

(b) Worin besteht der Unterschied zwischen online und offline Scheduling? Universität Paderborn Fachgebiet Rechnernetze SoSe 2013 Konzepte und Methoden der Systemsoftware Präsenzübung 3 2013-05-06 bis 2013-05-10 Aufgabe 1: Scheduling - Grundbegriffe Bekanntlich gibt es für das

Mehr

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse)

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse) 5 CPU-Scheduling Im folgenden wird von Threads gesprochen. Bei Systemen, die keine Threads unterstützen, ist der einzige "Thread" eines Prozesses gemeint. Früher wurde dieser Thread synonym mit dem Begriff

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) 6. Übung http://ess.cs.tu-.de/de/teaching/ws2013/bsb/ Olaf Spinczyk olaf.spinczyk@tu-.de http://ess.cs.tu-.de/~os AG Eingebettete System Informatik 12, TU Dortmund Agenda Vorstellung

Mehr

Teil 3: Konzepte von Betriebssystemen

Teil 3: Konzepte von Betriebssystemen Teil 3: Konzepte von Betriebssystemen Inhalt: Einführung Prozesse Speicherverwaltung Virtueller Speicher 1 Definition eines Betriebssystems Was ist ein Betriebssystem? einfache Definition: Als Betriebssystem

Mehr

Klausur zum Kurs Betriebssysteme (1802) am 18. September 2010

Klausur zum Kurs Betriebssysteme (1802) am 18. September 2010 Fakultät für Mathematik und Informatik Lehrgebiet Kooperative Systeme Prof. Dr. Jörg M. Haake Klausur zum Kurs Betriebssysteme (1802) am 18. September 2010 Klausurort: Vorname Name: Adresse: Matrikelnummer:

Mehr

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen Seite 8 A UFGABE 11 INTERP ROZEßKOMMUNIKATION Das folgende Petrinetz zeigt zwei verkoppelte Prozesse P1 und P2. Die Transitionen a und b beschreiben Aktionen von P1, die Transitionen c und d Aktionen von

Mehr

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert? SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 2 2014-04-28 bis 2014-05-02 Aufgabe 1: Unterbrechungen (a) Wie unterscheiden sich synchrone

Mehr

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden ) Threads Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden ) Ein thread bearbeitet eine sequentielle Teilaufgabe innerhalb eines Prozesses Mehrere nebenläufige

Mehr

Softwarelösungen: Versuch 4

Softwarelösungen: Versuch 4 Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]

Mehr

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme Seite 1 Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme 1 11.07.2007 Hinweise: Bevor Sie mit der Bearbeitung der Aufgaben beginnen, müssen Sie auf allen Blättern Ihren Namen und Ihre

Mehr

Real-Time Operating Systems Ein Überblick

Real-Time Operating Systems Ein Überblick Real-Time Operating Systems Ein Überblick Stefan Tittel Universität Dortmund Proseminar: Werkzeuge und Techniken zur Spezifikation, Simulation und Implementierung von eingebetteten Systemen, 2004 1 Einführung

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 21.11.2012 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Testat nach Weihnachten Mittwoch

Mehr

U8 POSIX-Threads U8 POSIX-Threads

U8 POSIX-Threads U8 POSIX-Threads U8 POSIX-Threads U8 POSIX-Threads Motivation Thread-Konzepte pthread-api pthread-koordinierung U8.1 U8-1 Motivation von Threads U8-1 Motivation von Threads UNIX-Prozesskonzept: eine Ausführungsumgebung

Mehr

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant? Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Einleitung 1 2 der nebenläufigen Programmierung WS 2011/12 Stand der Folien: 18. Oktober 2011 1 TIDS

Mehr

Ausarbeitung im Rahmen der PG Autolab zum Thema: OSEK 1 -OS. geschrieben von Oliver Botschkowski

Ausarbeitung im Rahmen der PG Autolab zum Thema: OSEK 1 -OS. geschrieben von Oliver Botschkowski Ausarbeitung im Rahmen der PG Autolab zum Thema: OSEK 1 -OS geschrieben von Oliver Botschkowski 1 Offene Systeme und deren Schnittstelle für die Elektronik im Kraftfahrzeug 1 Oliver Botschkowski - OSEK-OS

Mehr

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis Einführung Einführung in in Betriebssysteme Betriebssysteme und und Theorie und Praxis Theorie und Praxis Oktober 2006 Oktober 2006 Prof. Dr. G. Hellberg Prof. Dr. G. Hellberg Email: hellberg@drhellberg.de

Mehr

examen.press Echtzeitsysteme Grundlagen, Funktionsweisen, Anwendungen Bearbeitet von Heinz Wörn

examen.press Echtzeitsysteme Grundlagen, Funktionsweisen, Anwendungen Bearbeitet von Heinz Wörn examen.press Echtzeitsysteme Grundlagen, Funktionsweisen, Anwendungen Bearbeitet von Heinz Wörn 1. Auflage 2005. Taschenbuch. xiv, 556 S. Paperback ISBN 978 3 540 20588 3 Format (B x L): 15,5 x 23,5 cm

Mehr

Aufbau eines Echtzeit-Betriebssystems für Embedded Systems

Aufbau eines Echtzeit-Betriebssystems für Embedded Systems Aufbau eines Echtzeit-Betriebssystems für Embedded Systems I. Begriffsdefinition II. Anforderungen III. Struktur und Komponenten Dr.-Ing. Ludwig Eckert, Seite 1 I. Begriffsdefinition: Embedded System Bsp.:

Mehr

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Ein Prozess kann unmittelbar vom Zustand 1. Running in den Zustand Ready 2. Running in den Zustand Blocked 3. Ready in den Zustand Running Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Der Adressraum

Mehr

Windows 2000 Scheduler

Windows 2000 Scheduler Windows 2000 Scheduler Konzepte von Betriebssystem Komponenten Friedrich Alexander Universität Erlangen Nürnberg Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Sommersemester 2005 Viktor

Mehr

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil 18.04.2002

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil 18.04.2002 Die L4-Mikrokern Mikrokern-Familie Hauptseminar Ansätze für Betriebssysteme der Zukunft 18.04.2002 Folie 1 Aufbau des Vortrags 1. Mikrokerne: Idee und Geschichte 2. L4: ein schneller Mikrokern 3. L4Linux:

Mehr

2.3 Prozessverwaltung

2.3 Prozessverwaltung Realisierung eines Semaphors: Einem Semaphor liegt genau genommen die Datenstruktur Tupel zugrunde Speziell speichert ein Semaphor zwei Informationen: Der Wert des Semaphors (0 oder 1 bei einem binären

Mehr

Echtzeitanforderung und Linux

Echtzeitanforderung und Linux Echtzeitanforderung und Linux Slide 1 - http://www.pengutronix.de - 21.01.2007 Definition Harte Echtzeit I Was zeichnet ein Echtzeitsystem aus? Zeitverhalten ist Teil der System-Spezifikation! Bei Embedded-Systemen

Mehr

Embedded- und RT-Betriebssysteme. Dipl.-Inf. J. Richling Wintersemester 2003/2004

Embedded- und RT-Betriebssysteme. Dipl.-Inf. J. Richling Wintersemester 2003/2004 Embedded- und RT-Betriebssysteme Dipl.-Inf. J. Richling Wintersemester 2003/2004 Überblick Fünfeinhalb Vorlesungen: Embedded- und RT-Betriebssysteme (heute) Beispiel: Windows CE (22.1.04) Beispiel: Windows

Mehr

Definitionenen und Grundlagen

Definitionenen und Grundlagen Echtzeitbetriebssysteme & verteilte Systeme, Teil 1 Dozent: Dr. rer. nat. Frank Dopatka Voraussetzung: Grundkenntnisse in Betriebssystemen & -Verfahren Ziel: Einführung in industrielle Echtzeitanforderungen,

Mehr

13. Übung mit Musterlösung

13. Übung mit Musterlösung 13. Übung mit Musterlösung 1 Lösung 1 Teil 1.Multiple Choice) Bewertung: Ein Punkt für richtige Antwort, für jede falsche Antwort ein Punktabzug. a) Für die Exponentialverteilung ist die Zeit bis zum nächsten

Mehr

DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep 2012. 4) Task-Verwaltung

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

Mehr

POSIX Echtzeit: Kernel 2.6 und Preempt-RT

POSIX Echtzeit: Kernel 2.6 und Preempt-RT POSIX Echtzeit: Kernel 2.6 und Preempt-RT Slide 1 - http://www.pengutronix.de - 21.01.2007 Echtzeit-Systemplanung Wenn das zeitliche Verhalten spezifiziert ist, kann auch spezifiziert werden, welche Applikationsteile

Mehr

Überlegungen beim Entwurf eines Betriebssystems

Überlegungen beim Entwurf eines Betriebssystems Überlegungen beim Entwurf eines Betriebssystems Schnelligkeit Schutz und Sicherheit Korrektheit Wartbarkeit Kommerzielle Faktoren Standards und offene Systeme Schnelligkeit Es ist schwierig, Kenngrößen

Mehr

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) 1 Einleitung... 2 2 Download und Installation... 3 2.1 Installation von WindowsXPMode_de-de.exe... 4 2.2 Installation von Windows6.1-KB958559-x64.msu...

Mehr

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes PThreads Prozesse und Threads Ein Unix-Prozess hat IDs (process,user,group) Umgebungsvariablen Verzeichnis Programmcode Register, Stack, Heap Dateideskriptoren, Signale message queues, pipes, shared memory

Mehr

Übung zu Grundlagen der Betriebssysteme. 13. Übung 22.01.2012

Übung zu Grundlagen der Betriebssysteme. 13. Übung 22.01.2012 Übung zu Grundlagen der Betriebssysteme 13. Übung 22.01.2012 Aufgabe 1 Fragmentierung Erläutern Sie den Unterschied zwischen interner und externer Fragmentierung! Als interne Fragmentierung oder Verschnitt

Mehr

Banner T 1 T 2. Bild T 7 T 8. Fließtext T 9

Banner T 1 T 2. Bild T 7 T 8. Fließtext T 9 Name, Vorname: Matrikel-Nr.: Aufgabe 1 Wir schreiben das Jahr 2010. Ein Desktop-System mit drei identischen Prozessoren P = {P 1, P 2, P 3 } wird zur Darstellung einer Webseite verwendet. Insgesamt neun

Mehr

OSEK-OS. Oliver Botschkowski. oliver.botschkowski@udo.edu. PG AutoLab Seminarwochenende 21.-23. Oktober 2007. AutoLab

OSEK-OS. Oliver Botschkowski. oliver.botschkowski@udo.edu. PG AutoLab Seminarwochenende 21.-23. Oktober 2007. AutoLab OSEK-OS Oliver Botschkowski oliver.botschkowski@udo.edu PG Seminarwochenende 21.-23. Oktober 2007 1 Überblick Einleitung Motivation Ziele Vorteile Einführung in OSEK-OS Architektur Task Management Interrupt

Mehr

Verteilte Echtzeit-Systeme

Verteilte Echtzeit-Systeme - Verteilte Echtzeit-Systeme Hans-Albrecht Schindler Wintersemester 2015/16 Teil B: Echtzeit-Betriebssysteme Abschnitt 9: Scheduling gemischter Prozessmengen CSI Technische Universität Ilmenau www.tu-ilmenau.de

Mehr

e) Welche Aussage zu Speicherzuteilungsverfahren ist falsch?

e) Welche Aussage zu Speicherzuteilungsverfahren ist falsch? Aufgabe 1: (1) Bei den Multiple-Choice-Fragen ist jeweils nur eine richtige Antwort eindeutig anzukreuzen. Auf die richtige Antwort gibt es die angegebene Punktzahl. Wollen Sie eine Multiple-Choice-Antwort

Mehr

U8-1 Motivation von Threads. U8-2 Vergleich von Thread-Konzepten. U8-2 Vergleich von Thread-Konzepten (2) Motivation

U8-1 Motivation von Threads. U8-2 Vergleich von Thread-Konzepten. U8-2 Vergleich von Thread-Konzepten (2) Motivation U8 POSIX-Threads U8 POSIX-Threads U8-1 Motivation von Threads U8-1 Motivation von Threads Motivation Thread-Konzepte UNIX-Prozesskonzept: eine Ausführungsumgebung (virtueller Adressraum, Rechte, Priorität,...)

Mehr

Inhaltsverzeichnis. 2.4 Thread-Systeme. 2.1 Was ist ein Prozess? 2.2 Scheduling. 2.3 Interprozesskommunikation

Inhaltsverzeichnis. 2.4 Thread-Systeme. 2.1 Was ist ein Prozess? 2.2 Scheduling. 2.3 Interprozesskommunikation Inhaltsverzeichnis Systemprogrammierung - Kapitel 2 Prozessverwaltung 1/21 2.1 Was ist ein Prozess? Definition Prozesszustände Prozesskontrollblöcke 2.4 Thread-Systeme Sinn und Zweck Thread-Arten Thread-Management

Mehr

Hochschule Darmstadt - Fachbereich Informatik - Fachschaft des Fachbereiches

Hochschule Darmstadt - Fachbereich Informatik - Fachschaft des Fachbereiches Hochschule Darmstadt - Fachbereich Informatik - Fachschaft des Fachbereiches Verwendung der bereitgestellten Virtuellen Maschinen»Einrichten einer Virtuellen Maschine mittels VirtualBox sowie Zugriff auf

Mehr

Zur Erinnerung: Threads. Threadverwaltung. Threads: Prioritäten. Beispiel Flugbuchungsprogramm. Nichtdeterminismus

Zur Erinnerung: Threads. Threadverwaltung. Threads: Prioritäten. Beispiel Flugbuchungsprogramm. Nichtdeterminismus Zur Erinnerung: Threads Programmierung (fortgeschrittene Konzepte) Threads, Monitore, Semaphore und speisende en Wolf-Ulrich Raffel (uli@wuraffel.de) Möglichkeiten, Threads zu definieren Bildung einer

Mehr

9) Speicherverwaltung

9) Speicherverwaltung Inhalte Speicherhierarchien Speicherzuteilung Adressbildung Lineare Adressbildung mit statischer/dynamischer Zuteilung (Segmentierung) Kompaktifizierung Lineare Adressbildung mit virtueller Adressierung

Mehr