Windows CE als Echtzeitbetriebssystem

Größe: px
Ab Seite anzeigen:

Download "Windows CE als Echtzeitbetriebssystem"

Transkript

1 Universität Siegen Fachbereich 12 Praktische Informatik Seminar Sicherheitskritische Systeme SS 2004 Windows CE als Echtzeitbetriebssystem vorgelegt von Henning Peuser 05. August 2004 Betreuer: Dr. Jörg Niere

2 Zusammenfassung Die Verwendung von Echtzeitbetriebssystemen in eingebetteten System findet eine immer größere Verbreitung. In dieser Ausarbeitung werden die Kennzeichen eines Echtzeitsystems genannt und anschließend untersucht, ob das Produkt Windows CE von Microsoft den Anforderungen eines harten Echtzeitbetriebssystems genügt. Es wir festgestellt, daß dies nur bedingt zutrifft. Für weiche Anwendungen macht es den Einsatz möglich, während es für harte Anwendungen nicht geeignet ist, da wichtige Signale nicht immer verarbeitet werden.

3 1. Einleitung 1.1. Motivation Ein großer Automobilhersteller rief im Mai 2004 über eine halbe Million Fahrzeuge in seine Werkstätten zurück, um Probleme mit der elektronischen Bremskraftverstärkung zu beseitigen. Die elektronische Bremskraftkontrolle könne sich auf Grund unvorhergesehener Signale abschalten. Ein Mikrocomputer steuert das System während Sensoren das Verhalten von Fahrzeug und Fahrer überwachen. [9] Die Bremsanlage stellt ein sicherheitskritisches System unter Verwendung eines Echtzeitsystemes dar. Die Eigenschaft der Echtzeitfähigkeit stellt damit ein wesentliches Element im Zusammenhang mit sicherheitskritischen Systemen dar. Der Einsatz von Echtzeitbetriebssystemen ermöglicht in verschiedenen Einsatzszenarien Verfügbarkeit, Verläßlichkeit und Sicherheit. Damit nehmen sie einen hohen Stellenwert in der Industrie ein. Es soll daher untersucht werden, ob das Produkt Windows CE diesen Eigenschaften genügt Strukturierung Die vorliegende Arbeit ist in drei Teile gegliedert. Im ersten Teil, den Grundlagen, werden die verschiedenen Begriffe im Kontext definiert, das Produkt Windows CE vorgestellt sowie Anforderungen des Einsatzes erläutert. Im zweiten Teil, der Analyse wird das Produkt Windows CE anhand seiner Eigenschaften auf die Echtzeitfähigkeit hin überprüft. Im letzten Teil widme ich mich einer darstellenden Bewertung der Technik. 2. Grundlagen 2.1. Definitionen Zu Beginn werden die zentralen Begriffe im Kontext von Echtzeitbetriebssystemen definiert Eingebettetes System Eingebettete Systeme sind informationsverarbeitende Systeme, die unter Nutzung informationstechnologischer Mittel in ihre Anwendungsumgebungen physisch integriert und deren Eigenschaften durch diese Anwendungsumgebungen bestimmt sind. [11]

4 Mit dieser Definition wird auf das zentrale Merkmal der Informationsverarbeitung verwiesen und festgestellt, daß Eingebettete Systeme je nach Anwendungsgebiet eine unterschiedliche physische Gestalt annehmen können Sicherheitskritisches System Ein System heißt sicherheitskritisch, wenn durch dessen Fehlverhalten Leben und hohe Sachwerte gefährdet sind. Bei der Entwicklung und Unterhaltung eines sicherheitskritischen Systems sollten intensive Anstrengungen unternommen werden, um die hohen Anforderungen an die Sicherheit zu gewährleisten. [12] Bei der Entwicklung sicherheitskritischer Systeme werden Redundanz und formale Methoden als Werkzeuge eingesetzt Echtzeitbetriebssystem Ein Echtzeitbetriebssystem oder auch RTOS (real time operating system) ist ein Betriebssystem mit zusätzlichen Echtzeitfunktionen für die Einhaltung von Zeitbedingungen und die Vorhersagbarkeit des Prozeßverhaltens. [7] Ein Echtzeitbetriebssystem ist ein Baustein bei der Erstellung eines Echtzeitsystems. Es wird durch ständige Betriebsbereitschaft charakterisiert und gefordert, rechtzeitig auf externe Ereignisse zu reagieren. Der wesentlichste Punkt für Echtzeitsysteme ist die rechtzeitige Reaktion. Rechtzeitig bedeutet, daß jeder Task 1 eine bestimmt Zeitvorgabe hat. Diese Beschreibung findet die breiteste Zustimmung in der Fachliteratur. Der Unterschied zu einer anderen Definition besteht darin, daß mindestens eine Aktion eines Systems zeitlichen Begrenzungen unterliegt (und nicht alle Aktionen). Bezogen auf oben genannte Bremsanlage bedeutet Echtzeit, daß ein entsprechender Task beendet sein muß. Weitere Merkmale neben der Rechtzeitigkeit sind Kalkulierbarkeit, Robustheit, Fähigkeit für den Dauerbetrieb, Lieferung sicherer Ereignisse sowie eine kontrollierte Fehlerbearbeitung. Das Echtzeitsystem ist außerdem von der Umgebung abgeschottet. Grundsätzlich ist zu fragen, ob ein Echtzeitsystem zwangsläufig ein Betriebssystem benötigt. Im Grunde ist die Abarbeitung eines einzigen oder einiger weniger Programme einfach und es existieren auch Echtzeitsysteme ohne Betriebssystem. Dennoch machen eine steigende Anzahl von Programmen und erforderlicher grundlegender Funktionalität den Aufwand immer größer. Das Betriebssystem bietet Basisfunktionen für alle Anwendungen an und vereinfacht diese damit. [4] Harte und Weiche Echtzeitsysteme Die Gültigkeitsdauer von Eingangsdaten bzw. Änderungsgeschwindigkeit von externen Ereignissen bestimmen die zeitlichen Deadlines 2 der Echtzeitsysteme. Man unterscheidet in Harte und Weiche Echtzeitsysteme. Der Unterschied zwischen einem harten und einem wei- 1 Ein Task ist ein auf unterster Systemebene (Kernel) laufender Prozeß 2 Jeder Task hat eine bestimmt Zeitvorgabe, die sog. Deadline

5 chen Echtzeitsystem besteht aufgrund der Systemanforderungen: Die Bezeichnung hart trifft zu, wenn das System auf keinen Fall eine Deadline verpassen soll und weich, wenn das System eine Deadline verpassen darf. Die Merkmale eines harten Echtzeitsystems sind: - unter keinen Umständen dürfen Verzögerungen akzeptiert werden - Ergebnisse sind nutzlos, wenn sie zu spät erfolgen - katastrophale Störungen, wenn die Deadline nicht eingehalten wird - unendlich hohe Kosten für verpaßte Deadlines Beispiele dazu sind die Steuerung eines Kernreaktors, ein Antiblockiersystem eines Automobils oder Überwachungssysteme auf einer Intensivstation. Ein weiches Echtzeitsystem wird beim verspäteten Eintreffen der Ergebnisse durch niedrige Kosten und Akzeptierung einer geringeren Performanz charakterisiert. Beispiele für weiche Systeme sind eine digitale Telefonanlage, eine Steuerung unkritischer chemischer Prozesse oder ein Verkaufsautomat. [7] 2.2. Abgrenzung Windows CE/ XP Windows CE ist ein Echtzeitbetriebssystem für eingebettete Systeme des Herstellers Microsoft. Bei diesem Hersteller ist es üblich, daß eine gewisse Marktumschließung stattfindet, so daß versucht wurde, eine ganze Produktpalette für eingebettete System zu entwickeln. Somit gibt es nicht nur Windows CE, das für kleine Anwendungen wie PDA und mobile Endgeräte entwickelt wurde, sondern auch Windows XP Embedded für große Systeme. Diese Vorgehensweise setzt einen modularen Aufbau voraus, der nach oben hin skalierbar ist Gemeinsamkeiten Das äußere Erscheinungsbild von Windows CE ähnelt dem der gängigen Windows Betriebssysteme. Weiterhin kann man ebenfalls die API (application programming interface) nutzen. Während sich die CE Linie auf den Bereich der Handhelds und PDAs ausdehnt, erkannte Microsoft, daß viele eingebettete Systeme nicht denselben Anforderungen unterworfen waren und ganz im Gegensatz zu diesen kleinen Geräten gerade nicht über nur begrenzten Platz und Speicher verfügten. Es entstand Windows NT Embedded und einige Jahre später der Nachfolger Windows XP Embedded. Diese Betriebssysteme versteiften sich eher auf die PC-ähnlichen eingebetteten Systeme. Also all die Systeme, die auf ein umfangreiches Betriebssystem zurückgreifen konnten, da es keine Unterbringungsprobleme gab. Windows NT Embedded war allerdings mit Vorsicht zu genießen. In einer Fallstudie versuchte man, die Pro und Kontras gegeneinander abzuwiegen und kam zu dem Schluß, daß die Verwendung dieses Systems teilweise umständlich ist und eine hohe Einarbeitung voraussetzt. Zudem muß man sich in Anbetracht der kurzen Produktzyklen immer vor Augen halten, daß die Vorteile, die man gewinnt, auf Dauer nicht unbedingt vorteilhaft sind. [5] Zur MS Embedded Serie gehören Windows CE.NET, Windows XP Embedded und das Windows 2000 Server Appliance Kit.

6 2.2.2 Unterschiede Windows CE besitzt im Gegensatz zur üblichen PC-Version von Windows einen deutlich kleineren Kernel. Da diese hardwaremäßig entsprechend unterschiedlich sind, können die vorhandenen Hardwaretreiber von Windows NT/XP nur unter Umständen verwendet werden. Windows XP Embedded bietet im Gegensatz zur schlanken Version CE verschiedene Funktionen. Dazu gehören Backoffice-Funktionalität, die Erweiterung um Serverkomponenten, eine Mehrbenutzerverwaltung und größere Caching-Eigenschaften. [6] 2.3. Anforderungen des Einsatzes von Echtzeitbetriebssystemen Aufbau Beim Aufbau eines Echtzeitsystems im Allgemeinen kommt es auf verschiedene Eigenschaften an. Ein Echtzeitsystem besteht aus einem Rechnerteil (Hardware), einem Echtzeitbetriebssystem mit den für die Anwendung angepaßten Bestandteilen, und der Applikationssoftware. Letztere beinhaltet in der Regel die Anwendung, d.h. dort werden die vom Anwender gewünschten Aufgaben ausgeführt. Diese drei Komponenten müssen im Zusammenspiel das entsprechende Antwortverhalten, d.h. den zeitlichen Determinismus garantieren. Dabei gilt, je härter die zeitlichen Anforderungen sind, desto schneller muß die eingesetzte Hardware sein, oder desto simpler muß das eingesetzte Betriebssystem sein. Echtzeitbetriebssysteme besitzen einen Mikrokernel. Dies ist im Prinzip ein hardwareunabhängiger effizienter Scheduler 3 mit präzise definierten Schnittstellen. Das Echtzeitbetriebssystem bildet eine Schale um den Mikrokernel, die von Applikationsprogrammen nicht durchdrungen wird. Der Mikrokernel beinhaltet die Systemuhr, den Scheduler und die Semaphorenverwaltung 4. Er steuert die Rechenprozesse des Rechensystems und realisiert das Ablaufen derselben. Ein Task ist eine organisatorische Einheit, die aus ausführbarem Programmcode, eigenem Speicher und Variablen besteht. Diese besitzt zudem eine Priorität und einen Taskzustand. Man kann einen Task auch als lebendige Einheit bezeichnen, der eine Lebensdauer hat und nach entsprechender Zeit wieder aus dem System genommen wird. Der Task wird mit seiner Priorität in eine Kernelliste eingetragen. Der Kernel verwaltet mehrere Listen und für den richtigen zeitlichen Ablauf wird eine Ready Queue angelegt, die die einzelnen ablaufbereitenden Tasks beinhaltet. Manipuliert der Kernel eine seiner Listen aufgrund bestimmter Ereignisse, so tritt er in den Kernel State. Wenn dieser Zustand verlassen wird, aktiviert sich der Scheduler und arbeitet mit einem bestimmten Algorithmus die Rechenprozesse ab. Der Scheduler prüf anhand der Ready Queue, welchen Task der Mikroprozessor zugeteilt bekommt. In prioritätsgesteuerten Systemen bekommt derjenige Task die Rechenzeit zugeteilt, der ablaufbereit ist und die höchste Priorität besitzt. Die entsprechenden Deadlines können nach oben genannter Definition eines Echtzeitbetriebssystems harte oder weiche Kennzeichen besitzen. Die ausgeführten Tasks sind meistens bekannt und besitzen ebenfalls bekannte Prioritäten. Es wird deutlich, daß es beim Aufbau eines Echtzeitbetriebssystems auf garantierten statt hohen Durchsatz ankommt. Weiterhin bedeutend ist auch die Adaptierbarkeit auf spezielle Probleme. [2] 3 Ein Scheduler ist ein Taskmanager, der den Ablauf von Prozessen steuert 4 Semaphoro ital. Ampel, Zeichenträger

7 2.3.2 Speicherverwaltung Die Speicherverwaltung beeinflußt die Effizienz eines Echtzeitbetriebssystems sehr stark. Man kann die Speicherverwaltung dabei in drei Arten unterscheiden. Die erste betrifft das Kompilieren und statische Binden der Programme. Sie ist Aufgabe des Compilers und Linkers und unterscheidet das Echtzeitbetriebssystem prinzipiell nicht von herkömmlichen Betriebssystemen. Die zweite Speicherverwaltung findet beim dynamischen Binden (Dynamic Linker) statt. Diese beschränkt sich nur auf Echtzeitbetriebssysteme. Hierzu sind eine Reihe von speziellen Listen und Mechanismen notwendig, um den im System vorhandenen Arbeitsspeicher zur Laufzeit mit Programmcode zu füllen. Die letzte Speicherverwaltung gewinnt vor allem für die Programmiersprache C an Bedeutung. Dort sollen entsprechende Routinen so geschrieben sein, daß sie zur Laufzeit allokierte, d.h. belegte oder reservierte Speicher, nach Beendigung der Aufgabe wieder freigeben. Hier liegt die Hauptaufgabe des Betriebssystems, den gesamten Speicher zu verwalten. Eine virtuelle Speicherverwaltung ist nicht zwingend erforderlich oder sogar störend, weil sie Performanzeinbußen nach sich tragen kann Fehlerbehandlung Echtzeitsysteme zeichnen Sprachmittel zur Reaktion und Nutzung von sogenannten asynchronen Ereignissen aus, z.b. Interrupts, Signale, spezielle Elemente zur zeitlichen Steuerung und Behandlung von Ausnahmen. Der Hauptunterschied zu gewöhnlichen Betriebssystemen liegt in der gezielten Nutzung dieser Sprachmittel. Der reguläre Programmablauf kann von externen (Interrupts) oder internen Ereignissen (Signale) unterbrochen werden. Interrupts sind elektrische Signale, die direkt oder über Interrupt Controller an den Mikroprozessor gemeldet werden. Echtzeitsysteme sind für kürzeste Reaktionszeiten konstruiert, so daß jeder externe Interrupt in der Lage sein muß, den aktuell ablaufenden Task zu unterbrechen. Die Zeit, die vom Anlegen des Interrupts bis zum Start der entsprechenden Interrupt Service Routine vergeht, nennt man Interrupt Latenzzeit. Sie wird oftmals zum Vergleich der verschiedenen Echtzeitsysteme herangezogen (s.u.). Typische Interruptlatenzzeiten liegen bei heutigen Echtzeitbetriebssystemen im Bereich um die 10 Mikrosekunden. Sie hängen neben der Effizienz des Betriebssystems wesentlich vom eingesetzten Mikroprozessor ab. Ein Betriebssystem sollte in der Lage sein, den Großteil aller Softwarefehler, die sich direkt auf das Gesamtsystem auswirken, so abzufangen, daß zumindest noch eine Meldung über den Grund des Fehlers am Bildschirm erscheint. Es sollte also auch noch nach einem Windows Blue Screen zuverlässig weiterarbeiten können. [2] Synchronisation Echtzeitsysteme sind meistens Multitasking-Systeme. Dort fordert der zu steuernde Prozeß in zahlreichen Fällen die parallele Bearbeitung von Rechenprozessen. Daher kann bei einem preemptiven Multitasking jeder Prozeß mehrere Threads starten. Für den Mikroprozessor gibt

8 es allerdings nur die sequentielle Bearbeitung von Rechenprozessen. Dazu gibt es drei Möglichkeiten Prozesse zu synchronisieren. Ein erster Ansatz besteht in der Synchronisation der Rechenprozesse im Mikroprozessor zu äußeren Abläufen im zu steuernden Prozeß. Diese Synchronisation stimmt den Ablauf der Rechenprozesse mit ihren zeitlichen und logischen Anforderungen mit dem Ablauf des technischen Prozesses ab. So wird z.b. ein Rechenprozeß für das Einlesen von Daten blockiert bis alle Daten eingelesen sind. Würde man den Einleseprozeß nicht warten lassen, bis die Daten vollständig sind, so würde die weitere Verarbeitung mit einem unvollständigen Satz Daten arbeiten, was mit Sicherheit zu Fehlern führen würde. Ein weiterer Ansatz besteht in der Synchronisation der Rechenprozesse untereinander zur gemeinsamen Verwendung von Betriebsmitteln. Diese Synchronisierung bedeutet einfach ausgedrückt, daß ein Rechenprozeß so lange blockiert wird, bis ein zweiter Rechenprozeß mittels eines entsprechenden Signals meldet, daß er am Synchronisationspunkt angekommen ist. Synchronisation bedeutet auch hier das Einfügen von Wartebedingungen. Synchronisation heißt für das Echtzeitsystem immer ein Verlust an Performanz, da sich ständig einer oder mehrere Rechenprozesse in einem Wartezustand befinden. Für das Systemdesign folgt daraus, daß die Anzahl der Synchronisierungspunkte innerhalb eines Echtzeitsystems möglichst klein zu halten ist. Die Umsetzung der Synchronisation geschieht durch Sprachmittel des Echtzeitbetriebssystems. Je nach Ausstattung besitzt ein Echtzeitbetriebssystem eine Reihe von Konstrukten, die es erlauben, eine beliebige Anzahl von Rechenprozessen während des Ablaufs zu synchronisieren. Effiziente Echtzeitbetriebssysteme zeichnen sich durch sehr wenige zusätzliche Verwaltungssoftware aus. Das bekannteste Sprachmittel zur Synchronisation von Rechenprozessen sind die sogenannten Semaphoren (s.o.). Dabei funktionieren Semaphoren ähnlich wie Ampeln. Stellt man sich eine Kreuzung als gemeinsame Ressource mehrerer Fahrzeuge vor, so müssen diejenigen Fahrzeuge, die abbiegen wollen, an der roten Ampel warten, bis der Geradeausverkehr durchgefahren ist. Entsprechendes gilt bei der umgekehrten Ampelschaltung. Genauso verhält es sich mit Semaphoren. Ein Rechenprozeß A muß warten bis die Semaphore grünes Licht anzeigt. Da Rechenprozesse keine Signalleuchten verstehen, hat man sich auf folgende Semaphorenoperationen und Definitionen zur Synchronisation von Rechenprozessen geeinigt. 1. Semaphorvariablen (SV) sind Ganzzahlen aus dem Bereich von null bis unendlich. Auf die Menge der Semaphoren werden zwei mathematische Operationen definiert. 2. Inkrementieren um 1, auch mit V(SV) bezeichnet; je nach Definition der SV kann sie nur die Werte 0 und 1 annehmen (Binäre Semaphore). In diesem Fall hätte das Inkrementieren einer auf 1 gesetzten Semaphore keinen Effekt. Daneben gibt es noch sogenannte Counting Semaphoren, die beliebig oft inkrementiert werden können. 3. Dekrementieren um 1 und Überprüfung, auch mit P(SV) bezeichnet; ist der Wert von SV nach erfolgter Operation positiv, so wird SV um eins erniedrigt. Würde der Wert -1 werden so wird die Operation nicht ausgeführt. Genau für diesen Fall würde der Rechenprozeß, der die Dekrementierung vornehmen wollte, blockiert werden.

9 Da Rechenprozesse unter den genannten Umständen auf eine Semaphore blockieren, muß die Verwendung von Semaphoren sehr sorgfältig geplant werden. Insbesondere im Verlauf der Programmentwicklung können sich unvorhergesehene Zustände einstellen, die dazu führen, daß Rechenprozesse ungewollt blockieren. Daraus kann sich für das Gesamtsystem ein Fehlerzustand ergeben, aus dem das System ohne Hilfe nicht mehr heraus kommt. Man bezeichnet derartige Zustände als Dead Locks (dt. Verklemmungen). Aufgrund der Möglichkeit, daß Semaphoren Verklemmungen hervorrufen können, dürfen z.b. innerhalb von Interrupt Service Routinen (ISR) innerhalb von Systemen wie VxWorks 5 keine Dekrementierungsoperationen P(S) vorgenommen werden. Damit ist sichergestellt, daß eine ISR nicht blockieren kann. Dies ist notwendig, da eine ISR aufgrund ihrer hohen Priorität (höher als alle anderen Rechenprozesse) bei einer Verklemmung mit Sicherheit einen fatalen Systemzustand provozieren würde. Es gibt also neue Probleme, die es in gewöhnlichen Betriebssystemen nicht gibt. Dies ist die Prioritäteninvertierung durch Blockade infolge der Nutzung von Ressourcen. Die Invertierung bezieht sich auf eine Situation, bei der ein Thread niedrigerer Priorität die Ausführung eines Threads höherer Priorität verhindert, indem er eine Ressource blockiert, während beide um die selben Ressourcen konkurrieren. Um diese Situation zu korrigieren und um den Thread höherer Priorität zu befreien, erlaubt man dem Thread niedrigerer Priorität, sich vor den Thread höherer Priorität zu stellen, bis er die Ressource nicht mehr benötigt. Als Lösung dazu gibt es die Priority Inheritance (Vererben) und das Priority Ceiling (Obergrenze), was auch im Folgenden analysiert wird. Priority Inheritance bedeutet, daß die Antwortzeiten verbessert werden, weil durch das Blocken von Threads niedriger Priorität diese automatisch höhere Priorität übernehmen. [2] 3. Analyse 3.1. Kennzeichen von Windows CE Ursprünglich wurde Windows CE Anfang der 1990er Jahre als Betriebssystem für tragbare Rechner unterhalb eines Notebooks konzipiert. Daraufhin gab es verschiedene Entwicklungen, z.b. ein webpad-ähnliches Gerät mir Schrifterkennung. Allerdings kam es in dieser Form nie über Prototypen hinaus. Am Rande dieser Entwicklungen entwickelte ein Microsoftteam einen Kernel von Grund auf neu. Dieser Kernel hat sich durchgesetzt und wurde 1996 durch Windows CE 1.0 auf den Markt gebracht. Seit 2002 ist das Betriebssystem in das Microsoft-eigene Framework.NET eingefügt. Dieses Framework ist eine strategische Plattform zur Softwareentwicklung, die aber prinzipiell offen und betriebssystemunabhängig ist. Es steht als Sammelbezeichnung für alle möglichen Programmiersprachen wie C#.NET, VB.NET, C++.NET, ASP.NET, JScript.NET, ADO.NET und XML.NET. Ziel dabei ist, unterschiedliche Denkweisen, Schnittstellen und Datenaustauschmechanismen zu vereinheitlichen. Die aktuelle Version 5.0 von Windows CE wurde von Microsoft im Juli 2004 veröffentlicht. 5 VxWorks ist ein Echtzeitbetriebssystem von Wind River Systems, das z.b. bei der Pathfinder-Mission zum Mars eingesetzt wurde

10 Windows CE ist ein hartes Echtzeitbetriebssystem mit der Unterstützung von verschiedenen Prozessorfamilien (z.b. Intel, MIPS, Alpha). Weiterhin werden mehrere Prozessortypen unterstützt. Dies sind zum einen Intels 386, 486 und Pentium, zum anderen aber auch Power PC 403, 601 usw. Neuerdings konzentriert sich Microsoft auf Intel StrongARM Prozessoren, speziell SA1110 und SA1111 mit 206 MHz Taktfrequenz, einer 32-bit Architektur und einem 100 MHz Bussystem. Das Kernbetriebssystem besteht aus mehreren großen Softwaremodulen. Ein Teil verwaltet Prozesse, Speicher und Ressourcen, ein weiteres Modul ist für das Dateisystem mit permanenter Speicherung von Informationen zuständig. Das GWE (Graphics, Windowing, Event Subsystem) steuert die Grafikausgabe und fensterbezogene Features. Als viertes Modul gibt es eine Kommunikationsschnittstelle für den Informationsaustausch mit anderen Geräten. Zusätzlich wird die Verwaltung von installierbaren Gerätetreibern (Hardwareanbindung) und die Komponentenanbindung COM bzw. OLE unterstützt. Windows CE bietet ab Version Prioritätsstufen, acht davon für Applikationen. Ein critical process manager erkennt Abstürze und läßt das System auch nach diesem Blue Screen zuverlässig weiterarbeiten. Die Prioritätsstufen des früheren Windows CE kann man in drei Bereiche teilen. Die ersten beiden Level 0 und 1 sind für Echtzeitprozesse und Gerätetreiber bereitgestellt, die drei weiteren Level 2 bis 4 sind für die Kernelprozesse und normale Applikationen gedacht, und die letzten beiden Stufen sind Anwendungen zugeordnet, die jederzeit unterbrochen werden können. Windows CE ist ein preemptives Multitasking Betriebssystem. Daher kann jeder Prozeß mehrere Threads starten. Maximal können 32 Prozesse laufen, meist sind acht vom System reserviert. Ein weiteres Kennzeichen ist, daß Dienste und APIs 6 zum Teil kompontenenbasiert sind. Eine Untermenge der von herkömmlichen Windows-Systemen bekannten Win32-API wird unterstützt und bietet mehr als 1000 Funktionen. [6] Des weiteren läßt sich ein Betriebssystemkernel mit einem Speicherbedarf von 200kB in einem ROM 7 realisieren, was sehr gut ist. Windows CE bietet geschachtelte Interruptbehandlung, um verzögerte hochpriorisierte Interrupts zu vermeiden (Interrupt-Priorisierung). Damit ist das o.g. Priority Ceiling erreicht. Die normale Interruptbehandlung besteht aus zwei Teilen. Zuerst führt der Systemkern eine Interruptanfrage aus, um zu entscheiden, welche Interrupt Service Routine (ISR) für die Quelle verantwortlich ist. In dieser Routine wird der entsprechende Interrupt Service Thread (IST) benachrichtigt. Danach entscheidet der Scheduler, welcher Prozeß (Thread) als nächstes abzuarbeiten ist. Falls der IST der Prozeß mit der höchsten Priorität ist, wird dieser ausgeführt. In diesem Prozeß wird dann die notwendige Unterbrechnung (Interrupt) behandelt. Einer der signifikanten Aspekte der Echtzeit ist die Fähigkeit, eine Unterbrechung in einer bestimmten Zeit auszuführen. Dabei spielen die entsprechenden ISR- und IST-Latenzen eine Rolle. Diese wurden unter erläutert (s.a. 3.3.). Ein wichtiger Aspekt besteht auch in dem Verfahren des XIP, dem execution in place. Dabei wird nicht der übliche Datenpfad einer Rechnerarchitektur verwendet, sondern die Befehle aus dem ROM direkt ausgeführt. Nur bei Bedarf wird in den Programmspeicher umkopiert. [10] 6 API: Application Programming Interface; Anwendungsschnittstelle 7 ROM: Read Only Memory; Speicher, der auch nach Wegnahme der elektrischen Spannung den Zustand behält

11 3.2. Schwachpunkte Bei Windows CE gibt es derzeit keine dynamischen Prioritäten. Weiterhin kann es zu einem möglichen Verlust von Interrupts durch zweistufige Bearbeitung kommen. Daher gibt es stark variierende Reaktionszeiten, was einer rechtzeitigen Reaktion entgegensteht. Allerdings ist dies stark von der Systemauslastung abhängig. Dieser Zusammenhang kann den Einsatz von Windows CE unmöglich machen, weil das System unter Umständen versagt Möglichkeiten des Einsatzes Anforderungen an die Echtzeitfähigkeit bestehen in der Unterstützung von Threadprioritäten und der Vermeidung von Prioritäteninvertierungen. Die vorgenannte Synchronisation muß vorhersagbar sein. Im Zusammenhang mit einem vorhersagbaren zeitlichen Verhalten des Betriebssystems müssen dazu folgende Elemente bekannt sein: - maximale Zeit der Sperrung von Interrupts - maximale Zeit, die die Behandlung eines Interrupts dauert - maximale Interrupt Latenz sowie - maximale Ausführungszeit von Systemrufen. Die Preemption basiert auf Threadpriorität. Das heißt, daß Threads mit hoher Priorität zuerst laufen. Threads niedriger Priorität laufen nicht, bevor alle mit höherer Priorität fertig sind (oder blockieren). Eine Ausnahme stellen die Threads auf Level 0 dar, die nicht preemptiv laufen, da das Betriebssystem sonst versagen würde. Windows CE erlaubt Memory Mapping. Es können also mehrere Prozesse den gleichen physikalischen Speicher benutzen. Daraus folgen schnelle Datentransfers zwischen Prozessen und eine Erhöhung der Echtzeitperformanz. [8] 3.4. Bedrohungen Das zu betrachtende System besitzt eine Timerauflösung von 1ms (im Grunde 2ms Zeitscheiben für Tasks), was den Anforderungen für Echtzeitsysteme eher nicht genügt. Windows CE beinhaltet auch ein virtuelles Speichermanagement, was für Echtzeitbetriebssysteme auch nicht unbedingt geeignet ist. Bis zur Version 3.0 gab es 32 MByte Speicherkapazität pro Prozeß, was für manche Anwendungen zu wenig ist. Daher wird ein Memory Mapping (s.o.) verwendet, um Speicherbereiche auszutauschen. Das XIP führt dazu, daß sich Ladebereiche von Speicherbibliotheken verschiedener Anwendungen beeinflussen. Dies bedeutet, daß Lücken oft nicht nutzbar sind und offene Applikationen die Vorhersagbarkeit erschweren (letzteres ist ein wichtiges Kriterium für Echtzeitsysteme). Für eingebettete Systeme ergibt sich der Vorschlag, möglichst wenige XIP-Bereiche zu benutzen und diese dann so dicht wie möglich zu packen. Echtzeit im Sinne der Speicherverwaltung kann nur garantiert werden, wenn Prozesse festgeschrieben im Speicher laufen, und nicht durch Paging (Austauschen von Speicherseiten vom Cache in den Arbeitsspeicher) beeinflußt werden. [8] Es gibt sicher noch einige Lösungen, die an anderer Stelle untersucht werden können.

12 4. Technik 4.1. Benutzersicht Da das Microsoft-eigene.NET Compact Framework mitgeliefert wird, ist es recht einfach, Anwendungen für dieses Echtzeitbetriebssystem zu schreiben. Die Entwicklungsumgebung nennt sich Platform Builder und bietet Funktionen, die bislang nur über die Kommandozeile zugänglich waren. Sie verkürzt die Zeit des Kompilierens durch ein vereinheitlichtes inkrementelles Build-System, das auch mit manuell veränderten Dateien klarkommt. In der neuesten Version 5.0 sollen von der Microsoft Visual-Familie bekannte Bestandteile die Programmierung weiter erleichtern, z.b. automatisch eingeblendete Hilfetexte zur Syntax von Funktionsaufrufen. Mit vorhandenem, portierten Programmcode auf Basis der Win32-API lassen sich sehr effizient Anwendungen für Echtzeitsysteme erstellen. Dabei hilft die Verfügbarkeit von Gerätetreibern. Dadurch kann man die Echtzeiteigenschaften als sehr gut bezeichnen, allerdings findet sich auch eine mangelhafte Dokumentation vor. [3] 4.2. Implementierung Der Compiler des.net Frameworks erzeugt ähnlich wie die Programmiersprache Java aus den verschiedenen Sprachen wie C#.NET oder VB.NET einen byte code, die sogenannte MSIL (Microsoft Intermediate Language). Dies nennt man auch managed code, weil durch eine Garbage Collection eine gewisse Speicherverwaltung stattfindet. Außerdem werden Sicherheitsrichtlinien erzwungen. Dies macht es dem Benutzer leicht, mit dem Visual Studio.NET (Microsoft Entwicklungsumgebung) Programme zu erstellen. Für echtzeitfähige Programme gibt es weiterhin das Hilfsmittel embedded Visual C++. [6] Die Quelltexte der Module und des Systemkerns sind teilweise einsehbar, aber kaum kommentiert. Die verwendeten Quellsprachen sind C und C++ (bzw. neuerdings die.net- Versionen). Microsoft arbeitet bei Windows CE mit einer sogenannten Shared Source License. Früher wurde die kommerzielle Nutzung der Quelltexte in diesem Rahmen verboten und auch von der Heranziehung für Schadensersatzklagen wurde sich distanziert. Heutzutage dürfen Softwarefirmen basierend auf den zugänglichen Quellen allerdings eigene Windows CE- Derivate entwickeln und vertreiben. Dazu hat Microsoft die Anzahl der im Rahmen einer Shared Source Lizenz zugänglichen Quelltextzeilen um auf insgesamt 2,5 Millionen erhöht. Jede einzelnde Runtimelizenz von Windows CE 5.0 kostet inklusive Browser und Mediaplayer 15 US-Dollar pro Gerät. Ohne die grafische Oberfläche, den Browser und den Mediaplayer kostet die Lizenz drei US-Dollar. [3] Als Beispiel in der Industrie kann man sich für eine Robotersteuerung zwei Lösungsszenarien vorstellen. Eine Möglichkeit besteht in der ausschließlichen Nutzung von Windows CE.NET. Dieses ist in beschriebener Weise echtzeitfähig, skalierbar und kostengünstig. Die Herkunft aus der Windowsfamilie garantiert eine gute Treiberverfügbarkeit für angeschlossene Geräte.

13 Eine andere Möglichkeit besteht in der Nutzung einer Kombination aus Windows XP und Windows CE. Dabei wird Windows XP als Startsystem benutzt und Windows CE anschließend in den Speicher geladen. Das heißt, daß einige wenige Echtzeittasks auf Windows CE laufen. Trotzdem arbeitet das System auch nach einem Absturz des großen XP-Systems ordentlich weiter. Ein zusätzlicher Pluspunkt in dieser Variante ist ebenfalls die große Gerätetreiberverfügbarkeit. Die Kommunikation erfolgt über das Netzwerkprotokoll TCP/IP als Shared Memory Netzwerk. Die Kosten betragen dabei in etwa genau so viel wie ein anderes kommerzielles Echtzeitbetriebssystem. [4] 5. Zusammenfassung Die Nutzung eines Standard-Echtzeitbetriebssystems wird für einige Segmente auf dem Markt für eingebettete Systeme immer wichtiger. Heutzutage wird eine große Anzahl der Fähigkeiten durch die Software selbst geliefert. Wir stellen fest, daß das Windows CE Kernel Design die Mindestanforderungen an ein Echtzeitbetriebssystem erfüllt. Die Interrupt Latenz ist bedingt vorhersagbar und begrenzt. Des weiteren sind die Ausführungszeiten für Systemrufe vorhersagbar und unabhängig von der Systemlast. Das vorgestellte Echtzeitbetriebssystem Windows CE (inkl..net) läßt sich für Anwendungen wie Set-top-Boxen, Multimediaspieler und Handhelds einsetzen. Sogar für medizinische Geräte und die industrielle Automatisierungstechnik gibt es Einsatzszenarien. Auch Anforderungen im Automobilbereich sollte es genügen. Den Anforderungen echter sicherheitskritischer Anwendungen genügt es allerdings nicht. Auch wenn Microsoft den Markt der eingebetteten Systeme erobern möchte, so kann man festhalten, daß auf diesem Markt kein Echtzeitbetriebssystem verfügbar ist, das für jede mögliche Applikation die optimale Lösung darstellt. Wichtig ist daher, aus der Projektspezifikation für die geplante Applikation einen Anforderungskatalog abzuleiten, der mit den Möglichkeiten der einzelnen Produkte verglichen wird. Diese Auswahl führt bei einer systematischen Durchführung zu einem Echtzeitbetriebssystem, dessen Eigenschaften es am besten für die entsprechenden Anforderungen geeignet erscheinen lassen.

14 6. Literaturverzeichnis [1] Giese, H.: Vorlesung Safety-Critical Computer Systems WS 02/03 Universität Paderborn, 2002 [2] Hardwareecke <http://www.hardwareecke.de/berichte/grundlagen/rtos.php> (14. Juli 2004) [3] Heise Online, <http://www.heise.de/newsticker/meldung/48645> (05. Juli 2004) [4] Himmler, P.: Is Windows CE.NET usable for embedded real-time systems? < > (26. Juli 2004) [5] Mangold, K.: Gates oder Geht s nicht? Erfahrungen mit Windows NT embedded in: Holleczek, P./ Vogel-Heuser, B. (Hrsg.): Echtzeitkommunikation und Ethernet/Internet PEARL 2001, Springer Verlag, Heidelberg, 2001, S [6] Microsoft Windows Developer Network <http://msdn.microsoft.com/embedded/> (03. August 2004) [7] netlexikon, akademie.de asp GmbH <http://www.lexikon-definition.de/echtzeit.html> (03. August 2004) <http://www.lexikon-definition.de/echtzeitbetriebssystem.html> (03. August 2004) [8] Richling, J.: Vorlesung Betriebssysteme WS 03/04 Humboldt-Universität Berlin, 2003 [9] Spiegel Online: DaimlerChrysler ruft Mercedes SL und E zurück <http://www.spiegel.de/auto/werkstatt/0,1518,299464,00.html> (12. Mai 2004) [10] Staab, H.: Echtzeitsteuerungen mit Windows CE.NET < 4.13/35Sitzung/6_Staab_WinCe-Robot.pdf > (26. Juli 2004) [11] Steusloff, H.: Verteilte Echtzeitsysteme und Eingebettete Systeme in: Holleczek, P./ Vogel-Heuser, B. (Hrsg.): Verteilte Echtzeitsysteme PEARL 2003 Springer Verlag, Heidelberg, 2003 [12] Storey, N.: Safety-Critical Computer Systems Addison-Wesley, 1996

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

Roboter-Echtzeitsteuerungen mit Windows CE

Roboter-Echtzeitsteuerungen mit Windows CE Roboter-Echtzeitsteuerungen mit Windows CE Dipl.-Ing. Harald Staab Fraunhofer Institut für Produktionstechnik und Automatisierung Abt. Robotersysteme Folie 1 Übersicht 2. Robotersteuerungen ein typischer

Mehr

Sowohl RTX64 als auch RTX bieten harten Echtzeitdeterminismus und symmetrische Multiprocessing- Fähigkeiten (SMP).

Sowohl RTX64 als auch RTX bieten harten Echtzeitdeterminismus und symmetrische Multiprocessing- Fähigkeiten (SMP). Produktbeschreibung Februar 2014 RTX RTOS-Plattform Mit der RTX-Echtzeitsoftware von IntervalZero wird aus Microsoft Windows ein Echtzeitbetriebssystem (RTOS). RTX64 von IntervalZero unterstützt 64-Bit-Betriebssysteme

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

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

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

Übung I Echtzeitbetriebssysteme

Übung I Echtzeitbetriebssysteme Übung I Echtzeitbetriebssysteme a) Von welchen drei Faktoren hängt bei der Echtzeitverarbeitung das korrekte Ergebnis ab? b) Wann ist ein System echtzeitfähig? c) Was versteht man unter Harter und Weicher

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

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

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

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

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

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

OSEK / OSEKtime - ein Vergleich

OSEK / OSEKtime - ein Vergleich OSEK / OSEKtime - ein Vergleich Hauptseminar WS 07/08 André Puschmann andre.puschmann@stud.tu-ilmenau.de Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Fachgebiet Rechnerarchitektur

Mehr

Windows CE. Process Control and Robotics. Fabian Garagnon

Windows CE. Process Control and Robotics. Fabian Garagnon Windows CE Process Control and Robotics Fabian Garagnon 14.01.2009 Agenda 3 Geschichte & Timeline Echtzeit & Multithreading Architektur Memory Management & Context Switch Entwicklung unter CE Interrupts

Mehr

Reaktive Systeme und synchrones Paradigma

Reaktive Systeme und synchrones Paradigma Sascha Kretzschmann Freie Universität Berlin Reaktive Systeme und synchrones Paradigma Einführung in das Seminar über synchrone Programmiersprachen Worum geht es? INHALT 2 Inhalt 1. Einleitung - Wo befinden

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

SurefireKernel ÜBERSICHT SPEZIFIKATION. www.triadem.ch. Sicherheitskernel DATASHEET

SurefireKernel ÜBERSICHT SPEZIFIKATION. www.triadem.ch. Sicherheitskernel DATASHEET Sicherheitskernel ÜBERSICHT SurefireKernel ist ein schlanker skalierbarer nicht preemptiver Echtzeit-Kernel der für den Einsatz auf Kontrollersysteme optimiert ist. Er verfügt über eine Realtime-Überwachung

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

Embedded Linux. Embedded Linux. Daniel Buchheim daniel.buchheim@informatik.tu-cottbus.de. Seminar "Eingebettete drahtlose Systeme"

Embedded Linux. Embedded Linux. Daniel Buchheim daniel.buchheim@informatik.tu-cottbus.de. Seminar Eingebettete drahtlose Systeme Daniel Buchheim daniel.buchheim@informatik.tu-cottbus.de Embedded Linux 30.01.2009 Daniel Buchheim Inhalt: Was ist Embedded Linux? Hardwareunterstützung in Eingebetteten Systemen Open Source Aspekte Aufbau

Mehr

Einführung in die Echtzeitbetriebssysteme

Einführung in die Echtzeitbetriebssysteme Einführung in die Echtzeitbetriebssysteme Hauptseminararbeit in dem Studiengang B.Sc. Informatik von Maximilian von Piechowski Technische Hochschule Mittelhessen Inhaltsverzeichnis 1 Was versteht man unter

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

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

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

DRIVE LIKE A VIRTUAL DEVELOPER Die Poleposition für Ihre Softwareentwicklung

DRIVE LIKE A VIRTUAL DEVELOPER Die Poleposition für Ihre Softwareentwicklung DRIVE LIKE A VIRTUAL DEVELOPER Die Poleposition für Ihre Softwareentwicklung Was für ein Tempo! Das Rad dreht sich rasant schnell: Die heutigen Anforderungen an Softwareentwicklung sind hoch und werden

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

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

Virtualisierung im Echtzeitbereich. Andreas Hollmann FH Landshut EADS Military Air Systems

Virtualisierung im Echtzeitbereich. Andreas Hollmann FH Landshut EADS Military Air Systems Virtualisierung im Echtzeitbereich Andreas Hollmann FH Landshut EADS Military Air Systems 2 Überblick Hintergrund und Motivation Vorstellung von Lösungsansätzen Auswahl und Evaluierung Einschränkungen

Mehr

Echtzeit mit Linux. Erweiterungen und deren Anwendung. Martin Krohn. 2. Februar 2006

Echtzeit mit Linux. Erweiterungen und deren Anwendung. Martin Krohn. 2. Februar 2006 Erweiterungen und deren Anwendung 2. Februar 2006 1 Einleitung Anwendungsgebiete 2 Linux als Echtzeitbetriebssystem Eignung von Linux 3 Erweiterungen für Linux RT-Linux RTAI- Real-Time Application Interface

Mehr

Implementierung Echtzeitbetriebssysteme Architektur eines RTOS am Beispiel Windows CE 23.03.2010 Autor: Rudi Swiontek und Ralf Ebert*

Implementierung Echtzeitbetriebssysteme Architektur eines RTOS am Beispiel Windows CE 23.03.2010 Autor: Rudi Swiontek und Ralf Ebert* Implementierung Echtzeitbetriebssysteme Architektur eines RTOS am Beispiel Windows CE 23.03.2010 Autor: Rudi Swiontek und Ralf Ebert* Echtzeitbetriebssysteme, kurz RTOS, besitzen neben harter Echtzeitfähigkeit

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

Performance Messungen von FreeRTOS und

Performance Messungen von FreeRTOS und Performance Messungen von FreeRTOS und µc/os-iii auf ARM-Architekturen Tim Wacher (wht4@bfh.ch) Master of Science in Engineering MRU Production Technology 16. August 2011/ CH-3400 Burgdorf Outline 1 Ziel

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

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

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

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

Führen Sie zum Einstieg in die Materie einige Systemdiagnosen durch. Benutzen Sie dabei winmsd.exe.

Führen Sie zum Einstieg in die Materie einige Systemdiagnosen durch. Benutzen Sie dabei winmsd.exe. Aufgabe 1.1: Systeminformationen Führen Sie zum Einstieg in die Materie einige Systemdiagnosen durch. Benutzen Sie dabei winmsd.exe. a) Wie lautet der Name des von Ihnen verwendeten Rechners? Der Systemname

Mehr

Kapitel 1 Betriebssystem I. Das Betriebssystem

Kapitel 1 Betriebssystem I. Das Betriebssystem 1.0 Das Betriebssystem Das Betriebssystem ist ein Programm, welches die Verbindung zwischen dem Benutzer, der Software und der Hardware herstellt und steuert. Für die Arbeit mit einem Computer ist die

Mehr

Proseminar Technische Informatik A survey of virtualization technologies

Proseminar Technische Informatik A survey of virtualization technologies Proseminar Technische Informatik A survey of virtualization technologies Referent: Martin Weigelt Proseminar Technische Informatik - A survey of virtualization technologies 1 Übersicht 1. Definition 2.

Mehr

Funktionskapselung in Steuergeräten

Funktionskapselung in Steuergeräten Funktionskapselung in Steuergeräten Mobilität und Echtzeit Boppard am Rhein, 07.12.2007 Stand: 07.12.2007 1 Funktionskapselung in Steuergeräten Inhalt Ausgangssituation und Motivation Begriff "Kapselung"

Mehr

Protected User-Level DMA in SCI Shared Memory Umgebungen

Protected User-Level DMA in SCI Shared Memory Umgebungen Protected User-Level DMA in SCI Shared Memory Umgebungen Mario Trams University of Technology Chemnitz, Chair of Computer Architecture 6. Halle Chemnitz Seminar zu Parallelverarbeitung und Programmiersprachen

Mehr

Echtzeitbetriebssysteme

Echtzeitbetriebssysteme Echtzeitbetriebssysteme QNX 409 Geschichte: Einführung 1980 entwickeln Gordon Bell und Dan Dodge ein eigenes Echtzeitbetriebssystem mit Mikrokernel. QNX orientiert sich nicht an Desktopsystemen und breitet

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

1 Einleitung. 1.1 Aufgaben und Grobstruktur. Was ist ein Betriebssystem?

1 Einleitung. 1.1 Aufgaben und Grobstruktur. Was ist ein Betriebssystem? 1 Einleitung 1.1 Aufgaben und Grobstruktur Was ist ein Betriebssystem? Betriebssystem (Definition nach DIN 44300) Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage

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

Embedded Software Engeneering mit dem Raspberry Pi

Embedded Software Engeneering mit dem Raspberry Pi Embedded Software Engeneering mit dem Raspberry Pi Übersicht Rasperry Pi Betriebssystem Hardware ARM Μ-Controller vs. Μ-Prozessor vs. SoC Embedded Software Engineering vs. Software Engineering Fazit Raspberry

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

Projekt für Systemprogrammierung WS 06/07

Projekt für Systemprogrammierung WS 06/07 Dienstag 30.01.2007 Projekt für Systemprogrammierung WS 06/07 Von: Hassan Bellamin E-Mail: h_bellamin@web.de Gliederung: 1. Geschichte und Definition 2. Was ist Virtualisierung? 3. Welche Virtualisierungssoftware

Mehr

Integration Services - Dienstarchitektur

Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Dieser Artikel solle dabei unterstützen, Integration Services in Microsoft SQL Server be sser zu verstehen und damit die

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

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

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH ARM Cortex-M Prozessoren Referat von Peter Voser Embedded Development GmbH SoC (System-on-Chip) www.embedded-development.ch 2 Instruction Sets ARM, Thumb, Thumb-2 32-bit ARM - verbesserte Rechenleistung

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

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

LabVIEW Real Time Hands on

LabVIEW Real Time Hands on LabVIEW Real Time Hands on Dipl. Ing. Sebastian F. Kleinau Dipl. Ing. (FH) Marian Olef Applications Engineering National Instruments Deutschland GmbH Plattform für das grafische Systemdesign Desktop Real-Time

Mehr

Echtzeitbetriebssysteme

Echtzeitbetriebssysteme Echtzeitbetriebssysteme RTLinux/RTAI 373 Motivation Aus diversen Gründen ist die Verwendung von Linux in n erstrebenswert: Linux ist weitverbreitet Treiber sind sehr schnell verfügbar Es existieren viele

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

FAQ. VisBee - IDE FAQ 2011-11-21. Änderungsindex: 1.0. Änderungsdatum: 2011-11-21. Christ Elektronik GmbH. Alpenstraße 34 DE-87700 Memmingen

FAQ. VisBee - IDE FAQ 2011-11-21. Änderungsindex: 1.0. Änderungsdatum: 2011-11-21. Christ Elektronik GmbH. Alpenstraße 34 DE-87700 Memmingen Änderungsindex: 1.0 Änderungsdatum: DE- Copyright 2011 Weitergabe sowie Vervielfältigung dieser Unterlage, Verwertung und Mitteilung ihres Inhalts nicht gestattet, soweit nicht ausdrücklich zugestanden.

Mehr

VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN

VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN Fakultät Informatik Institut für Systemarchitektur, Professur Betriebssysteme VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN Henning Schild Dresden, 5.2.2009 Definition Einführung von Abstraktionsschichten

Mehr

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008 Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008 Jörg Rödel Virtualization - Whats out there? Virtualisierung hat bereits längere Geschichte auf x86 Startete mit VMware Setzte

Mehr

Echtzeitbetriebssysteme (am Beispiel QNX) Dr. Stefan Enderle HS Esslingen

Echtzeitbetriebssysteme (am Beispiel QNX) Dr. Stefan Enderle HS Esslingen Echtzeitbetriebssysteme (am Beispiel QNX) Dr. Stefan Enderle HS Esslingen 1. Einführung 1.1 Embedded Systeme Embedded Systeme besitzen / benutzen einen Mikrocontroller Embedded Systeme erfüllen meist eine

Mehr

Einführung in Betriebssysteme

Einführung in Betriebssysteme Einführung in Betriebssysteme APPLE ios Entwicklung von ios Entwickelt auf der Basis von MacOS X UNIX Vorgestellt am 9.1.2007 Zusammen mit iphone Markenname von Cisco Internetwork Operating System Für

Mehr

Soft-SPS - Was ist eine SPS?

Soft-SPS - Was ist eine SPS? Soft-SPS - Was ist eine SPS? SPS = Speicherprogrammierbare Steuerung PLC = Programmable Logic Control Ursprünglich elektronischer Ersatz von Relaissteuerungen (Schützsteuerung) 1 Soft-SPS - Relais-Steuerung

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

Inhatsverzeichnis. 1.Einleitung. Lehrgang: NMM Informatik: Der Computer. Lehrer: Spahr Marcel. Name: E L E M E N T E D E S C O M P U T E R S Datum:

Inhatsverzeichnis. 1.Einleitung. Lehrgang: NMM Informatik: Der Computer. Lehrer: Spahr Marcel. Name: E L E M E N T E D E S C O M P U T E R S Datum: Lehrer: Spahr Marcel SCHULE LAUPEN Lehrgang: NMM Informatik: Der Computer Name: E L E M E N T E D E S C O M P U T E R S Datum: In diesem Kapitel erfährst du die Bedeutung der Begriffe Hardware" und Software"

Mehr

Software-basierter Speicherschutz durch spezialisierte Java-VMs auf Mikrocontrollersystemen

Software-basierter Speicherschutz durch spezialisierte Java-VMs auf Mikrocontrollersystemen Software-basierter Speicherschutz durch spezialisierte Java-VMs auf Mikrocontrollersystemen Christian Wawersich Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Universität Erlangen-Nürnberg

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

Betriebssysteme: Windows CE

Betriebssysteme: Windows CE EMES: Eigenschaften mobiler und eingebetteter Systeme Betriebssysteme: Windows CE Dr. Felix Salfner, Dr. Siegmar Sommer Wintersemester 2010/2011 Windows CE: Die Anfänge (Anmerkung: Alle Bilder c Microsoft)

Mehr

Der Rechner. Grundbegriffe. Aufbau. Funktionsweise. Betriebssystem. Kategorisierung. PC-Komponenten. Prof. Dr. Aris Christidis

Der Rechner. Grundbegriffe. Aufbau. Funktionsweise. Betriebssystem. Kategorisierung. PC-Komponenten. Prof. Dr. Aris Christidis Der Rechner Grundbegriffe Aufbau Funktionsweise Betriebssystem Kategorisierung PC-Komponenten Auf der Grundlage eines Programms kann ein Computer Daten mit seiner Umgebung austauschen, mathematische und

Mehr

Integrated Modular Avionics & ARINC 653

Integrated Modular Avionics & ARINC 653 Integrated Modular Avionics & ARINC 653 Martin Wißmiller Gliederung IMA - Traditioneller Ansatz - IMA-Ansatz - IMA-Generationen ARINC653 - Speicherpartitionierung - Zeitpartitionierung - Kommunikation

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

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis... 1 Einführung................................................ 1 1.1 Was ist ein Betriebssystem?............................... 1 1.1.1 Betriebssystemkern................................ 2 1.1.2 Systemmodule....................................

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

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen Albrecht Achilles 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Betriebssysteme Eine kompakte Einführung mit Linux

Mehr

2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.2 Rechnerorganisation: Aufbau und Funktionsweise 2.2 Rechnerorganisation: Aufbau und Funktionsweise é Hardware, Software und Firmware é grober Aufbau eines von-neumann-rechners é Arbeitsspeicher, Speicherzelle, Bit, Byte é Prozessor é grobe Arbeitsweise

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

Real Time Operating Systems (RTOS) = Echtzeit-Betriebssysteme. Eine Einführung. Klaus Kusche, Okt. 2011

Real Time Operating Systems (RTOS) = Echtzeit-Betriebssysteme. Eine Einführung. Klaus Kusche, Okt. 2011 Real Time Operating Systems (RTOS) = Echtzeit-Betriebssysteme Eine Einführung Klaus Kusche, Okt. 2011 Ziele des Vortrags Überblick über das Thema Praktisches Verständnis von Anforderungen Problembereichen

Mehr

Kompatibilität von Microsoft Exchange Server mit den Microsoft Windows Server-Betriebssystemen

Kompatibilität von Microsoft Exchange Server mit den Microsoft Windows Server-Betriebssystemen Kompatibilität von Microsoft Exchange Server mit den Microsoft Windows Server-Betriebssystemen Whitepaper Veröffentlicht: April 2003 Inhalt Einleitung...2 Änderungen in Windows Server 2003 mit Auswirkungen

Mehr

Methoden des Feldbuszugriffs bei PCs unter MS-Windows - ein State-of-the-Art-Report

Methoden des Feldbuszugriffs bei PCs unter MS-Windows - ein State-of-the-Art-Report Methoden des Feldbuszugriffs bei PCs unter MS-Windows - ein State-of-the-Art-Report Prof. Dr.-Ing. Jörg Böttcher, Deggendorf Zusammenfassung Der vorliegende Beitrag gibt einen Überblick über die heute

Mehr

Hardware Virtualisierungs Support für PikeOS

Hardware Virtualisierungs Support für PikeOS Virtualisierungs Support für PikeOS Design eines Virtual Machine Monitors auf Basis eines Mikrokernels Tobias Stumpf SYSGO AG, Am Pfaenstein 14, 55270 Klein-Winternheim HS Furtwangen, Fakultät Computer

Mehr

Military Air Systems

Military Air Systems Trennung von Applikationen unterschiedlicher Kritikalität in der Luftfahrt durch Software en am Beispiel des Real-time Operating Systems PikeOS Dr. Bert Feldmann DGLR Workshop Garching, 09.10.2007 Seite

Mehr

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick Vorlesung Objektorientierte Softwareentwicklung Sommersemester este 2008 Kapitel 0. Java-Überblick Was sind die Ziele? Warum Java? Komplexe Anwendungen e-business verteilt zuverlässig sicher mobil persistent

Mehr

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,

Mehr

64 Bit erhöhen die nutzbare Größe für den Arbeitsspeicher.

64 Bit erhöhen die nutzbare Größe für den Arbeitsspeicher. EasyProfil 2.x unter Windows 7-64-Bit Es wird in Ihrer Programmsammlung außer EasyProfil auch noch einige andere wichtige Programme geben, die derzeit noch unter 16 Bit laufen. So macht untenstehende Erweiterung

Mehr

Betriebssysteme: Windows CE. Dipl.-Inf. J. Richling Wintersemester 2003/2004

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

Mehr

Marketing Update. Enabler / ENABLER aqua / Maestro II

Marketing Update. Enabler / ENABLER aqua / Maestro II Marketing Update Enabler / ENABLER aqua / Maestro II Quartal 01/2012 1 Kommentar des Herausgebers Liebe Kunden und Partner, dieser Marketing Update gibt Ihnen einen kurzen Überblick über die aktuell verfügbaren

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

VB.net Programmierung und Beispielprogramm für GSV

VB.net Programmierung und Beispielprogramm für GSV VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2

Mehr

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Proseminar Objektorientiertes Programmieren mit.net und C# Florian Schulz Institut für Informatik Software & Systems Engineering Einführung Was hat Cross-Plattform

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

App-Entwicklung für Android

App-Entwicklung für Android App-Entwicklung für Android Einleitung - Systemarchitektur Hochschule Darmstadt WS15/16 1 Inhalt Historie Systemarchitektur Sandbox 2 Motivation Kontra Pro Limitierte Größe Begrenzte Ressourcen Kein Standardgerät

Mehr

Leistungsbeschreibung tengo desktop

Leistungsbeschreibung tengo desktop 1/5 Inhalt 1 Definition 2 2 Leistung 2 3 Optionale Leistungen 3 4 Systemanforderungen, Mitwirkungen des Kunden 3 4.1 Mitwirkung des Kunden 4 4.1.1 Active Directory Anbindung 4 4.1.2 Verwaltung über das

Mehr

Calogero Fontana Fachseminar WS09/10. calogero.b.fontana@student.hs-rm.de. Virtualisierung

Calogero Fontana Fachseminar WS09/10. calogero.b.fontana@student.hs-rm.de. Virtualisierung Calogero Fontana Fachseminar WS09/10 calogero.b.fontana@student.hs-rm.de Virtualisierung Was ist Virtualisierung? Definition Virtualisierung ist das zur Verfügung stellen von Hardware-Ressourcen für ein

Mehr

9 Multithreading. 1 Idee des Multithreading

9 Multithreading. 1 Idee des Multithreading 9 Multithreading Jörn Loviscach Versionsstand: 21. Juli 2015, 11:50 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work is licensed

Mehr

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level Implementation of a Framework Component for Processing Tasks within Threads on the Application Level Deutsches Krebsforschungszentrum, for Processing Task within Threads on the Application Level Motivation

Mehr

oscan ein präemptives Echtzeit-Multitasking-Betriebssystem

oscan ein präemptives Echtzeit-Multitasking-Betriebssystem ein präemptives Echtzeit-Multitasking-Betriebssystem 2011. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V0.9 2011-10-12 Management

Mehr

Dipl.-Inf. J. Richling Wintersemester 2003/2004. Weiche Echtzeit

Dipl.-Inf. J. Richling Wintersemester 2003/2004. Weiche Echtzeit Dipl.-Inf. J. Richling Wintersemester 2003/2004 Weiche Echtzeit Wiederholung - Resultat/Wert-Funktion "harte" Echtzeit Wert Zeit Wert Zeit Wert Deadline Zeit "weiche" Echtzeit Wert Deadline Zeit Deadline

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

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013

Mehr

Windows Vista Windows Phone 7

Windows Vista Windows Phone 7 Windows Vista Windows Phone 7 Softwarearchitekturen Referent: Frank Urrigshardt Übersicht Windows Vista Historische Entwicklung Programmierung NT Programmierschnittstelle Win32 Programmierschnittstelle

Mehr