Echtzeit Betriebssysteme. VxWorks

Größe: px
Ab Seite anzeigen:

Download "Echtzeit Betriebssysteme. VxWorks"

Transkript

1 Echtzeit Betriebssysteme - VxWorks Kleines Seminar im WS 2003/2004 eingereicht durch Sven Schomaker Sven.Schomaker@syrics.de Gießen, 3. Februar 2004

2 Inhaltsverzeichnis 1 Abstract 1 2 Einführung 1 3 Echtzeit 2 4 Basisdienste von Echtzeitbetriebssystemen Taskmanagement (Scheduling) Speicherverwaltung Synchronisation & Kommunikation Device I/O Supervision VxWorks Scheduling Speicherverwaltung Synchronisation & Kommunikation Device I/O Supervision Epilog 15

3 1 ABSTRACT 1 1 Abstract Die vorliegende Arbeit stellt Problematiken und allgemeine Lösungsansätze von Echtzeitbetriebssystemen vor und geht exemplarisch auf das weit verbreitete Echtzeitbetriebssystem VxWorks des kalifornischen Unternehmens WindRiver ein. Im ersten Teil der Arbeit wird eine Definition des Echtzeitbegriffs vorgenommen und eine allgemeine Einführung in den Bereich der Echtzeitverarbeitung gegeben. Daraufhin wird eine genauere Betrachtung der für die Echtzeitverarbeitung wesentlichen Problematiken sowie Verfahren zu deren Lösung vorgenommen. Der zweite Teil der Arbeit befasst sich im Wesentlichen mit einer Betrachtung des Echtzeitbetriebssystems VxWorks und veranschaulicht exemplarisch einige der im ersten Abschnitt vorgestellten Lösungsansätze. Die vorliegende Arbeit beabsichtigt einen allgemeinen Überblick über die Problematiken von Echtzeitbetriebssystemen zu geben und wird daher keine detailierte Einführung in spezielle programmiertechnische Details im Umgang mit VxWorks geben. Zu diesem Zweck sei auf die sehr detailierten und umfangreichen Programmier-Referenzen und Anleitungen von WindRiver verwiesen [10], [11], [9]. The present work discusses several problem areas of realtime operating systems (RTOS) and introduces some proven solutions on that particular problems areas. Afterwards it gives an introduction to the popular RTOS VxWorks developed and maintained by the californian WindRiver corporation. The first part gives an general introduction to the term of realtime and furthermore will discuss the previously mentioned problem areas one inescapable encounters when regarding RTOS. After conveying the reader to the common realtime issues, the second part of this work will point out, how those problems might be soluted in an realworld RTOS on the basis of VxWorks. Since this work is meant to introduce common concepts of realtime operating systems and not to give an detailed programming reference on VxWorks, there won t be any detailed descriptions of actual system calls or similar to describe programmers issues when dealing with VxWorks. For this purpose the author refers to the pretty detailed and comprehensive programmers manuals provided by WindRiver[10], [11], [9]. 2 Einführung Echtzeitsysteme 1 spielen in der Industrie und Forschung eine große Rolle und werden in unserer heutigen technisierten Gesellschaft in einer großen Anzahl von Anwendungen zum Einsatz gebracht. Als ältestes Einsatzgebiet für Echtzeitsysteme kann zweifellos der Einsatz in der Industrie zur Prozesssteuerung angesehen werden. Die ersten Prozessrechner wurden etwa um 1959 entwickelt und damals wie heute zur Steuerung von Fertigungsprozessen in der Industrie verwendet. Sicherlich sind diese Systeme kaum noch mit den heutigen hoch integrierten Mikrocontrollern vergleichbar, doch wurde man bereits damals darauf aufmerksam, das die Steuerung von zeitkritischen Abläufen entsprechende zeitliche Determinismen 2 in den Steuerungsprozessen benötigen. Seit der Entwicklung der ersten Prozessrechner hat 1 Unter einem Echtzeitsystem versteht man die Menge an Komponenten, die zusammengenommen zur Bearbeitung einer Aufgabe unter Gesichtspunkten des zeitlichen Determinismus benötigt und verwendet werden. 2 Der Begriff der Echtzeit und des zeitlichen Determinismus sei in der Einführung vorweggenommen und wird im Kapitel Echtzeit ausführlich behandelt. Bis dahin bitte ich den Leser nachsichtig zu sein oder das entsprechende Kapitel vorwegzunehmen.

4 3 ECHTZEIT 2 sich das Einsatzgebiet für Echtzeitsysteme stark erweitert, da sich die technischen Fähigkeiten der modernen Industriegesellschaft bis heute stark weiter entwickelt haben. So wurde mit fast jedem der neu für die Technik eröffneten Gebieten, die Anforderung an einen zeitlichen Determinismus der mit dieser neuen Techniken einhergehenden automatisierten Datenverarbeitung neu erkannt. Heutzutage erstreckt sich das Einsatzgebiet von Echtzeitsystemen von der Prozessrechentechnik über die Avionik, Fahrzeug- und Weltraumtechnik, bis hinein in das heimische Wohnzimmer, wo in Multimedialen Systemen ebenfalls zeitkritische Systeme anwendung finden. Die Gestalt der Komponenten eines Echtzeitsystems variert je nach Anwendungsgebiet beträchtlich. In vielen Bereichen wie z.b. der Automobilindustrie werden Hard- und Softwarekomponenten verwendet, die direkt auf die jeweilige Anwendung zugeschnitten sind. Hierbei war (und ist) es nicht selten der Fall, das die spezialisierte Software direkt auf der Hardware operiert, ohne dazu Dienste einer abstrahierenden Softwareschicht in Anspruch zu nehmen wie Sie ein Betriebssystem 3 bereitstellt. In den Vergangenen Jahren wurden jedoch vermehrt Anstrengungen unternommen auch im Bereich der Embedded-Systems Betriebssysteme bereitzustellen, die die immer komplexere Hardware abstrahieren und die Steuerung von Hardware und die Resourcenverwaltung unter Beachtung des erforderlichen zeitlichen Determinismus übernehmen. Ein solches Betriebssystem, dass die von ihm bereitgestellten Dienste innerhalb fest definierter zeitlicher Schranken bereitstellt, nennt man Echtzeitbetriebssystem. Die Beispiele für Echtzeitbetriebssystem sind vielfältig und deren Anzahl doch auch sehr beachtlich, als da wären psos, YARTOS, ARTS, LynxOS, RealtimeLinux, QNX, VxWorks und noch viele weitere. Natürlich werden Echtzeitsysteme auch auf Basis konventioneller Hardware aufgebaut. In einigen Anwendungen, wie z.b. der Prozesssteuerung ist es Hilfreich auf Low-Cost Hardware aufbauend echtzeitfähige Systeme zu erzeugen. Für die Echtzeitfähigkeit eines Systems ist mitnichten spezielle Hardware von Nöten. Eine Anzahl an Echtzeitbetriebssystemen, die für die konventionelle x86 Hardware entwickelt werden, hauchen eben diesen Systemen Echtzeitfähigkeiten ein, auch wenn hierzu einige Dinge spezieller Betrachtung bedürfen 4. 3 Echtzeit Im allgemeinen Sprachverständnis wird der Begriff der Echtzeit häufig mit Kenngrößen des menschlichen Erfahrungsbereiches beschrieben. So tritt häufig eine zeitliches Gefühl von Verarbeitungsgeschwindigkeit, die sich in einem durch den menschenlichen Erfahrungsbereich begrenzten Rahmen befindet, an die Stelle der eigentlichen Definition von Echtzeit und der damit verbundenen Begriffe. So ist Beispielsweise die Verarbeitung von 25 Frames pro Sekunde zur Erzeugung eines flüssigen visuellen Sinneseindrucks für den Menschen bei der Wiedergabe von Bewegtbildern ausreichend, jedoch ist die Verarbeitung von 25 Frames pro Sekunde bei der automatisierten visuellen Erkennung von Fehlerhaften teilen 3 Ein Betriebssystem ist die Menge an Software, welche die Hardwarebetriebsmittel verwaltet und sie in eine für die Anwendung leichter handhabbare Form transformiert. Ein Betriebssystem tritt der Anwendung gegenüber als virtuelle Maschine auf und stellt der Anwendung eine Reihe von Diensten bereit, die sie zur Erfüllung der ihr zugedachten Aufgaben verwenden kann[2]. 4 Auf solcherlei Implikationen, welche die Forderung nach Echtzeitfähigkeit für die Programmierung von System mit sich bringt, wird im Kapitel über Basisdienste von Echtzeitbetriebssystem näher eingegangen.

5 3 ECHTZEIT 3 auf einer Produktionsstraße spätestens dann unzureichend, wenn pro Sekunde 60 Objekte die Kamera passieren. Wie man leicht einsehen kann lässt sich der Begriff der Echtzeit nicht anhand menschlicher Sinneseindrücke festmachen. Der menschliche Erfahrungsbereich ist somit im Sinne der Echtzeitverarbeitung Sinnfällig. Der eigentliche Begriff der Echtzeit beschreibt mitnichten eine sich an den kognitiven Fähigkeiten von Menschen orientierende Verarbeitungsgeschwindigkeit, sondern muss im jeweiligen Anwendungskontext definiert werden. Weiterhin ist auch eine Einschränkung des Echtzeitbegriffes auf die Verarbeitungs- oder Reaktionsgeschwindigkeit von Systemen falsch, da Echtzeit einen weitaus breiteren Definitionsrahmen besitzt, auch wenn diese beiden Faktoren wichtige Kenngrößen für Echtzeitsysteme darstellen. Vielmehr muss ein Echtzeitsystem einen zeitlichen Determinismus aufweisen, der das Zeitverhalten eines Systems vorhersagbar macht und unter allen Bedingungen garantiert ist. Somit kann als Definition von Echtzeit gelten: Ein System agiert genau dann in Echtzeit, wenn die Bearbeitung einer Aufgabe einen unter allen Bedingungen garantierten zeitlichen Determinismus aufweist, der zur korrekten Erfüllung der jeweiligen Aufgabe hinreichend ist. Unter den angestellten Betrachtungen kann man sagen das die korrekte Bearbeitung einer Aufgabe in einem Echtzeitsystem nicht nur von der logischen Korrektheit, sondern auch von der zeitlichen Korrektheit der Erfüllung der Aufgabe abhängt und das Echtzeitsystem somit einen garantierten zeitlichen Determinismus aufweisen muss. Die Forderung nach zeitlicher Korrektheit der Erfüllung einer Aufgabe ist jedoch nicht Absolut, da sich die Auswirkungen bei einem Verfehlen der für eine bestimmte Aufgabe definierten zeitlichen Schranken in ihrer Ernsthaftigkeit für viele Anwendungen unterscheiden. So ist es sicherlich nicht als fataler Systemfehler anzusehen, wenn in einem Videostream bei der Bildwiedergabe am heimischen Computer Rahmen verworfen werden, wobei das Verwerfen von Rahmen in der bereits erwähnten Fertigungsstraße durchaus als kritisch zu betrachten ist. Um den jeweils unterschiedlichen stärken in denen Echtzeit gefordert wird Rechnung zu tragen, werden Aufgaben (nachfolgend als Tasks bezeichnet) je nach Echtzeitanforderung folgendermaßen klassifiziert: Harte Echtzeitanforderung (Hard Realtime) einer Anwendung besteht genau dann, wenn eine Überschreitung der zur Erfüllung einer Aufgabe vorgeschriebenen zeitlichen Schranken einen fatalen Systemfehler zur Folge hat, für den keine geeigneten Maßnahmen zum Failure-recovery zur Verfügung stehen. Ein solcher Fehler wäre Beispielsweise ein Verfehlen der Zeitschranken in einem System zur automatischen Kollisionserkennung in der Avionik. Wenn ein solches System die zeitlichen Schranken für die Meldung einer Kollision oder das selbstständige Eingreifen in die Situation verpasst, führt dies zweifellos zu einem fatalen Systemfehler, für den ausser dem Aufsammeln von Wrackteilen kaum ein geeigntetes Failure-Recovery zur Verfügung stehen dürfte. Weiche Echtzeitanforderung (Soft Realtime) einer Anwendung besteht genau dann, wenn eine Überschreitung der zur Erfüllung einer Aufgabe vorgeschriebenen zeitlichen Schranken einen Systemfehler zur Folge hat, für den entweder geeignete Maßnahmen zum Failure-recovery zur Verfügung stehen oder dessen Auswirkungen als nicht Fatal anzusehen sind. Beispielsweise besitzen die oben erwähnten Multimediaanwendungen weiche Echtzeitanforderungen, da hier der Verlust eines Frames (Framedrop) nicht zu fatalen Fehlern führt, auch wenn ein ruckeliges Bild bei der Wiedergabe von Videostreams sicherlich dem Genuss nicht dienlich ist.

6 3 ECHTZEIT 4 Keine Echtzeitanforderung (None Realtime) einer Anwendung besteht genau dann, wenn die Bearbeitung einer Aufgabe keinen zeitlichen Determinismus aufweisen muss, die Korrektheit der Bearbeitung also unabhängig von jeglichen zeitlichen Anforderungen ist und somit nur von der logischen Korrektheit abhängt. Beispielsweise ist ein Editor eine nicht Echtzeitanwendungen bei der zweifellos kein zeitlicher Determinismus vorhanden sein muss (auch wenn es schön ist, wenn der Tastendruck in annehmbarer Zeit auf dem Bildschirm erscheint). Nachdem nun ein allgemeines Verständnis für die Echtzeit und Echtzeitsysteme vorhanden sein sollte, werde ich im nächsten Kapitel ein wenig auf die Basisdienste eingehen, die ein Echtzeitbetriebssystem i.d.r. bereitstellt. Die Betrachtung der Basisdienste erfolgt unter Einbeziehung des in Echtzeitsystemen erforderlichen zeitlichen Determinismus und weist an geeigneter Stelle auf die besonderheiten hin, die diese Forderung für die Konzipierung der Basisdienste eines Echtzeitbetriebssystems und der allgemeinen Programierung von Echtzeitsystemen bedeutet.

7 4 BASISDIENSTE VON ECHTZEITBETRIEBSSYSTEMEN 5 4 Basisdienste von Echtzeitbetriebssystemen Wie bereits erwähnt führt die Forderung nach deterministischen Zeitverhalten in Echtzeitsystemen eine völlig neue Sichtweise bei der Planung von Software und Hardware eines Rechensystems ein. Um ein deterministisches Zeitverhalten bestimmter Anwendungen zu erreichen benötigt man zum einen sehr detailierte Kenntnisse über die hardwareseitigen Abläufe und die Ausführungseigenschaften von Code. Bei der Betrachtung des Quellcodes ist die Anzahl an Taktzyklen, die für die Abarbeitung einer Sequenz von Anweisungen benötigt werden in der Regel durchaus bekannt, jedoch spielen hier latente Verzögerungen die direkt auf die strukturellen Hardwareeigenschaften zurückzuführen sind eine große Rolle. Für gewöhnlich offerieren Echtzeitbetriebssysteme ebenso wie allgemeine Betriebssysteme eine Reihe von Diensten, die von der Anwendungssoftware zur Durchführung ihrer Aufgaben herangezogen werden kann. Diese Dienste müssen allerdings im Gegensatz zu allgemeinen Betriebssystemen garantierte Zusagen über deren Zeitverhalten machen und dies unabhängig von der aktuellen Auslastung des Systems. Eben diese verschärften Voraussetzungen begrenzen den Umfang der von Echtzeitbetriebssystemen für Gewöhnlich bereitgestellten Dienste mit garantiertem Zeitverhalten auf eine Untermenge der Dienste, die ein allgemeines Betriebssystem in der Regel bereitstellen wird. Die von einem Echtzeitbetriebssystem bereitgestellten Kerndienste lassen sich in der folgenden Abbildung veranschaulichen. Abbildung 1: Übersicht über Basisdienste eines Echtzeitbetriebssystems Wie aus der obigen Abbildung entnommen werden kann, zählen zu den Kerndiensten die von einem Echtzeitbetriebssystem bereitgestellt werden meist das Taskmanagement (Scheduling), die Task-Synchronisation und Kommunikation, die Bereitstellung von I/O-Schnittstellen zu Block- und Character Devices, sowie (rudimentäre) Mechanismen zur dynamischen Speicherzuteilung. Darüber hinaus bieten einige Echtzeitbetriebssysteme noch eine Anzahl an Erweiterungen wie dynamische Speicherverwaltung inklusive Paging und Swapping, Netzwerkschnittstellen und andere Dienste an. Im folgenden werde ich noch gesondert auf die einzelnen Basisdienste eingehen und einige Problematiken die mit diesen Diensten in zusammenhang stehen etwas näher erläutern.

8 4 BASISDIENSTE VON ECHTZEITBETRIEBSSYSTEMEN Taskmanagement (Scheduling) In den Vergangenen Jahren sind wie in der Einführung bereits erwähnt wurde große Anstrengungen unternommen worden Echtzeitbetriebssystem zu schaffen, die wie die General-Purpose-Betriebssysteme eine Vielzahl von Diensten den Anwendungen zur Verfügung stellen. Mit einer der wichtigsten Dienste der bereit gestellt wird ist wie bei den allgemeinen Betriebssystemen die Mechanismen zur parallelen Nutzung des Prozessors. Bei der Betrachtung von Echtzeitsystemen fällt auf, dass nahezu alle Systeme eine parallele Bearbeitung von Daten leisten müssen. Diese parallele Bearbeitung kann man sicherlich bis zu einem gewissen Grad durch die Bereitstellung weiterer designierter Mikroprozessoren erreichen, jedoch lässt sich das Konzept nicht beliebig ausdehnen. Hier wird in der Echtzeitdatenverarbeitung das schon aus den allgemeinen Betriebssystemen bekannte Multitasking angewendet, um die quasi parallele Bearbeitung von Tasks zu erreichen. Das wichtigste Konzept hierbei ist das Scheduling, das im folgenden näher betrachtet werden soll. Die Forderung nach quasi paralleler Ausführung einer Anzahl an Tasks benötigt eine Strategie wie lauffähige Prozesse dem Prozessor zugeteilt werden. In allemeinen Betriebssystemen, die meist in interaktiven Dialogbetrieb eingesetzt werden, bestimmt die Wahl der Scheduling-Strategie eine Mischung aus den folgenden 5 Forderungen[2]: 1. Fairness: Jeder Prozeß erhält einen gerechten Anteil der Prozessorzeit. 2. Effizienz: Der Prozessor ist immer vollständig ausgelastet. 3. Antwortzeit: Die Antwortzeit für den interaktiven Benutzer ist minimal. 4. Verweilzeit: Die Wartezeit auf die Ausgabe von Stapelaufträgen wird minimiert. 5. Durchsatz: Die Anzahl der in einem bestimmten Zeitintervall ausgeführten Aufträge wird maximiert. Zu diesen Punkten gesellt sich im Rahmen der Echtzeitbetriebssysteme noch eine weitere, nämlich der nach dem deterministischen Zeitverhalten. Das deterministische Zeitverhalten spielt hierbei die wichtigste Rolle, wobei andere Forderungen in einem Echtzeitsystem nur untergeordnete Priorität haben oder gänzlich ausser acht gelassen werden. Grundsätzlich teilt man die Schedulingstrategien ein in kooperatives Scheduling, verdrängendes Scheduling und nicht-verdrängendes Scheduling[1]. Durch die Forderung nach deterministischen Zeitverhalten kommt von den Scheduling-Strategien im Grunde nur die des verdrängenden (präemtiven) Scheduling für die Anwendung in Echtzeitbetriebssysteme in Frage, da alle anderen Strategien ein schwer bzw. nicht vorhersagbares Moment in das Zeitverhalten eines Systems einbringen. Von den bekannten Verfahren zum Scheduling werden in Echtzeitbetriebssystemen auschließlich prioritätsbasierte Verfahren eingesetzt. Die prioritätsbasierten Verfahren unterscheiden sich i.d.r. darin, auf welche Art die Priorität eines Prozesses bestimmt wird. Allen gemein ist, dass aus der Menge der rechenbereiten Prozesse immer der mit der höchsten Priorität ausgewählt wird. Die Prioritätsbasierten Verfahren lassen sich nach dem Zeitpunt, zu dem die Prioritäten einzelner Prozesse vergeben werden, in statische

9 4 BASISDIENSTE VON ECHTZEITBETRIEBSSYSTEMEN 7 Abbildung 2: Übersicht einige prioritätsbasierten Schedulingverfahren und dynamische Verfahren einteilen. Eine Übersicht über die wichtigsten eingesetzten Verfahren bietet die folgende Grafik. Bei der Betrachtung von Schedulingverfahren im Bereich von Echtzeitbetriebssystemen, wird unterschieden zwischen periodischen und aperiodischen Tasks. Aperiodische Tasks mit einer harten Echtzeitanforderung werden häufig auch als sporadische Tasks bezeichnet. Ein periodischer Task wird periodisch zu vorhersagbaren Zeitpunkten in äquidistanten Intervallen aktiviert, wobei ein sporadischer Task i.d.r. beim Auftreten von externe Ereignisse aktiviert werden muss. In der Regel sind Echtzeitsysteme reaktive Systeme, d.h. beschränken sich nicht nur auf periodische Tasks sondern arbeiten ebenfalls in hohem Maße mit aperiodischen Tasks. Im folgenden soll nur kurz auf die Eigenheiten der drei wichtigsten Schedulingverfahren eingegangen werden. Eine detaillierte Diskussion der einzelnen Verfahren findet sich u.a. in [3] und [1]. Deadline Monotonic Scheduling: Beim Deadline Monotonen Scheduling werden den einzelnen Task vor der Laufzeit statische Prioritäten zugewiesen. Die Priorität eines Tasks ergibt sich hierbei aus der Länge seiner Deadline und wird invers zu dieser vergeben, dh. je Länger die Zeit zur Deadline desto niedriger die Priorität. Ratenmonotones (rate monotonic) Scheduling: Beim ratenmonotonen Scheduling werden den Prozesse ebenfalls vor der Laufzeit statische Prioritäten zugewiesen. Das ratenmonotone Scheduling lässt sich nur auf periodische Tasks anwenden, also solche Tasks, deren aktivierung periodisch zu vorhersagbaren Zeitpunkten in äquidistanten Intervallen geschehen soll. Die Priorisierung geschieht hierbei anhand der Rate, mit der ein Prozess aktiviert werden muss. Solche Prozesse die häufiger (höher frequent) aktiviert werden müssen, bekommen a priori eine höhere Priorität zugewiesen, als solche deren Aktivierung weniger häufig erforderlich ist. Earliest Deadline First: Beim EDF Scheduling wird den einzelnen rechenbereiten Prozessen abhängig von ihrer Zeitschranke dynamisch eine Priorität zugeordnet. Hierbei bekommen solche Prozesse,

10 4 BASISDIENSTE VON ECHTZEITBETRIEBSSYSTEMEN 8 deren Zeitschranke am nächsten ablaufen wird, die höchste Priorität zugeordnet und somit als nächstes zur Ausführung gebracht. Least Laxity First: Der LLF Schedulingalgorithmus ist eine Variante des EDF, bei der auch die voraussichtliche Ausführungszeit des Tasks mit zur Berechnung der Priorität herangezogen wird. Bei jedem Schedulingzyklus wird die Zeit berechnet, die ein Task bis zum erreichen seiner Deadline noch übrig haben würde, wenn er von dem Schedulingzeitpunkt bis zu seiner Beendigung den Prozessor zu seiner Verfügung hätte. Diese Zeit wird als Laxity bezeichnet. Den Prozessor bekommt nun derjenige Prozess zugeteilt, der die geringste Laxity zu einem gegebenen Zeitpunkt besitzt. Wie man sicherlich erkannt hat, beschränken sich sämtliche oben aufgeführten Schedulingalgorithmen auf das Scheduling von periodischen Tasks. Dies liegt daran, dass das Scheduling von aperiodische Tasks sehr komplex ist und in einer gemischten Umgebung von periodischen und aperiodischen Tasks meist derart auf das Scheduling von Periodischen Tasks zurückgeführt wird, dass man einen hoch priorisierten periodischen Servertask einführt, der während seiner Ausführungszeit anstehende aperiodische Tasks auf Basis des ihm zustehenden Quantums die CPU benutzen lässt. Diese herangehensweise reduziert das Schedulingproblem aperiodischer Tasks auf das Polling anstehender aperiodischer Tasks und basieren meist auf dem Ratenmonotonen- oder EDF-Schedulingalgorithmus. Beispiele für diese Art von aperiodischen Schedulingalgorithmen sind u.a. der Priority Exchange, Deferrable Server, sowie der Sporadic Server Algorithmus [4]. Ein weiterer Aspekt, der sowohl mit dem Scheduling aber auch mit der Reaktion auf externe Ereignisse zusammenhängt, ist die Art, mit der Dienste des Systemkerns ausgeführt werden. Die meisten allgemeinen Betriebssysteme blockieren während der Ausführung von Systemdiensten im Kernelmode die Interrupts um eine Verdrängung während der Bearbeitung von Serviceanforderungen zu unterbinden. Diese vorgehensweise ist in allgemeinen Betriebssystemen auch gänzlich unproblematisch, ist jedoch in Echtzeitbetriebssystemen nicht anwenbar. Stellt nämlich ein Task zu einem gegebenen Zeitpunkt während seiner Ausführungszeit einen Servicerequest an das Betriebssystem, könnten bei einer nicht unterbrechbarkeit der Systemdienste keinerlei Schedulingaktivitäten oder Reaktionen auf externe Ereignisse vonstatten gehen. Dies wäre der Vorhersagbarkeit des System bzgl. des Zeitverhaltens nicht besonders zuträglich und in dem Fall das ein Task just zu diesem Zeitpunkt eine Prozessorzuteilung benötigt, um seine Deadline einzuhalten wäre eine Fehlersituation vorprogrammiert. Aus diesem Grunde werden die Systemdienste soweit wie möglich so konzipiert, dass eine Verdrängung im Kernelmode möglich ist. Bei der Betrachtung des Zeitverhaltens eines Systems, spielt die Latenzzeit eines Schedulingalgorithmus eine große Rolle. Wie dem Leser sicherlich bekannt ist, muss bei einem Kontextwechsel der aktuelle Prozessorzustand in den Hauptspeicher gerettet werden, was eine gewisse Zeit benötigt. Zu dieser Latenzzeit summiert sich natürlich auch die Zeit, die der jeweilige Schedulingalgorithmus benötigt, um den nächsten zu aktivierenden Prozess aus der Menge der rechenbereiten Prozesse auszuwählen. Hierbei ist natürlich ausschlaggebend, dass ein Algorithmus eine definierte zeitliche Obergrenze für die Ermittlung des nächsten auszuführenden Prozesses, unabhängig von der Anzahl der wartenden Prozesse haben muss, um den zeitlichen Determinismus des Systems nicht zu gefährden.

11 4 BASISDIENSTE VON ECHTZEITBETRIEBSSYSTEMEN Speicherverwaltung Die Speicherverwaltung in Echtzeitsystemen unterscheidet sich meist stark von der in allgemeinen Betriebssystemen eingesetzten Speicherverwaltung. Die gängige konventionelle Hardware enthält eine ganze Reihe von Mechanismen um die Anforderungen der Software zu unterstützen und die Systemperformance zu optimieren. So unterstützen eigentlich alle modernen Architekturen hoch entwickelte Mechanismen wie Caching, virtuellen Speicher mit Paging und Swapping, sowie die Segmentierung des Hauptspeichers. Alle diese Mechanismen dienen in den heutigen Systemen dazu die Anzahl der nebenläufig ausführbaren Programme zu erhöhen, ohne durch den physikalisch vorhandenen Hauptspeicher limitiert zu sein oder die Zugriffsgeschwindigkeit auf den Hauptspeicher zu optimieren. Eben solche Mechanismen lassen jedoch ein sicheres Vorhersagen des Zeitverhaltens nicht zu, weshalb in Echtzeitbetriebssystemen Lösungen gefunden werden müssen um mit den Problematiken die konventionelle Hardware für die Vorhersagbarkeit des Zeitverhaltens mit sich bringt. Weitere Probleme tun sich auf, wenn man die in modernen Betriebssystemen angewendete dynamische Alloziierung von Hauptspeicher anschaut. In Echtzeitbetriebssystemen wird die dynamische Allozierung von Hauptspeicher meist mit sehr einfachen Strategien wie begrenzten Memory-Pools oder First Fit Strategien wie in VxWorks gearbeitet und manche Echtzeitbetriebssysteme wie RTLinux verzichten sogar vollständig auf die dynamische Alloziierung des Hauptspeichers. Vor allem solche Strategien, die eine Externe Fragmentierung des Hauptspeichers verursachen sind in Echtzeitsystemen problematisch.[13] Die Speicherhierarchie in Echtzeitbetriebssystemen ist in der Regel Flach und verzichtet auf Konzepte wie virtuellem Speicher mit Paging und Swapping sowie der Isolierung von einzelnen Prozessen innerhalb des Hauptspeichers. Vor allem das Konzept des auf Swapping und Paging basierenden virtuellen Speichers lässt sich in Echtzeitbetriebssystemen nicht verwenden, da die Ein- und Auslagerung von Speicherseiten in/aus dem Hauptspeicher eine nicht vorhersagbare Latenzzeit in die Bearbeitung von Tasks einbringt. In Echtzeitbetriebssystemen die trotzdem Paging und Swapping unterstützen werden Mechanismen bereitgestellt um Speicherseiten oder ganze Echtzeitprozesse im Hauptspeicher resident zu halten. Weiterhin Problematisch sind auch die Konzepte des Caching und Direkten Hauptspeicherzugriffs, da auch diese Mechanismen eine unvorhersagbare Verzögerung bzw. nichtdeterministisches Zeitverhalten in ein Echtzeitsystem einbringen. Beim DMA können aufgrund des sogenannten Cycle Stealing und den Cache Koheränzen unvorhersagbare Verzögerungen auftreten. Beim Cycle Stealing kann der Prozessor nach gewährter Busanforderung durch den DMA Controller ggf. einen darauffolgenden Buszugriff nur Verzögert durchführen, wenn der DMA Controller noch den Bus belegt, was natürlich nicht vorhersagbar ist. Das Problem mit Caching ist, dass durch Cache Misses eine gewisses Maß an Unvorhersagbarkeit bzgl. des Zeitverhaltens einer Task in das System eingebracht wird. Das Problem wird deutlich, wenn man sich vor Augen führt, dass z.b. bei einem Kontextwechsel der Cacheinhalt in der Regel vollständig oder in Teilen ungültig wird und der Cache bei erneuter Einlagerung mit gültigen Daten schrittweise wieder aufgebaut werden muss und das Maß an tatsächlichen notwendigen Hauptspeicherzugriffen nicht im Voraus bestimmen kann. Um das Problem zu umgehen kann man entweder den Cache in einzelne Partitionen teilen, die einem Task exclusiv zugeteilt werden oder das Caching für bestimmte Speicherbereiche deaktivieren.[3]

12 4 BASISDIENSTE VON ECHTZEITBETRIEBSSYSTEMEN Synchronisation & Kommunikation Ein weiteres Kapitel bei der Betrachtung von Echtzeitbetriebssystemen und echtzeitfähiger Software nimmt die Synchronisation und Kommunikation nebenläufiger Prozesse ein. Synchronisation von Prozessen impliziert in der Regel eine Zeit in der ein Prozess auf die Beendigung einer Tätigkeit eines anderen Prozesses warten muss. Solche Wartezeiten sind natürlich nicht immer Problematisch sondern in vielen Fällen durchaus gewünscht, jedoch muss in einem Echtzeitsystem eben diesen Wartebedingungen eine besondere Aufmerksamkeit gewidmet werden damit die Synchronisation nicht zum Verpassen einer zeitlichen Schranke für die Bearbeitung einer bestimmten Aufgabe führt. Weiterhin muss man auch die Möglichkeiten von Blockierungen erwägen, wenn man bei der Echtzeitprogrammierung mit Prozesssynchronisation und Kommunikation arbeitet. Sicherlich unterscheiden sich echtzeitfähige Programme bzgl. der Blockierungen nicht von konventionellen Programmen, jedoch sind die Auswirkungen von Blockierungen in Echtzeitsystemen in der Regel bedeutend schwerwiegender. Die Mechanismen zur Realisierung von Prozesssynchronisation unterscheiden sich in der Regel nicht von den in allgemeinen Betriebssystemen angewendeten Mechanismen, wie Spinlocks und Semaphoren oder die Sperrung von Interrupts. Zusätzlich zu diesen Möglichkeiten bieten einige Echtzeitbetriebssysteme die Möglichkeit den Scheduler zu deaktivieren, damit zwar die Reaktion auf externe Ereigniss anders als bei der Sperrung von Interrupts noch möglich ist 5, jedoch eine Verdrängung des aktiven Prozesses unabhängig von dessen Priorität unterbunden wird. Ein Problem das bei der Synchronisation von Prozessen mittels einfachen Semaphoren oder Spinlocks auftreten kann, ist das der Prioritäteninversion. Prioritäteninversion bezeichnet das Phänomen, das ein hoch priorisierter Task nicht zur Ausführung gelangt, wenn er auf die Freigabe einer von einem niedriger priorisierten Task akquirierte Resource wartet. Im Normalfall wäre nun die Wartezeit für den hoch priorisierten Task genau die Zeit, die der niedrig priorisierte Task zur Freigabe der Resource benötigt. Nun kann es aber sein das der niedrig priorisierte Task von einem Task mittlerer Priorität verdrängt wird, sodass die Wartezeit für den hoch priorisierten Task unbestimmt wird. Dieses Problem nennt man Prioritäteninversion. Die folgende Abbildung verdeutlicht das Problem anhand eines kleinen Diagramms. Ein schönes Beispiel einer solchen Problematik in der wahren Welt fernab jeglicher theoretischer Annahmen lässt sich in der Pathfinder Mission der NASA im July 1997 finden, in der das Landefahrzeug eine Reihe von zunächst unerklärlicher Soft-Resets erfuhr, die auf das Phänomen der Prioritäteninversion zurückzuführen waren. Der Pathfinder arbeitete mit einer zentral genutzten Resource (ein Bus) die zur Kommunikation von verschiedenen Komponenten des Fahrzeugs genutzt wurde. Die Resource wurde auf Basis eines Mutex zwischen einem niedrig priorisierten Task zur Sammlung metheorologischer Daten und einem hochpriorisierten Busmanagement-Task zur exklusiven Nutzung reserviert. Das System enthielt jedoch auch noch eine Reihe weiterer Tasks, die mit mittlerer Priorität liefen. Die korrekte Arbeit des Busmanagement-Task wurde durch eine Art Watchdog Timer überwacht, der im Fehlerfall die gesamte Landeeinheit Soft-Resetten sollte. Nun kam es in einigen Fällen dazu das der niedrig priorisierte Task von den mittel priorisierten Tasks verdrängt wurde während er den Mutex noch belegt hatte. Nun wurde der hochpriorisierte Task blockiert und nach einer Weile registrierte der Watchdogtimer das der Busmanagement Task seit geraumer Zeit nicht mehr ausgeführt wurde und forcierte in der Annahme 5 Bei der Sperrung von Interrupts wird die Reaktion auf externe Ereignisse unterbunden. Gerade dies ist jedoch in Echtzeitsystemen in den meisten Fällen eher nachteilig.

13 4 BASISDIENSTE VON ECHTZEITBETRIEBSSYSTEMEN 11 Abbildung 3: Exemplarische Timeline für Prioritäteninversion eines fatalen Fehlers ein Reset des Systems. Nach längerem Nachsinnen ließ sich der Fehler auf der Erde reproduzieren, sodass man durch einen Workaround 6 die Mission doch noch ohne weitere Probleme durchführen konnte. [5], [6], [8] Allgemein werden zur Umgehung der Prioritäteninversion zwei Ansätze verfolgt. Beim Priority Ceiling Verfahren wird jeder gemeinsam genutzten Resource eine Priorität zugeordnet, die der Priorität des höchst priorisierten jemals diese Resource verwendeten Prozess entspricht und temporär dem Benutzer zugewiesen wird, der diese Resource im Zugriff hat. Beim Priority Inheritance Verfahren weist man jedem Prozess, der eine Resource im Zugriff hat, auf die ein höher priorisierter Prozess wartet die Priorität des (höher priorisierten) wartenden Prozesses zu. Auf diese Weise vermeidet man das ein Prozess, der eine gemeinsam genutzte Resource im Zugriff hat, auf die ein höher priorisierter Task wartet, von einem Task mittlerer Priorität verdrängt wird.[7] Für die Task-Kommunikation bieten die meisten Echtzeitbetriebssysteme Message Queues, Shared Memory oder Pipes an. Hierin unterscheiden sich die von Echtzeitbetriebssystemen bereitgestellten Mechanismen nicht wesentlich von den Mechanismen, die allgemeine Betriebssysteme bereitstellen. In einigen Fällen, wie z.b. in VxWorks, die auch einen vollständige Netzwerksupport bieten, wird zudem noch die 6 Der Workaround basierte darauf, dass bei dem eingesetzten Echtzeitbetriebssystem VxWorks die Möglichkeit besteht, bei der Erzeugung eines Mutex oder Semaphor zu spezifizieren ob dieser Mutex mit Priority Inheritance arbeiten soll und der Lander im Nachhinein offensichtlich zur Nutzung dieses Features umprogrammiert werden konnte.

14 5 VXWORKS 12 Kommunikation über Sockets bereitgestellt. 4.4 Device I/O Supervision Die I/O Schnittstellen in Echtzeitbetriebssystemen stellen in der Regel Kommunikationsmöglichkeiten für eine Vielfalt an Geräten bereit. In der Regel umfassen Echtzeitbetriebssysteme unterstützung für Block- und Zeichenorientierte Geräte wie Festplatten, Standard Ein- und Ausgabe, periphere Interfaces über serielle und parallele Schnittstellen und mittlerweile auch relativ häufig ebenfalls für Netzwerkinterfaces. Die Kommunikation mit I/O Geräten in Echtzeitbetriebssystemen bedarf wie die Prozesssynchronisation ebenfalls einer besonderen Aufmerksamkeit seitens des Echtzeitprogrammierers, da die typischen I/O Operationen, insbesondere auf blockorientierten Geräten wie Festplatten, zu schwer vorhersagbaren zeitlichen Verzögerungen führen können. Im allgemeinen sollten I/O Operationen nur unter sorgfältiger Erwägung des Zeitverhaltens der I/O Operationen erfolgen, wenn möglich ausserhalb von Tasks die Echtzeitanforderungen haben. In einigen Fällen stellen Echtzeitbetriebssysteme auch Schnittstellen für asynchrones I/O bereit. Asynchrones I/O unterscheidet sich von synchronem I/O dadurch, dass der Aufrufende Task bei asynchronem I/O nicht blockiert wird, bis die I/O Operation beendet ist. Dies macht natürlich nicht in allen Fällen Sinn, z.b. nicht beim Einlesen von Dateien oder dem Lesen von Daten eines Netzerkinterfaces. 5 VxWorks Nachdem nun im ersten Teil der Arbeit ein Überblick über Besonderheiten die beim Design von Echtzeitbetriebssystemen und echtzeitfähigen Programmen beachtet werden müssen, werden ich nachfolgend exemplarisch auf das Echtzeitbetriebssystem VxWorks eingehen. VxWorks ist das zur Zeit am häufigsten in Produktivumgebungen eingesetzte Echtzeitbetriebssystem auf dem Markt und wird von dem Kalifornischen Unternehmen WindRiver seit 1981 als Produkt angeboten. Das System besteht aus dem Wind Echtzeitkernel und einer Anzahl an optionalen Erweiterungspaketen u.a. zur Unterstützung von erweiterten Speicherschutzmechanismen auf Basis der in den meisten Prozessoren Einsatz findenden MMU. Der Kernel bietet auch die nach IEEE b Spezifizierten POSIX realtime extension API an, die eine leichte Portierbarkeit von Applikationen von/auf andere Betriebssysteme ermöglicht. Die Entwicklung auf VxWorks erfolgt in der Regel Crossplatform, d.h. man entwickelt ein Echtzeitsystem auf Basis von VxWorks nicht direkt auf der Zielmaschine sonder nutzt eine Art Emulator, der auf diversen Hostplattformen (z.b. Unix, Solaris, Windows) läuft. Zur Unterstützung des Entwicklungsprozesses stellt WindRiver eine integrierte Entwicklungsumgebung namens Tornado in der Version 2.0 bereit. VxWorks unterstützt eine ganze Reihe an Prozessorarchitekturen wie Intel x86, Intel XScale (hat glaub ich auch einen ARM Core?), ARM, Intel i960, MIPS, PowerPC, SH, Sparc, Motorola MC680x0, uvm. Bestes und wohl auch prominentestes Beispiel für den (wenn auch nicht ganz reibungslosen) Einsatz ist sowohl die Pathfinder Mission, die im July 1997 von der NASA zur Exploration des MARS mit einer Landefähre unternommen wurde[5], als auch der jüngste Einsatz von VxWorks in der NASA/JPL Mission des Mars Exploration Rover im Januar 2004[15].

15 5 VXWORKS 13 Im weiteren werde ich kurz auf architektonische Merkmale des Kernels eingehen und die Eigenschaften des Kernels im Hinblick auf Scheduling, Speicherverwaltung, Synchronisation & Kommunikation und Device I/O beleuchten. 5.1 Scheduling Das Scheduling in VxWorks wird durch einen prioritätenbasierten präemtiven Schedulingalgorithmus vorgenommen. Die Prioritätenvergabe erfolgt statisch und bietet die Möglichkeiten 256 Prioritätsstufen an die Prozesse zu vergeben. Die Prioritäten laufen hierbei von 0 (höchste Priorität) bis 255 (niedrigste Priorität). Der Scheduler bietet die Möglichkeit für Tasks gleicher Priorität einen Round Robin Mode einzusetzen der eine gerechte Prozessorzuteilung an die konkurrierenden Prozesse einer Prioritätsstufe mit konfigurierbaren Zeitscheiben ermöglicht. Ohne die Aktivierung des Round Robin Scheduling findet keine Verdrängung eines Prozesses durch Prozesse gleicher Prioritätsstufe statt. Tasks laufen bei VxWorks gemeinsam mit dem Kernel immer auf der höchsten Privilegierungsstufe, und teilen sich mit diesem einen linearen Adressraum (s.u.). Trotz der statischen Prioritätenvergabe lassen sich die Prioritäten zur Laufzeit anpassen, was unter anderem vom System genutz wird Semaphoren mit dem Priority Inheritance Verfahren gegen Prioritäteninversion zu schützen(s.u).[10], [14] 5.2 Speicherverwaltung VxWorks arbeitet mit einem gemeinsammen linearen Adressraum für Kernel und Tasks, sodass ein Task (da er ja auch im Kernelmode läuft) vollen Zugriff auf den gesamten Speicherbereich hat. Diese Tatsache gibt den Task zwar zum einen ein höchstes Maß an Perforance und Vorhersagbarkeit bzgl. ihres Zeitverhaltens, birgt aber auch die Gefahr bei den immer komplexer werdenden Systemen durch Programmierfehler die Stabilität des Gesamtsystems zu gefährden. Aus diesem Grund gibt es für VxWorks einen grundlegenden und einen erweiterten 7 Support für MMUs, über den Speicherschutzmechanismen wie das Sperren von Speicherseiten für den Zugriff von anderen Tasks zu realisieren. Bdingt durch die Tatsache das kein Virtueller Speicher unterstützt wird, ist natürlich auch der Speicherbedarf von Anwendungen durch den physikalischen Speicherausbau begrenzt.[10], [12] Um dem Problemen für die Vorhersagbarkeit des Zeitverhaltens von Operationen durch Caching entgegenzuwirken unterstützt VxWorks das partielle und vollständige Deaktivieren des Cachings.[10] Die dynamische Allokation von Hauptspeicher geschieht nach (nicht einfach validierbaren) Aussagen in diversen Online Manuals durch einen einfache First-Fit Algorithmus, der eine externe Fragmentierung des Hauptspeichers verursacht. Aus diesem Grund gilt es als Best Practice die Anzahl der dynamischen Speicherallokationen minimal zu halten.[14] 7 Windriver bietet für den erweiterten MMU Support eine Erweiterung für VxWorks namens VxVMI als eigenständiges Produkt an, d.h. dieses ist wohl bei Bedarf explizit zu erwerben. Mittels VxVMI lassen sich dann u.a. automatisch alle Codeseiten im Hauptspeicher mit Schreibschutz versehen, Pufferüberläufe oder das Überschreiben der Interruptvektorentabelle durch Fehlerhafte NULL-Pointer Derefferenzierungen entdecken bzw. unterbinden.

16 5 VXWORKS Synchronisation & Kommunikation In VxWorks werden zur Synchronisation von Prozessen vor allem Semaphoren eingesetzt, die bei ihrer Erzeugung für die Verwendung des Priority Inheritance Verfahrens zum Schutz vor Prioritäteninversionen konfiguriert werden können. Weiterhin stellt der Kernel Mechanismen zur Temporären Deaktivierung des Schedulers oder der Interrupts bereit, um die Verdrängung des aktiven Prozess zu unterbinden. Hierbei ist jedoch besondere Vorsicht geboten, da die Sperrung von Interrupts sämtliche Reaktion auf externe Erreignisse unterbindet. Die Sperrung des Schedulers ermöglicht zwar weiterhin die Reaktion auf Interrupts, verhindert aber auch das solche Prozesse den Prozessor zugeteilt bekommen, deren Deadline herannaht, was durchaus zu einem verpassen der selbigen führen kann. Wie bereits in der allgemeinen Diskussion der Konzepte in Echtzeitbetriebssystemen angesprochen ist bei der Verwendung von Synchronisationmechanismen in Echtzeitsystemen eine besondere Vorsicht geboten, um die zeitlichen Beschränkungen, die einem solchen System auferliegen nicht zu gefährden.[10], [14] Die Kommunikation zwischen Tasks wird i.d.r. durch Message Queues, Pipes, Shared Memory oder Sockets durchgeführt. Der Primäre Kommunikationsmechanismus sind Message Queues, die jedoch ohne eine durch VxVM bereitgestellte Erweiterung nicht für den Einsatz in SMP Systemen vorgesehen sind. Message Queues sind unidirektional und können eine variable Anzahl an ebenso variabel Langen Messages enthalten. Aufgrund der Tatsache dass Message Queues unidirektional sind, erfordert die Vollduplex Kommunikation zweier Tasks auch die Aquisition zweier Message Queues. Das Schreiben und Lesen in bzw. aus der Message Queue kann optional in nicht blockierend geschehen, sodass der Versuch in eine volle Queue zu schreiben bzw. aus einer leeren Queue zu lesen einen Fehlercode zurückgibt anstatt den Task zu blockieren.[10] 5.4 Device I/O Supervision Das Device I/O System von VxWorks stellt eine Reihe von Funktionen zur Durchführung von I/O Aufgaben bereit. Zu den Mechanismen die VxWorks für die Arbeit mit Devices bereitstellt gehören Routinen für synchrones und asynchrones I/O. Der Unterschied zwischen synchronem und asynchronem I/O besteht darin, dass bei asynchronen I/O Operationen der Aufrufer nicht bis zur Beendigung der Operation seitens des Betriebssystems blockiert wird, und somit keine Verzögerungen in das System eingebracht werden. Wie leicht ersichtlich immer ist das Arbeiten mit asynchronem I/O natürlich nur in solchen Fällen Sinnvoll und Möglich, in denen ein Prozess nicht zwingend auf das Ergebnis einer I/O Operation warten muss, wie dies beim Einlesen von Dateien der Fall ist. Zur Operation auf Blockdevices stellt VxWorks eine Reihe von Dateisystemtreibern bereit und unterstützt unter anderem die Dateisysteme RT11, FAT12/16, ISO9660, sowie ein Raw Filesystem, dass das Vorhandene Blockdevice als eine große Datei behandelt und keine Strukturierung in Verzeichnisse unterstütz. Weiterhin stellt VxWorks eine umfangreiche Netzwerkimplementierung bereit, die Unterstützung für SLIP, PPP, TCP/IP und darauf aufbauende Dienste gibt. Für den Umgang mit den verschiedene Hardware Devices stellt VxWorks mit den sogenannten Board Support Packages eine umfangreiche Bibliothek von Geräte-Treibern bereit.

17 6 EPILOG 15 6 Epilog Wie bereits im Abstract erwähnt stellt die vorliegende Arbeit weder eine vollständige Diskussion der gesamten theoretischen Aspekte der Echtzeitprogrammierung und Konzeption von Echtzeitbetriebssystemen, noch eine detailierte Anleitung für die Programmierung von Systemen auf Basis von VxWorks dar, sondern soll eine kurze Einführung in die Thematik bieten. Wenn seitens des Lesers weiterführendes Interresse an diesem Thema besteht, steht es Ihm frei, sich Anhand der nachstehenden Bibliographie mit der Thematik der Echtzeitprogrammierung weiter zu befassen. Weiterhin übernimmt der Author keinerlei Haftung für Schäden die durch Verwendung der in dieser Arbeit dargelegten Informationen entstehen oder für die letztgültige Richtigkeit der gemachten Aussagen über interne Aspekte von VxWorks. Sollten bezüglich des Inhalts konstruktive Korrekturen seitens des Lesers beizusteuern sein, bin ich für eine Benachrichtigung mit einer Auflistung der Beanstandeten Dokumentbestandteile immer Dankbar. Weiterhin gwährt der Author dem Leser hiermit das Recht der Verwendung des vorliegenden Dokuments für private sowie wissenschaftliche und nicht kommerzielle Zwecke, sofern eine gültige Quellenangabe erfolgt. As previously mentioned the present work does neither claim to be a complete discussion of the entire and pretty comprehensive theoretical aspects of programming realtime systems or the design of realtime operating systems nor an detailed instructions to the vxworks based realtime system programming, but is intended to be a brief introduction to the topic of realtime systems. If there is supposed to be some interrest in further reading, one is free to get more comprehensive knowledge to the subject matter by consultating the bibliography given below. The author does even take any reasponsibility for any harm that might result of the use of information provided by the present document or for the completeness or final correctness of the information provided in regard to internal details to VxWorks. Are there supposed to be any corrections to be made on the part of the reader, the author is grateful for any correction proposals. Furtheron the author permits any private, scientific and non-commercial use of the present document, as long as this document is mentioned in the list of references.

18 LITERATUR 16 Literatur [1] Plagge, Frank. Ambrosia - Ein Echtzeit-Betriebssystem für Automoboilsteuergeräte <ftp://ftp-bvs.informatik.uni-oldenburg.de/pub/reports/diss plagge.ps>. [2] Tanenbaum, Andrew S. Moderne Betriebssysteme. 2te, erw. u. akt. Auflage München, Germany: Hanser Verlag, 1995 [3] Ghosh, Kaushik. Mukherjee, Bodhisattwa. Schwan, Karsten. A Survey of Real-Time Operating Systems - Draft. February 15, Georgia Institute of Technology. < sikangzszsurveyzszgms94.ps.gz/ghosh94survey.ps>. [4] Sprunt, Brinkley Aperiodic Task Scheduling for Real-Time Systems. August Department of Electrical and Computer Engineering Carnegie Mellon University. < bsprunt/publications/phd thesis/aperiodic task scheduling thesis.pdf>. [5] Jones, Mike. What really happened on Mars. Sunday, December 07, :47 PM. Microsoft Research. < mbj/mars Pathfinder/Mars Pathfinder.html>. [6] Kalinsky, David. Barr, Michael. Introduction to Priority Inversion. August CMP Media, LLC. < [7] Locke, Doug. Priority Inheritance: The Real Story. July 16, Linuxdevices.com. < [8] Priority Inversion and the Mars Pathfinder. Copyright c Time-Rover Corp. < [9] WindRiver. VxWorks Reference Manual v5.4. Copyright Wind River Systems, Inc. < file.php?fileid=11>(cached copy of original file). [10] WindRiver. VxWorks Programmer s Guide v5.4. Copyright Wind River Systems, Inc. < file.php?fileid=12>(cached copy of original file). [11] WindRiver. VxWorks Network Programmer s Guide v5.4. Copyright Wind River Systems, Inc. < file.php?fileid=10>(cached copy of original file). [12] WindRiver. Implementing Basic Memory Protection in VxWorks: A Best Practices Guide. Copyright Wind River Systems, Inc. < vxworks vxvmi.pdf>. [13] Dankwardt, Kevin. Basic concepts of real-time operating systems. November 18, < [14] Gordon, John. VxWorks Cookbook. April 15, Bluedonkey.org. <

19 LITERATUR 17 [15] WindRiver. Wind River and NASA? Embedded Development for the Extreme Demands of Space Exploration. Copyright Wind River Systems, Inc. <

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

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

Echtzeitscheduling (1)

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

Mehr

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

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

Mehr

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

OSEK Deadline-Analyse

OSEK Deadline-Analyse OSEK Deadline-Analyse GmbH Erlangen Jürgen Scherg 8. Juni 2001 Ein Programmtest muß unter verschiedenen Gesichtspunkten durchgeführt werden. verschiedene Testmethoden sind notwendig. Blackbox : Es wird

Mehr

Speicher in der Cloud

Speicher in der Cloud Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG

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

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

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

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

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

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

Task: Nmap Skripte ausführen

Task: Nmap Skripte ausführen Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses

Mehr

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 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

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

Lizenzierung von SharePoint Server 2013

Lizenzierung von SharePoint Server 2013 Lizenzierung von SharePoint Server 2013 Das Lizenzmodell von SharePoint Server 2013 besteht aus zwei Komponenten: Serverlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung der Zugriffe

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

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

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

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

Windows 8 Lizenzierung in Szenarien

Windows 8 Lizenzierung in Szenarien Windows 8 Lizenzierung in Szenarien Windows Desktop-Betriebssysteme kommen in unterschiedlichen Szenarien im Unternehmen zum Einsatz. Die Mitarbeiter arbeiten an Unternehmensgeräten oder bringen eigene

Mehr

Analyse zum Thema: Laufzeit von Support-Leistungen für ausgewählte Server OS

Analyse zum Thema: Laufzeit von Support-Leistungen für ausgewählte Server OS Analyse zum Thema: Laufzeit von Support-Leistungen für Axel Oppermann Advisor phone: +49 561 506975-24 mobile: +49 151 223 223 00 axel.oppermann@experton-group.com Januar 2010 Inhalt Summary und Key Findings

Mehr

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem 20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem Autor Susanne Albers, Universität Freiburg Swen Schmelzer, Universität Freiburg In diesem Jahr möchte

Mehr

RT Request Tracker. Benutzerhandbuch V2.0. Inhalte

RT Request Tracker. Benutzerhandbuch V2.0. Inhalte RT Request Tracker V2.0 Inhalte 1 Was ist der RT Request Tracker und wo finde ich ihn?...2 2 Was möchten wir damit erreichen?...2 3 Wie erstelle ich ein Ticket?...2 4 Wie wird das Ticket abgearbeitet?...4

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken? UErörterung zu dem Thema Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken? 2000 by christoph hoffmann Seite I Gliederung 1. In zu großen Mengen ist alles schädlich. 2.

Mehr

Installation der SAS Foundation Software auf Windows

Installation der SAS Foundation Software auf Windows Installation der SAS Foundation Software auf Windows Der installierende Benutzer unter Windows muss Mitglied der lokalen Gruppe Administratoren / Administrators sein und damit das Recht besitzen, Software

Mehr

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH Amt für Informatik Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH Anleitung vom 12. September 2009 Version: 1.0 Ersteller: Ressort Sicherheit Zielgruppe: Benutzer von SSLVPN.TG.CH Kurzbeschreib:

Mehr

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010 1 von 6 Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010 ci solution GmbH 2010 Whitepaper Draft Anleitung Deutsch Verfasser: ci solution GmbH 2010 Manfred Büttner 16. September

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

Windows 10 > Fragen über Fragen

Windows 10 > Fragen über Fragen www.computeria-olten.ch Monatstreff für Menschen ab 50 Merkblatt 103 Windows 10 > Fragen über Fragen Was ist das? Muss ich dieses Upgrade machen? Was bringt mir das neue Programm? Wie / wann muss ich es

Mehr

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch Einfache und effiziente Zusammenarbeit in der Cloud EASY-PM Office Add-Ins Handbuch Inhaltsverzeichnis 1. Einführung... 3 2. Ribbonmenü... 4 3. Dokument... 5 3.1 Öffnen... 5 3.2 Speichern... 6 3.3 Speichern

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

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren Ziel der Anleitung Sie möchten ein modernes Firewallprogramm für Ihren Computer installieren, um gegen

Mehr

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.

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

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

Research Note zum Thema: Laufzeit von Support-Leistungen für Server OS

Research Note zum Thema: Laufzeit von Support-Leistungen für Server OS Research Note zum Thema: Laufzeit von Support-Leistungen für Axel Oppermann Advisor phone: +49 561 506975-24 mobile: +49 151 223 223 00 axel.oppermann@experton-group.com November 2009 Inhalt 1 EINFÜHRUNG

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

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele: 2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Configuring Terminal Services o Configure Windows Server 2008 Terminal Services RemoteApp (TS RemoteApp) o Configure Terminal Services Gateway

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

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

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger Software Engineering (Übungsblatt 2) Sommersemester 2012, Dr. Andreas Metzger Übungsblatt-Themen: Prinzip, Technik, Methode und Werkzeug; Arten von Wartung; Modularität (Kohäsion/ Kopplung); Inkrementelle

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. ewon - Technical Note Nr. 003 Version 1.2 Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. Übersicht 1. Thema 2. Benötigte Komponenten 3. Downloaden der Seiten und aufspielen auf

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

DSO. Abtastrate und Speichertiefe

DSO. Abtastrate und Speichertiefe DSO Abtastrate und Speichertiefe Inhalt Inhalt...- 1 - Feine Signaldetails und lange Abtastzeiträume...- 2 - Was ein großer Speicher bewirkt...- 2 - Einfluss der Oszilloskop-Architektur auf die Update-Rate...-

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1): Supportanfrage ESN Bitte füllen Sie zu jeder Supportanfrage diese Vorlage aus. Sie helfen uns damit, Ihre Anfrage kompetent und schnell beantworten zu können. Verwenden Sie für jedes einzelne Thema jeweils

Mehr

ANYWHERE Zugriff von externen Arbeitsplätzen

ANYWHERE Zugriff von externen Arbeitsplätzen ANYWHERE Zugriff von externen Arbeitsplätzen Inhaltsverzeichnis 1 Leistungsbeschreibung... 3 2 Integration Agenda ANYWHERE... 4 3 Highlights... 5 3.1 Sofort einsatzbereit ohne Installationsaufwand... 5

Mehr

Europäischer Fonds für Regionale Entwicklung: EFRE im Bundes-Land Brandenburg vom Jahr 2014 bis für das Jahr 2020 in Leichter Sprache

Europäischer Fonds für Regionale Entwicklung: EFRE im Bundes-Land Brandenburg vom Jahr 2014 bis für das Jahr 2020 in Leichter Sprache Für Ihre Zukunft! Europäischer Fonds für Regionale Entwicklung: EFRE im Bundes-Land Brandenburg vom Jahr 2014 bis für das Jahr 2020 in Leichter Sprache 1 Europäischer Fonds für Regionale Entwicklung: EFRE

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

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

Schedulingalgorithmen Rechenzeitverteilung auf Betriebssystemebene. Andi Drebes Fachbereich Informatik Universität Hamburg

Schedulingalgorithmen Rechenzeitverteilung auf Betriebssystemebene. Andi Drebes Fachbereich Informatik Universität Hamburg Schedulingalgorithmen Rechenzeitverteilung auf Betriebssystemebene Andi Drebes Fachbereich Informatik Universität Hamburg Gliederung Notwendigkeit des Schedulings Einführung: Begriff des Multitaskings

Mehr

Gruppenrichtlinien und Softwareverteilung

Gruppenrichtlinien und Softwareverteilung Gruppenrichtlinien und Softwareverteilung Ergänzungen zur Musterlösung Bitte lesen Sie zuerst die gesamte Anleitung durch! Vorbemerkung: Die Begriffe OU (Organizational Unit) und Raum werden in der folgenden

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

TechNote: Exchange Journaling aktivieren

TechNote: Exchange Journaling aktivieren Produkt: Kurzbeschreibung: NetOrchestra MA Emailarchivierung Exchange Journaling aktivieren Diese Anleitung hilft Ihnen, das nachfolgend geschilderte Problem zu beheben. Dazu sollten Sie über gute bis

Mehr

Online Newsletter III

Online Newsletter III Online Newsletter III Hallo zusammen! Aus aktuellem Anlass wurde ein neuer Newsletter fällig. Die wichtigste Neuerung betrifft unseren Webshop mit dem Namen ehbshop! Am Montag 17.10.11 wurde die Testphase

Mehr

Effiziente Administration Ihrer Netzwerkumgebung

Effiziente Administration Ihrer Netzwerkumgebung Admin Anwender Aufträge, Freigaben Verwaltet Benutzer, Mailboxen, Ordner und vergibt Berechtigungen Anbindung von Fremdsystemen Erzeugt und pflegt Mailboxen und Datenbanken Benutzerinformationen und Konventionen

Mehr

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote Zweck dieser Anleitung ist es einen kleinen Überblick über die Funktion Last Minute auf Swisshotelportal zu erhalten. Für das erstellen

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Einrichten der Outlook-Synchronisation

Einrichten der Outlook-Synchronisation Das will ich auch wissen! - Kapitel 3 Einrichten der Outlook-Synchronisation Inhaltsverzeichnis Überblick über dieses Dokument... 2 Diese Kenntnisse möchten wir Ihnen vermitteln... 2 Diese Kenntnisse empfehlen

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht

Mehr

robotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand: 28.05.2014

robotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand: 28.05.2014 robotron*e count robotron*e sales robotron*e collect Anwenderdokumentation Version: 2.0 Stand: 28.05.2014 Seite 2 von 5 Alle Rechte dieser Dokumentation unterliegen dem deutschen Urheberrecht. Die Vervielfältigung,

Mehr

Projektmanagement in der Spieleentwicklung

Projektmanagement in der Spieleentwicklung Projektmanagement in der Spieleentwicklung Inhalt 1. Warum brauche ich ein Projekt-Management? 2. Die Charaktere des Projektmanagement - Mastermind - Producer - Projektleiter 3. Schnittstellen definieren

Mehr

Buchhaltung mit WISO EÜR & Kasse 2011

Buchhaltung mit WISO EÜR & Kasse 2011 Vorbemerkung... 1 1. Erste Schritte...Fehler! Textmarke nicht definiert.3 2. Einrichten des Programms... 5 3. Buchungen... 22 1. Anfangsbestand buchen... 22 2. Privateinlage in die Kasse... 26 4. Buchungen

Mehr

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel 2016. für Mac. amac-buch Verlag

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel 2016. für Mac. amac-buch Verlag Anton Ochsenkühn amac BUCH VERLAG Ecxel 2016 für Mac amac-buch Verlag 2 Word-Dokumentenkatalog! Zudem können unterhalb von Neu noch Zuletzt verwendet eingeblendet werden. Damit hat der Anwender einen sehr

Mehr

Lizenzierung von SharePoint Server 2013

Lizenzierung von SharePoint Server 2013 Lizenzierung von SharePoint Server 2013 Das Lizenzmodell von SharePoint Server 2013 besteht aus zwei Komponenten: Serverlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung der Zugriffe

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

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

DIE SCHRITTE ZUR KORREKTEN LIZENZIERUNG

DIE SCHRITTE ZUR KORREKTEN LIZENZIERUNG Datacenter für Itanium-basierte Systeme Einsatz in virtuellen Umgebungen Für die Lizenzbestimmungen spielt es keine Rolle, welche Art der Virtualisierung genutzt wird: Microsoft Virtual Server, Microsoft

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

Das Leitbild vom Verein WIR

Das Leitbild vom Verein WIR Das Leitbild vom Verein WIR Dieses Zeichen ist ein Gütesiegel. Texte mit diesem Gütesiegel sind leicht verständlich. Leicht Lesen gibt es in drei Stufen. B1: leicht verständlich A2: noch leichter verständlich

Mehr

Parallels Mac Management 3.5

Parallels Mac Management 3.5 Parallels Mac Management 3.5 Deployment-Handbuch 25. Februar 2015 Copyright 1999 2015 Parallels IP Holdings GmbH und Tochterunternehmen. Alle Rechte vorbehalten. Alle anderen hierin erwähnten Marken und

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

Windows Server 2012 R2 Essentials & Hyper-V

Windows Server 2012 R2 Essentials & Hyper-V erklärt: Windows Server 2012 R2 Essentials & Hyper-V Windows Server 2012 R2 Essentials bietet gegenüber der Vorgängerversion die Möglichkeit, mit den Boardmitteln den Windows Server 2012 R2 Essentials

Mehr

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert: Firewall für Lexware professional konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Windows XP SP2 und Windows 2003 Server SP1 Firewall...1 4. Bitdefender 9... 5 5. Norton Personal

Mehr

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014 Konfiguration VLAN's Version 2.0.1 Deutsch 01.07.2014 In diesem HOWTO wird die Konfiguration der VLAN's für das Surf-LAN der IAC-BOX beschrieben. Konfiguration VLAN's TITEL Inhaltsverzeichnis Inhaltsverzeichnis...

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

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

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

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

Dokumentation zum Spielserver der Software Challenge

Dokumentation zum Spielserver der Software Challenge Dokumentation zum Spielserver der Software Challenge 10.08.2011 Inhaltsverzeichnis: Programmoberfläche... 2 Ein neues Spiel erstellen... 2 Spielfeldoberfläche... 4 Spielwiederholung laden... 5 Testdurchläufe...

Mehr

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

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

Schritt-Schritt-Anleitung zum mobilen PC mit Paragon Drive Copy 10 und VMware Player

Schritt-Schritt-Anleitung zum mobilen PC mit Paragon Drive Copy 10 und VMware Player 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

Anwenderdokumentation PersoSim

Anwenderdokumentation PersoSim Anwenderdokumentation PersoSim Die nachfolgende Anwenderdokumentation soll dem Anwender bei der Installation und den ersten Schritten im Umgang mit PersoSim helfen. Installation Grundvoraussetzung für

Mehr

LPT1 Anschluss mit PCMCIA Karte

LPT1 Anschluss mit PCMCIA Karte 1. Allgemeines LPT1 Anschluss mit PCMCIA Karte verwendete Hardware: Lenze PC Systembusadapter EMF 2173-V003 PCMCIA Karte Firma QUATECH Typ SPP-100 Auf die Installation der PCMCIA Karte wird hier nicht

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

GRS SIGNUM Product-Lifecycle-Management

GRS SIGNUM Product-Lifecycle-Management GRS SIGNUM Product-Lifecycle-Management Das optionale Modul Product-Lifecycle-Management stellt eine mächtige Ergänzung zum Modul Forschung & Entwicklung dar. Folgende Punkte werden dabei abgedeckt: Definition

Mehr

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen walker radio tv + pc GmbH Flüelerstr. 42 6460 Altdorf Tel 041 870 55 77 Fax 041 870 55 83 E-Mail info@walkerpc.ch Wichtige Informationen Hier erhalten sie einige wichtige Informationen wie sie ihren Computer

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr