4.3 Aufbau von Echtzeitbetriebssystemen

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

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

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

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

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

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

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

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

Eingebettete Systeme

Eingebettete Systeme Institut für Informatik Lehrstuhl für Eingebettete Systeme Prof. Dr. Uwe Brinkschulte Michael Bauer Eingebettete Systeme 5. Übungsblatt Lösungsvorschlag 1. Aufgabe (Prozessverwaltung) a) Vergeben Sie für

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

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

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

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

Es kann maximal ein Prozess die Umladestelle benutzen.

Es kann maximal ein Prozess die Umladestelle benutzen. SoSe 0 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung (Musterlösung) 0-06-0 bis 0-06-06 Aufgabe : Erzeuger/Verbraucher-Pattern Ein Getränkemarkt hat

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

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

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

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

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

Monitore. Klicken bearbeiten

Monitore. Klicken bearbeiten Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition

Mehr

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung Variante 1 Swisscom-Router direkt ans Netzwerk angeschlossen fixe IP-Adressen (kein DHCP) 1. Aufrufen des «Netz- und Freigabecenters». 2. Doppelklick auf «LAN-Verbindung» 3. Klick auf «Eigenschaften» 4.

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

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

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

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 3 12.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: a)

Mehr

zur WinIBW Version 2.3

zur WinIBW Version 2.3 zur WinIBW Version 2.3 Stand: 14. Dezember 2001 18. Januar 2002 BW Installation (lokal) Technische Voraussetzungen Softwarebeschaffung Installation Start Pica-Schriften Probleme Technische Voraussetzungen

Mehr

HTBVIEWER INBETRIEBNAHME

HTBVIEWER INBETRIEBNAHME HTBVIEWER INBETRIEBNAHME Vorbereitungen und Systemvoraussetzungen... 1 Systemvoraussetzungen... 1 Betriebssystem... 1 Vorbereitungen... 1 Installation und Inbetriebnahme... 1 Installation... 1 Assistenten

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Local Control Network Technische Dokumentation

Local Control Network Technische Dokumentation Steuerung von Hifi-Anlagen mit der LCN-GVS Häufig wird der Wunsch geäußert, eine Hi-Fi-Anlage in die Steuerung der LCN-GVS einzubinden. Auch das ist realisierbar. Für die hier gezeigte Lösung müssen wenige

Mehr

Tutorial - www.root13.de

Tutorial - www.root13.de Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk

Mehr

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! VO 182.711 Prüfung Betriebssysteme 8. November 2013 KNr. MNr. Zuname, Vorname Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Zusatzblätter: Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! 1 Synchronisation

Mehr

How to do? Projekte - Zeiterfassung

How to do? Projekte - Zeiterfassung How to do? Projekte - Zeiterfassung Stand: Version 4.0.1, 18.03.2009 1. EINLEITUNG...3 2. PROJEKTE UND STAMMDATEN...4 2.1 Projekte... 4 2.2 Projektmitarbeiter... 5 2.3 Tätigkeiten... 6 2.4 Unterprojekte...

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

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem

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

Anleitung zur Nutzung des SharePort Utility

Anleitung zur Nutzung des SharePort Utility Anleitung zur Nutzung des SharePort Utility Um die am USB Port des Routers angeschlossenen Geräte wie Drucker, Speicherstick oder Festplatte am Rechner zu nutzen, muss das SharePort Utility auf jedem Rechner

Mehr

Nutzung von GiS BasePac 8 im Netzwerk

Nutzung von GiS BasePac 8 im Netzwerk Allgemeines Grundsätzlich kann das GiS BasePac Programm in allen Netzwerken eingesetzt werden, die Verbindungen als Laufwerk zu lassen (alle WINDOWS Versionen). Die GiS Software unterstützt nur den Zugriff

Mehr

TeamSpeak3 Einrichten

TeamSpeak3 Einrichten TeamSpeak3 Einrichten Version 1.0.3 24. April 2012 StreamPlus UG Es ist untersagt dieses Dokument ohne eine schriftliche Genehmigung der StreamPlus UG vollständig oder auszugsweise zu reproduzieren, vervielfältigen

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

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen Um die maximale Sicherheit für das Betriebssystem und Ihre persönlichen Daten zu gewährleisten, können Sie Programme von Drittherstellern

Mehr

Formular»Fragenkatalog BIM-Server«

Formular»Fragenkatalog BIM-Server« Formular»Fragenkatalog BIM-Server«Um Ihnen so schnell wie möglich zu helfen, benötigen wir Ihre Mithilfe. Nur Sie vor Ort kennen Ihr Problem, und Ihre Installationsumgebung. Bitte füllen Sie dieses Dokument

Mehr

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

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper 1. Der Prozess beginnt im Zustand Erzeugt, nachdem sein Vaterprozess den Systemaufruf fork() (s.u.) abgesetzt hat. In diesem Zustand wird der Prozess-Kontext initialisiert. 2. Ist diese Aufbauphase abgeschlossen,

Mehr

Application Layer Active Network

Application Layer Active Network Folie 1 Application Layer Active Network Vortrag zur Diplomarbeit Entwicklung eines Netzwerk-Interface zur Steuerung der Datenkommunikation einer Netzwerkkarte geschrieben und gehalten von Martin Wodrich

Mehr

3.14 Die Programmieroberfläche Programmierung

3.14 Die Programmieroberfläche Programmierung 121 3.14 Die Programmieroberfläche Programmierung Besonderheiten Die Oberflächen der einzelnen Quellen (3S, KW-Software, Siemens-TIA-Portal, logi.cad 3, PAS4000) sind in sich unterschiedlich. Aber auch

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

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

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline Öffentliche Ordner Offline INDEX Öffentliche Ordner erstellen Seite 2 Offline verfügbar einrichten Seite 3 Berechtigungen setzen Seite 7 Erstelldatum 12.08.05 Version 1.1 Öffentliche Ordner Im Microsoft

Mehr

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser Seite 1 von 14 Cookie-Einstellungen verschiedener Browser Cookie-Einstellungen verschiedener Browser, 7. Dezember 2015 Inhaltsverzeichnis 1.Aktivierung von Cookies... 3 2.Cookies... 3 2.1.Wofu r braucht

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

Grundlagen der Technischen Informatik. Sequenzielle Netzwerke. Institut für Kommunikationsnetze und Rechnersysteme. Paul J. Kühn, Matthias Meyer

Grundlagen der Technischen Informatik. Sequenzielle Netzwerke. Institut für Kommunikationsnetze und Rechnersysteme. Paul J. Kühn, Matthias Meyer Institut für Kommunikationsnetze und Rechnersysteme Grundlagen der Technischen Informatik Paul J. Kühn, Matthias Meyer Übung 2 Sequenzielle Netzwerke Inhaltsübersicht Aufgabe 2.1 Aufgabe 2.2 Prioritäts-Multiplexer

Mehr

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.

Mehr

Im folgenden wird die Outlookanbindung an organice/pi beschrieben.

Im folgenden wird die Outlookanbindung an organice/pi beschrieben. Einleitung Einleitung Im folgenden wird die Outlookanbindung an organice/pi beschrieben. Wir unterscheiden dabei Termine und Kontakte. Über das Outlookmenü werden zusätzliche Aktivitäten gesteuert. "Normale"

Mehr

> Soft.ZIV. Maple Mathematisches Software System

> Soft.ZIV. Maple Mathematisches Software System > Soft.ZIV Maple Mathematisches Software System Inhaltsverzeichnis Organisation... 3 Hersteller... 3 Produkte... 3 Versionen... 3 Plattformen... 3 Lizenzierung... 3 Lizenzform... 3 Lizenzzeitraum... 3

Mehr

Dokumentation Schedulingverfahren

Dokumentation Schedulingverfahren Dokumentation Schedulingverfahren von Norbert Galuschek Gordian Maugg Alexander Hahn Rebekka Weissinger June 23, 2011 1 Contents 1 Aufgabe 3 2 Vorgehensweise 4 2.1 Warum Android.......................

Mehr

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Klicken Sie mit einem Doppelklick auf das Symbol Arbeitsplatz auf Ihrem Desktop. Es öffnet sich das folgende Fenster.

Klicken Sie mit einem Doppelklick auf das Symbol Arbeitsplatz auf Ihrem Desktop. Es öffnet sich das folgende Fenster. ADSL INSTALLATION WINDOWS 2000 Für die Installation wird folgendes benötigt: Alcatel Ethernet-Modem Splitter für die Trennung Netzwerkkabel Auf den folgenden Seiten wird Ihnen in einfachen und klar nachvollziehbaren

Mehr

Anleitung zur Inbetriebnahme einer FHZ2000 mit der homeputer CL-Software

Anleitung zur Inbetriebnahme einer FHZ2000 mit der homeputer CL-Software Anleitung zur Inbetriebnahme einer FHZ2000 mit der homeputer CL-Software Bei Verwendung eines PCs als Zentrale muss bei der Konfiguration der FHZ2000 die IP-Adresse des PCs angeben werden. Das ist in der

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

5 Speicherverwaltung. bs-5.1 1

5 Speicherverwaltung. bs-5.1 1 5 Speicherverwaltung bs-5.1 1 Pufferspeicher (cache) realer Speicher Primärspeicher/Arbeitsspeicher (memory) Sekundärspeicher/Hintergrundspeicher (backing store) (Tertiärspeicher/Archivspeicher) versus

Mehr

Swisscom TV Medien Assistent

Swisscom TV Medien Assistent Swisscom TV Medien Assistent Mithilfe dieses Assistenten können Sie Fotos und Musik, die Sie auf Ihrem Computer freigegeben haben, auf Swisscom TV geniessen. Diese Bedienungsanleitung richtet sich an die

Mehr

Installation und Inbetriebnahme von SolidWorks

Installation und Inbetriebnahme von SolidWorks Inhaltsverzeichnis FAKULTÄT FÜR INGENIEURWISSENSCHAFTEN I Prof. Dr.-Ing. Frank Lobeck Installation und Inbetriebnahme von SolidWorks Inhaltsverzeichnis Inhaltsverzeichnis... I 1. Einleitung... 1 2. Installation...

Mehr

Duonix Service Software Bedienungsanleitung. Bitte beachten Sie folgende Hinweise vor der Inbetriebnahmen der Service Software.

Duonix Service Software Bedienungsanleitung. Bitte beachten Sie folgende Hinweise vor der Inbetriebnahmen der Service Software. Duonix Service Software Bedienungsanleitung Sehr geehrte Kundin, sehr geehrter Kunde Bitte beachten Sie folgende Hinweise vor der Inbetriebnahmen der Service Software. Prüfen Sie ob Sie die Aktuellste

Mehr

Lizenzierung von System Center 2012

Lizenzierung von System Center 2012 Lizenzierung von System Center 2012 Mit den Microsoft System Center-Produkten lassen sich Endgeräte wie Server, Clients und mobile Geräte mit unterschiedlichen Betriebssystemen verwalten. Verwalten im

Mehr

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren Verwaltungsdirektion Informatikdienste Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren Inhaltsverzeichnis Einleitung... 3 Installation WSUS Server... 4 Dokumente... 4 Step by Step Installation...

Mehr

1 Voraussetzungen für Einsatz des FRITZ! LAN Assistenten

1 Voraussetzungen für Einsatz des FRITZ! LAN Assistenten AVM GmbH Alt-Moabit 95 D-10559 Berlin Faxversand mit dem FRITZ! LAN Assistenten Mit dem FRITZ! LAN Assistenten können Sie einen Computer als FRITZ!fax Server einrichten, über den dann Faxe von anderen

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY Vorteile der Verwendung eines ACTIVE-DIRECTORY Automatische GEORG Anmeldung über bereits erfolgte Anmeldung am Betriebssystem o Sie können sich jederzeit als

Mehr

E-Mail Adressen der BA Leipzig

E-Mail Adressen der BA Leipzig E-Mail Adressen der BA Jeder Student der BA bekommt mit Beginn des Studiums eine E-Mail Adresse zugeteilt. Diese wird zur internen Kommunikation im Kurs, von der Akademie und deren Dozenten zur Verteilung

Mehr

Handbuch USB Treiber-Installation

Handbuch USB Treiber-Installation Handbuch USB Treiber-Installation W&T Release 1.0 02/2003 by Wiesemann & Theis GmbH Microsoft und Windows sind eingetragene Warenzeichen der Microsoft Corporation Irrtum und Änderung vorbehalten: Da wir

Mehr

> Soft.ZIV. Mathematica Mathematisches Software System

> Soft.ZIV. Mathematica Mathematisches Software System > Soft.ZIV Mathematica Mathematisches Software System Inhaltsverzeichnis Organisation... 3 Hersteller... 3 Produkte... 3 Versionen... 3 Plattformen... 3 Lizenzierung... 3 Lizenzform... 3 Lizenzzeitraum...

Mehr

iphone-kontakte zu Exchange übertragen

iphone-kontakte zu Exchange übertragen iphone-kontakte zu Exchange übertragen Übertragen von iphone-kontakten in ein Exchange Postfach Zunächst muss das iphone an den Rechner, an dem es üblicherweise synchronisiert wird, angeschlossen werden.

Mehr

Leichte-Sprache-Bilder

Leichte-Sprache-Bilder Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen

Mehr

Systeme 1. Kapitel 10. Virtualisierung

Systeme 1. Kapitel 10. Virtualisierung Systeme 1 Kapitel 10 Virtualisierung Virtualisierung Virtualisierung: Definition: Der Begriff Virtualisierung beschreibt eine Abstraktion von Computerhardware hin zu einer virtuellen Maschine. Tatsächlich

Mehr

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de)

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) Übung zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) http://www11.in.tum.de/veranstaltungen/grundlagenbetriebssystemeundsystemsoftwarews1112

Mehr

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Handbuch timecard Connector 1.0.0 Version: 1.0.0 REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Furtwangen, den 18.11.2011 Inhaltsverzeichnis Seite 1 Einführung... 3 2 Systemvoraussetzungen...

Mehr

Tevalo Handbuch v 1.1 vom 10.11.2011

Tevalo Handbuch v 1.1 vom 10.11.2011 Tevalo Handbuch v 1.1 vom 10.11.2011 Inhalt Registrierung... 3 Kennwort vergessen... 3 Startseite nach dem Login... 4 Umfrage erstellen... 4 Fragebogen Vorschau... 7 Umfrage fertigstellen... 7 Öffentliche

Mehr

Powermanager Server- Client- Installation

Powermanager Server- Client- Installation Client A Server Client B Die Server- Client- Funktion ermöglicht es ein zentrales Powermanager Projekt von verschiedenen Client Rechnern aus zu bedienen. 1.0 Benötigte Voraussetzungen 1.1 Sowohl am Server

Mehr

Whitepaper. Produkt: combit Relationship Manager / address manager. Dateiabgleich im Netzwerk über Offlinedateien

Whitepaper. Produkt: combit Relationship Manager / address manager. Dateiabgleich im Netzwerk über Offlinedateien combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager / address manager Dateiabgleich im Netzwerk über Offlinedateien Dateiabgleich im Netzwerk über Offlinedateien

Mehr

Übungen zum Fach Betriebssysteme Kapitel 3

Übungen zum Fach Betriebssysteme Kapitel 3 Übungen zum Fach Betriebssysteme Kapitel 3 Prof. Dr. Kern & Prof. Dr. Wienkop Prozessverwaltung 1 Prozeßauslagerung Ein Betriebssystem, das die Zustände "rechnend", "bereit" und "wartend" sowie den künstlichen

Mehr

EasyWk DAS Schwimmwettkampfprogramm

EasyWk DAS Schwimmwettkampfprogramm EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage

Mehr

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich

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

AUTOMATISCHE E-MAIL-ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

AUTOMATISCHE E-MAIL-ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD! AUTOMATISCHE E-MAIL-ARCHIVIERUNG 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD! INHALT AUTOMATISCHE E-MAIL-ARCHIVIERUNG... 4 Eingehende E-Mails können

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

Verwendung des Terminalservers der MUG

Verwendung des Terminalservers der MUG Verwendung des Terminalservers der MUG Inhalt Allgemeines... 1 Installation des ICA-Client... 1 An- und Abmeldung... 4 Datentransfer vom/zum Terminalserver... 5 Allgemeines Die Medizinische Universität

Mehr

! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006

!  # $  % & Nicki Wruck worldwidewruck 08.02.2006 !"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst

Mehr

Zentrale Installation

Zentrale Installation Einführung STEP 7 wird durch ein Setup-Programm installiert. Eingabeaufforderungen auf dem Bildschirm führen Sie Schritt für Schritt durch den gesamten Installationsvorgang. Mit der Record-Funktion steht

Mehr

Leitfaden zur Installation von Bitbyters.WinShutdown

Leitfaden zur Installation von Bitbyters.WinShutdown Leitfaden zur Installation von Bitbyters.WinShutdown für Windows 32 Bit 98/NT/2000/XP/2003/2008 Der BitByters.WinShutDown ist ein Tool mit dem Sie Programme beim Herunterfahren Ihres Systems ausführen

Mehr

Lizenzen auschecken. Was ist zu tun?

Lizenzen auschecken. Was ist zu tun? Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.

Mehr

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Inhalt 1. Die Funambol Software... 3 2. Download und Installation... 3 3.

Mehr

Anbindung des eibport an das Internet

Anbindung des eibport an das Internet Anbindung des eibport an das Internet Ein eibport wird mit einem lokalen Router mit dem Internet verbunden. Um den eibport über diesen Router zu erreichen, muss die externe IP-Adresse des Routers bekannt

Mehr

Computeria Urdorf. Treff vom 25. März 2015. Clouds

Computeria Urdorf. Treff vom 25. März 2015. Clouds Computeria Urdorf Treff vom 25. März 2015 Clouds In der Wolke dargestellt die erforderliche Hardware für Cloud-Dienst Anbieter In der Wolke dargestellt Cloud-Dienste für Anwender Hyperlink Kostenlose

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

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

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

Mehr

Tipps und Tricks zu Netop Vision und Vision Pro

Tipps und Tricks zu Netop Vision und Vision Pro Tipps und Tricks zu Netop Vision und Vision Pro Anwendungen auf Schülercomputer freigeben und starten Netop Vision ermöglicht Ihnen, Anwendungen und Dateien auf allen Schülercomputern gleichzeitig zu starten.

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr