Echtzeit Betriebssysteme. VxWorks
|
|
- Karin Melsbach
- vor 8 Jahren
- Abrufe
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
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
MehrVorbereitung 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
MehrEchtzeitscheduling (1)
Echtzeitscheduling (1) Scheduling in Betriebssystemen Ressourcenausteilung (CPU, Speicher, Kommunikation) Faire Ressourcenvergabe, insbesondere CPU Hohe Interaktivität / kurze Reaktionszeit für interaktive
MehrScheduling 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
MehrSysteme 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
MehrOSEK 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
MehrSpeicher 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
MehrTask 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
MehrProfessionelle 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 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
MehrEinrichten 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
Mehr1 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
MehrDas 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
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrFormular»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
MehrStep 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
MehrTask: 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
MehrIn 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
MehrSANDBOXIE 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:
MehrLizenzierung 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
MehrSystemsoftware (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
MehrFachbericht 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
MehrBitte 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
MehrOrdner 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.
MehrWindows 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
MehrAnalyse 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
Mehr20. 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
MehrRT 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
MehrDatensicherung. 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
MehrAGROPLUS 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
MehrIst 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.
MehrInstallation 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
MehrAnleitung 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:
MehrAnlegen 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
MehrEmbedded 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
MehrWindows 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
MehrEinfache 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
MehrSysteme 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
MehrAnleitung 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
MehrAlbert 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.
MehrArchitektur 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 =
MehrMonitore. 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
MehrResearch 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
MehrZeichen 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
Mehr2 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
MehrLizenzierung 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
Mehr4D 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
MehrSoftware 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
MehrPrimzahlen 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
MehrUniversal 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 Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess
MehrDSO. 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...-
Mehr1 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.
MehrVersion 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
MehrANYWHERE 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
MehrEuropä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
MehrOSEK / 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
MehrGrundlagen 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)
MehrSchedulingalgorithmen 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
MehrGruppenrichtlinien 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
MehrSafeRun-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
MehrTechNote: 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
MehrOnline 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
MehrEffiziente 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
MehrAnleitung 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
MehrHandbuch 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
MehrEinrichten 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
MehrObjektorientierte 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
MehrZwischenablage (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
MehrWichtige 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
Mehrrobotron*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,
MehrProjektmanagement 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
MehrBuchhaltung 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
MehrAnton 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
MehrLizenzierung 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
MehrUrlaubsregel 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 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
MehrDIE 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
MehrDokumentation 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.......................
MehrDas 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
MehrParallels 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
MehrEs 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
MehrWindows 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
MehrFolgende 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
MehrKonfiguration 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...
MehrTapps 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...
MehrLö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,
MehrAnleitung ü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
MehrAnleitung 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
MehrDokumentation 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...
Mehrgeben. 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
MehrIn 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
MehrSchritt-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
MehrAnwenderdokumentation 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
MehrLPT1 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
MehrRound-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
MehrGRS 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
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
Mehrmysql - 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