Automotive Operating Systems: OSEK/VDX

Größe: px
Ab Seite anzeigen:

Download "Automotive Operating Systems: OSEK/VDX"

Transkript

1 Automotive Operating Systems: OSEK/VDX Joshua Billert TU Kaiserslautern, Embedded Systems Group Einführung Im Automobilbereich wird Softwareentwicklung immer relevanter. Wo früher noch keine C Programme ihren Dienst verrichteten, steht heute ein großes Softwarepaket dahinter. Auch die Vielfalt der Hardware, welche in den einzelnen Automobilen verwendet wird, wächst stetig. Spezielle Hardware benötigt auch spezielle Software. Von Modellreihe zu Modellreihe werden andere Hardwareteile verwendet. Dies kann einen sehr großen Aufwand zum Portieren der Software bedeuten, der gleichzeitig mit hohen Kosten verbunden ist. Auch ein Wechsel der Bauteilen von Zulieferfirmen kann massive Änderungen in Software bedeuten. Um Kosten für das Portieren von Software zu reduzieren wurde im Mai 1993 das OSEK ( Offene Systeme und deren Schnittstellen für die Elektronik im Kraftfahrzeug ) Projekt als ein gemeinsamer Industriestandard von vielen deutschen Firmen ins Leben gerufen wurde das Projekt mit dem französischem VDX-Ansatz ( Vehicle Distributed executive ), welcher das gleiche Ziel verfolgte, zusammengelegt. In der folgenden Arbeit, werden zunächst kurz die Ziele und Vorteile von OSEK beschrieben. Anschließend folgt eine Übersicht des Standards. Kapitel 3 und 4 behandeln ausführlich das Betriebssystem und die wichtigsten Grundlagen. Während Kapitel 3 sich mit der ereignisorientierten Variante von OSEK auseinandersetzt, wird im 4. Kapitel die zeitgetriggerte und statisch konfigurierte Variante vorgestellt. Im darauf folgenden Abschnitt wird die kombinierte Umsetzung beider Varianten erklärt. Abschließend reißt diese Arbeit noch die Umsetzung des Standards mit der für OSEK entworfenen Implementierungssprache an.

2 1 Ziele und Vorteile Das Ziel des Projektes ist die Schaffung einer Basis für portierbare und wiederverwendbare Softwaremodule. Erreicht wird dies durch die Spezifikation von abstrakten und Anwendungsunabhängigen Interfaces [5]. Die daraus resultierenden Vorteile sind hauptsächlich Einsparungen von Entwicklungszeit und somit auch von Kosten. Durch das Festlegen von Entwicklungsstandards wird gleichzeitig auch ein gewisser Qualitätsstandard sichergestellt [5]. 2 Übersicht Die von OSEK Operating Systems bereitgestellte Spezifikation stellt eine einheitliche Umgebung für Software zur Verfügung. Über die Spezifikation wird eine effiziente Verfahrensweise zur Verwaltung von Ressourcen für Automobilsteuerungssoftware beschrieben [4]. Mit OSEK OS wird keine vollständige Kompatibilität zwischen Anwendungen erreicht, jedoch sind deren Teile recht einfach portierbar und wiederverwendbar. Auch durch die Nutzung von standardisierten Interfaces zwischen System und Anwendungssoftware, welche als Services zur Verfügung gestellt werden, können Aufwand und Kosten zur Wartung und Portierung gering gehalten werden. Zusätzlich zu dem System wurde auch eine Sprache zur standardisierten Beschreibung der Systemkonfiguration entwickelt. Durch die Sprache OIL ( OSEK Implementation Language ) können OSEK spezifische Objekte und Verhaltensweisen beschrieben und spezifiziert werden. 3 OSEK OS Das Betriebssystem OSEK stellt eine Menge von System-Services und Verfahrensmechanismen bereit. Zu den Services gehören unter Anderem Task-Management, Interrupt-Management sowie Fehler- Behandlung. Außerdem stellt es für voneinander unabhängige Anwendungen jeweils eine eigene Umgebung auf dem Prozessor her. OSEK unterscheidet beim Ausführen von Prozessen zwischen drei Ebenen. Basisprozesse werden auf dem Task-Level ausgeführt. Jeder Task kann vom Benutzer frei, aber statisch priorisiert werden. Über dem Task-Level liegt das logische Level für den Scheduler. Prozesse dieser Ebene sind für das Scheduling der Task vorgesehen. Als höchst priorisiertes Level gilt das Interrupt-Level. Prozesse auf dieser Ebene haben Vorrang vor allen Anderen. 3.1 Tasks Komplexe Steuerungssoftware kann in kleinere Teile abhängig von deren Echtzeitanforderungen zerlegt werden. Diese Teile werden in OSEK als (nebenläufige) Tasks realisiert [4]. Tasks können wiederum weitere Tasks aktivieren um so einen komplexen Prozess stückweise abzuarbeiten. Einzelne Tasks können in Konformitätsklassen eingeteilt werden. Hierzu wird zum einen zwischen Basis- (basic) und erweiterte (extended) Tasks unterschieden. Dies wird mit der Eigenschaft kombiniert, ob mehr als ein Task mit der gleichen Priorität aktiv sein kann. Daraus resultiren vier Klassifizierungsgruppen. Ziel der Klassifizierung ist die teilweise Implementierung anhand vorgegebenen Leitwegen und das Unterstützen von passenden Gruppen für Systemeigenschaften. Basistasks geben den Prozessor nur frei, wenn sie mit Ihrer Ausführung am Ende angelangt sind, oder wenn sie von einem höher priorisierten Task oder Interrupt verdrängt werden. erweiterte Tasks

3 running wait start terminate waiting release preempt activate suspended ready Abbildung 1: Lebenszyklus von Basis- und erweiterten Tasks hingegen bieten zusätzlich die Möglichkeit auf ein Systemevent zu warten. Hierzu wird nach Aufruf des Befehls WaitEvent der Prozessor freigegeben und er kann auch an niedriger priorisierte Tasks zugewiesen werden. Mittels der Möglichkeit auf Systemereignisse zu warten, ist es mit erweiterte Tasks möglich, Tasks untereinander zu synchronisieren, was bei Basistasks nicht möglich ist. Dafür haben Basistasks den Vorteil der sehr moderaten Nutzung des RAM [4]. Tasks können sich jeweils in einem der drei bzw. vier Zuständen, wie in Abbildung 1 beschrieben, befinden. Nach dem Initialisieren des Betriebssystems befinden sich alle Tasks im Zustand suspended. Durch aktivieren eines Tasks geht dieser in den Zustand ready über. Von dort aus kann der Scheduler den Task nun dem Prozessor zuweisen, wodurch er in den Zustand running kommt. Nach erfolgreicher Ausführung terminiert der Task und geht wieder zurück in den Zustand suspended über. Sofern der Task vor dem terminieren durch einen anderen unterbrochen wird, gelangt er wieder in den Zustand ready und wartet auf die nächste Prozessorzuteilung des Schedulers. Bei erweiterten Tasks können Tasks vom Zustand running noch in den Zustand waiting gelangen, wenn sie auf ein Ereignis warten. Nach eintreffen des Ereignisses, gelangen auch diese Tasks wieder in den Zustand ready. Ein Task kann sich ausschließlich selbst terminieren. Ein laufender Task kann zwar von einem Interrupt oder einem anderen Task unterbrochen werden, jedoch niemals terminiert werden. Jeder Task muss sich am Ende seines Codes selbst durch den Systembefehl TerminateTask oder ChainTask beenden. Andernfalls fährt das System mit einem undefinierten Verhalten fort. Das Aktivieren eines Tasks kann hingegen von jedem ausführenden Task geschehen. Dies wird durch den Systemservice ActivateTask bzw. ChainTask initiiert. Eine Übergabe von Parametern wie in anderen Programmiersprachen ist nicht vorgesehen. Die Umsetzung erfolgt über einen Nachrichtenaustausch oder über globale Variablen.

4 3.2 Scheduler Der Scheduler ist zuständig, für das Zuweisen des Prozessors, auf die einzelnen wartenden Tasks. Er wird vom Betriebssystem zu jedem Zeitpunkt aufgerufen, an dem ein Taskwechsel möglich ist. Der Scheduler entscheidet anhand der Priorität der einzelnen Tasks, welcher als Nächstes in den Zustand running übergehen darf. Die niedrigste Priorität wird durch den Wert 0 definiert. Größere Werte ergeben gleichermaßen höhere Prioritäten. Um möglichst effizient zu arbeiten, werden Prioritäten statisch vergeben und können zur Laufzeit nicht geändert werden [4]. Tasks der gleichen Priorität werden nach dem FIFO Queue Prinzip behandelt. Jeweils der am längsten wartende Task wird dem Prozessor zugewiesen. Tasks welche aus dem Zustand waiting kommen, reihen sich gleichermaßen wie neu aktivierte Tasks ein. Eine wichtige Eigenschaft beim Scheduling ist die Unterbrechbarkeit der Tasks. Bei voll unterbrechbaren Tasks kann der Scheduler nach jeder Anweisung den Task für einen höher priorisierten unterbrechen. Der Kontext des aktuellen Tasks wird gespeichert und der Task in den Zustand ready versetzt. Sobald der unterbrechende Task den Zustand running verlässt, wird der unterbrochene Task wiederhergestellt und weiter ausgeführt. Der Vorteil der vollen Unterbrechbarkeit liegt darin, dass ein höher priorisierter Task nicht von einem niedriger priorisiertem Task aufgehalten werden kann. Wenn ein Codefragment nicht unterbrochen werden darf, da sonst Inkonsistenzen auftreten könnten, kann dies durch das reservieren der Scheduler Ressource über den Service GetResource blockiert werden. Bei nicht unterbrechbaren Tasks wird der Scheduler jeweils nur nach erfolgreicher Terminierung der Tasks ausgeführt, oder wenn ein Task auf ein Event wartet. Wenn sich innerhalb eines Systems unterbrechbare sowie auch nicht unterbrechbare Tasks befinden, wird die Unterbrechbarkeit immer abhängig vom aktuell laufenden Task gewählt. Wenn also der laufende Task nicht unterbrechbar ist, so kann auch kein höher priorisierter unterbrechbarer Task diesen unterbrechen. Die nicht Unterbrechbarkeit ergibt dann Sinn, wenn Tasks eine kleine obere Laufzeitschranke haben, oder der RAM beim sichern des Kontextes stark beansprucht würde [4]. Eine Kombination der Unterbrechbarkeit und der nicht Unterbrechbarkeit kann auch durch das Bilden von Taskgruppen erreicht werden. Für Tasks mit der gleichen oder niedrigeren Priorität als der höchst priorisierte Task einer Gruppe verhalten sich die Task in der Gruppe als nicht unterbrechbar. Für Tasks mit einer höheren Priorität als alle Tasks in einer Gruppe sind die Tasks unterbrechbar. Taskgruppen können über interne Ressourcen realisiert werden. Besteht eine Taskgruppe zum Beispiel aus Tasks der Prioritäten 3,4 und 6, so kann ein anderer Task der Priorität 7 jederzeit Tasks der Gruppe unterbrechen. Ein Task der Priorität 5 könnte ohne Gruppe die Tasks mit den Prioritäten 3 und 4 unterbrechen. Da die Gruppe aber einen Task mit der Priorität 6 beinhaltet, kann der Task der Priorität 5 auch die niedriger priorisierten der Gruppe nicht unterbrechen. 3.3 Anwendungsmodi Das Betriebssystem kann unter verschiedenen Anwendungsmodi laufen. Die jeweiligen Modi müssen sich gegenseitig vollständig ausschließen, denn der Modus kann nur zum Systemstart gewählt werden und ist zur Laufzeit nicht veränderbar. Unter den verschiedenen Anwendungsmodi können komplett unterschiedliche Anwendungen laufen. So kann es zum Beispiel einen Modus zum Systemtest, einen zum Systemupdate und einen für das normale System geben. Es können aber auch ganz andere Modi gewählt werden. Die Systemstartzeit ist eine sicherheitsrelevante Eigenschaft, da während der Laufzeit ein Systemreset auftreten kann und dann das System so schnell als möglich wieder einsatzbereit sein sollte. Der

5 Anwendungsmodus wird vor dem Systemstart aus der OIL Datei ausgelesen und als Parameter an den API-Service StartOS weitergegeben. Erst dann wird der Kernel gestartet. 3.4 Interrupts OSEK unterscheidet zwischen zwei verschiedenen Interruptroutinen (Interrupt Service Routine: ISR). ISR Kategorie 1 Die ISR 1 verwendet keine Systemservices und hat somit keinerlei Einfluss auf das Taskmanagent. Nach dem Interrupt fährt das System exakt an der unterbrochenen Stelle fort. ISR Kategorie 2 OSEK stellt dem Interrupt eine komplette Umgebung zur Verfügung Während eines Interrupts wird kein weiteres Scheduling durchgeführt. Nach einem ISR der Kategorie 2 wird ein Scheduling durchgeführt, wenn ein unterbrechbarer Task unterbrochen wurde und kein weiterer Interrupt aktiv ist. Falls ein Interrupt einen Task aktiviert, nimmt der Task direkt im Anschluss an den Interrupt platz. Das Schedulen und priorisieren von Interrupts geschieht auf Hardwareebene und ist nicht in OSEK spezifiziert. Die einzelnen Interruptkategorien können von Tasks jeweils deaktiviert werden, um kritische Abschnitte zu schützen. Nach einem Deaktivieren einer ISR Kategorie in einem Task, muss exakt diese Kategorie auch wieder aktiviert werden, um ein undefiniertes Verhalten des Systems zu verhindern. 3.5 Events Der Eventmechanismus ist ausschließlich für extented Task verwendbar. Er kann zur Synchronisation von Tasks verwendet werden, wobei jeder Task eine konkrete Anzahl an Events besitzt. Die jeweiligen Events werden vom System verwaltet. Sie können genutzt werden um binäre Informationen an einen erweiterten Task zu übermitteln. Events können sowohl von dem Task dem das Event gehört, als auch von anderen Tasks verändert werden. Diese Modifikation kann auch von einem Basistasks, oder einem Interrupt der Kategorie 2 ausgehen. Events sind die Auslöser, um einen Task aus dem Zustand waiting in den Zustand ready zu überführen. Ein Task bleibt so lange im Zustand waiting, bis mindestens ein Event eingetroffen ist, auf welches der Task wartet. Sollte das Event schon eingetreten sein, bevor der Task darauf warten soll, bleibt dieser im Zustand running. 3.6 Ressourcenmanagement Das Ressourcenmanagement wird Verwendet, um einen Zugriff auf alle Ressourcen zentral vom System zu koordinieren. Dabei können auch verschiedene Prioritäten für die Ressourcen ausgewertet werden. Mittels Ressourcenmanagement kann verhindert werden, dass zwei Tasks gleichzeitig auf eine gemeinsame Ressource zugreifen. Des Weiteren wird verhindert, dass ein Anfordern einer Ressource in Zustand waiting endet. Auch Deadlocks werden somit verhindert [4]. Wenn das Konzept des Ressourcenmanagements verwendet wird, kann zusätzlich sichergestellt werden, dass auch Interrupts nur so auftreten, dass keine Ressourcenkonflikte entstehen. OSEK verbietet strikt den geschachtelten Zugriff auf gemeinsame Ressourcen. Sofern dies trotzdem ausdrücklich erwünscht ist, wird empfohlen, eine zweite Ressource mit dem selben Verhalten mit OIL als linked ressource zu spezifizieren. Die Befehle TerminateTask, ChainTask, Schedule, WaitEvent dürfen während eine Ressource verwendet wird, nicht aufgerufen werden [4]. Bei gleichzeitiger Nutzung mehrerer Ressourcen müssen die

6 Reservierungen und Freigaben nach dem LIFO Prinzip erfolgen. Ressourcen die als erstes reserviert wurden, dürfen auch erst als letztes freigegeben werden. Sofern ein Scheduling innerhalb eines unterbrechbaren Tasks verhindert werden soll, kann der Scheduler als Ressource reserviert werden. Interrupts werden weiterhin unabhängig von der Belegung der Schedulerressource ausgeführt. Typische Probleme die Auftreten könnten, sind zum Einen das Problem der Prioritätenumkehr und zum Anderen das Problem des Deadlocks. Bei der Prioritätenumkehr hält ein niedrig Priorisierter Task T 0 (z.b. Priorität 0 - kurz: P0) die Sperre auf eine Ressource. Wird sie nun von einem hochpriorisiertem Task T 2 mit P2 unterbrochen, welcher auf die selbe Ressource zugreifen möchte, muss dieser warten bis T 0 terminiert oder zumindest die Ressource wieder frei gibt. Sind in der Zwischenzeit aber noch Tasks mit der Priorität P1 hinzugekommen wird nun die Prioritätenreihenfolge P1 P0 P2 ausgeführt und T 2 wird von niedriger priorisierten Tasks undefiniert lange verzögert. Beim Deadlock spielen mindestens zwei Tasks T 1 (mit P1), T 2 (mit P2) und zwei Ressourcen R1, R2 eine Rolle. T 1 möchte R1 und R2 reservieren und T 2 möchte R2 und R1 reservieren, so kann es zur Situation kommen, dass T 1 R1 sperrt und T 2 nun wegen seiner höheren Priorität T 1 unterbricht. T 2 sperrt nun R2 und wartet auf die Freigabe von R1. Der Prozess T 1 möchte aber vor der Freigabe von R1 noch R2 reservieren und wartet nun auf T 2. Dieses Warten endet nun in einer Endlosschleife bzw. einem Deadlock. Um die beiden genannten Probleme zu vermeiden, verwendet OSEK das Ceiling Protokoll. Zum Zeitpunkt der Systemgenerierung wird jeder Ressource ihre eigene statische ceiling Priorität zugewiesen. Diese ist mindestens so hoch wie die Priorität des höchstpriorisieresten Tasks, welcher sie verwendet. Sie muss jedoch echt kleiner sein, als die Priorität aller Tasks, welche höherpriorisiert sind, als der höchstpriorisierte verwendende Task, und nicht auf die Ressource zugreifen [4]. Im einfachsten Fall also die Priorität des höchstpriorisiertesten Tasks, welcher auf die Ressource zugreift. Verwendet nun ein Task eine Ressource dessen Priorität niedriger als die ceiling Priorität der Ressource ist, so wird während der Dauer der Verwendung der Ressource die Priorität des Tasks auf die ceiling Priorität erhöht. Dieses Protokoll lässt sich auch auf Interrupts ausweiten, indem virtuelle Prioritäten für Interrupts verwendet werden, so dass für die ceiling Priorität auch die Interrupt Prioritäten mit betrachtet werden. Interne Ressourcen sind Ressourcen, welche für den User nicht sichtbar sind. Sie können nicht über GetResource oder ReleaseResource adressiert werden. Stattdessen werden sie mit Beginn des Tasks reserviert und mit dessen Unterbrechung oder Terminierung wieder freigegeben. Interne Ressourcen können nur von Tasks reserviert werden. Auch bei ihnen werden die Richtlinien des Ceiling Protokolls angewandt. Das daraus resultierende Ergebnis entspricht genau dem gewünschten Verhalten von Taskgruppen. Nicht unterbrechbare Tasks belegen die interne Ressource RES SCHEDULER. 3.7 Fehler Management OSEK stellt spezifische hook-routinen zur Verfügung, um auf bestimmte Systemaktionen mit definiertem Verhalten zu reagieren. So existieren neben dem StartupHook und dem ShutdownHook auch ein Hook für das Errorhandling. Das Betriebssystem unterscheidet zwei Arten von Fehlern, abhängig von ihrer Schwere. Anwendungsfehler sind die Fehler, bei denen ein Service nicht korrekt ausgeführt wurde, jedoch keine Inkonsistenzen im System aufgetreten sind. Das zentrale Fehlermanagement leitet den Fehlercode an die

7 dezentrale zugehörige Fehlerroutine weiter, in welcher der Anwender entscheiden muss, wie der Fehler zu behandeln ist. Fatale Fehler haben zur Folge, dass interne Daten nicht mehr korrekt sein können und das System somit gestört sein könnte. In diesem Fall führt das System automatisch ein Shutdown durch um schlimmere Folgefehler zu verhindern [4]. Die Error Hook Routine wird genau dann aufgerufen, wenn ein Systemservice einen StatusType Parameter 0 bzw. nicht E OK zurückgibt. Ein rekursiver Aufruf von der Error Hook Routine selbst kann allerdings nicht geschehen. Fehler, die innerhalb der Errorroutine auftreten, können lediglich durch das Auswerten des Rückgabeparameters erkannt werden. Um die Portierbarkeit zu vereinfachen werden Fehlercodes in Kategorien aufgeteilt. So hat jeder Teil von OSEK seinen eigenen Fehlercodewertebereich. Jeder Bereich besteht aus 32 Werten, wobei die jeweils ersten 16 Werte als Standardrückgabewerte definiert sind und die folgenden 16 Werte zur Erkennung von internen implementierungsspezifischen Fehlern dienen. Die einzige Ausnahme ist der Wert E OK = 0. Bei mehrfach vergebenen Fehlerwerten ist es die Aufgabe des Compilers einen Fehler zu werfen [3]. Nach einem Systemreset werden zunächst Hardwarespezifische Routinen aufgerufen, welche den Chip wieder in einen bestimmten Ausgangszustand versetzen. Diese Routine sollte aus Gründen der Sicherheit nicht auf der Historie des vorherigen Systemzustands basieren, sondern statisch konfiguriert sein. Da diese Routine hardwarespezifisch ist, ist sie eines der wenigen nicht portierbaren Softwareteile. Die Routine endet mit dem Starten des OSEK OS, also mit dem Aufruf von StartOS. Zum sicheren Herunterfahren des Systems, bietet OSEK den Befehl ShutdownOS an. Er kann sowohl von der Anwendung als auch vom System selbst (z.b. bei fatalen Fehlern) ausgeführt werden. Nach dem Aufruf des Befehls wird die Routine ShutdownHook aufgerufen, deren Verhalten vom User nach belieben angepasst werden kann. 4 OSEKtime OS Da das Betriebssystem OSEK für den Automobilbereich designt wurde, ist ein sehr wichtiger Faktor die Echtzeitfähigkeit, um die Sicherheit des Systems aufrecht zu erhalten. Das eigentliche OSEK OS ist vorteilhaft bei ereignisorientierten Systemen, kann jedoch bei periodischem Verhalten unvorteilhaft bezüglich der maximalen Taskverzögerung sein. Um der Anforderung an möglichst keine Verzögerungen bei periodischem Verhalten gerecht zu werden, entstand OSEKtime OS. 4.1 Tasks Tasks in OSEKtime werden sequentiell ausgeführt. Es ist möglich innerhalb eines Tasks Schleifen zu verwenden, jedoch muss sichergestellt werden, dass selbst im Worst Case Szenario eine festgelegte Ausführungszeit nicht überschritten wird. Der Zustandsgraph bei OSEKtime, welcher in Abbildung 2 zu sehen ist, unterscheidet sich in zwei Punkten maßgeblich von dem bei OSEK OS. Zunächst fällt auf, dass der Zustand waiting komplett entfallen ist. Für zeitgetriggerte Tasks ist es also nicht möglich, auf ein Ereignis zu warten. Auch das Ressourcenmanagement entfällt bei OSEKtime. Auch unterscheidet es sich beim Aktivieren der Tasks. Bei OSEK werden neu aktivierte Tasks zunächst als ready markiert und warten dann auf das Starten durch den Scheduler. OSEKtime erlaubt es

8 running terminate activate resume preempt suspended ready Abbildung 2: Lebenszyklus von zeitgetriggerten Tasks jedoch einen Task direkt beim Aktivieren vom Dispatcher starten zu lassen. Prioritäten von Tasks entfallen somit. Da jedoch immer nur ein Task gleichzeitig im Zustand running sein kann, wird folglich jeder laufende Task, von einem neu aktivierten unterbrochen. Unterbrochene Tasks werden nach dem Terminieren des unterbrechenden Tasks fortgesetzt. 4.2 Scheduling / Dispatching In OSEKtime ist es also nicht die Aufgabe des Schedulers Tasks zu ordnen und deren Ausführung zu koordinieren. Diese Aufgabe übernimmt direkt der Dispatcher. Die Auswahl erfolgt über eine vom User statisch konfigurierten Dispatchertabelle. Der Entfall von Events und Ressourcenmanagement ist durch die statische Konfiguration des Ablaufplans gerechtfertigt. Beim Erstellen der Dispatchertabelle muss also auch darauf geachtet werden, dass es nicht zu Ressourcenkonflikten kommt. Die Dispatchertabelle wird komplett sequentiell und periodisch abge1arbeitet. Eine Dispatcherrunde bezeichnet die vollständige Ausführung der Dispatchertabelle [1]. Innerhalb einer Dispatcherrunde darf ein Task mehrmals aktivert werden, sich aber in keinem Fall selbst unterbrechen. Der Dispatcher selbst wird durch Interrupts aufgerufen. Diese orientieren sich an einer lokalen Zeit, welche mit der globalen Zeit synchronisiert wird, sofern eine solche zur Verfügung steht. 4.3 Deadlines Mit der Periodizität von OSEKtime kommen auch Deadlines von Tasks zum Tragen. Jeder Task besitzt eine bestimmte Deadline. Bevor diese eintritt, muss sich der Task selbst terminiert haben. Das Einhalten der Deadlines wird vom Dispatcher überwacht. Wenn ein Task nicht innerhalb seiner eigenen Deadline terminiert, wird eine Fehlerbehandlung vom Dispatcher initiiert.

9 4.4 Leerlauf Task Die Ausnahme der Regel ist der Leerlauf Task (ttidletask). Dieser ist nicht in der Dispatchertabelle eingetragen und wird somit auch nicht von diesem periodisch aufgerufen. Auch hat er keine Deadline, die ihn zum Terminieren zwingt. Der ttidletask wird mit Start des OSEKtime OS gestartet und von jedem anderen Task unterbrochen. Wenn alle anderen Tasks terminiert sind, wird der vorher unterbrochene ttidletask wieder fortgesetzt. Da dieser nicht terminiert, ist dieser für die gesamte Systemdauer aktiv und wechselt nur zwischen den Zuständen ready und running. Bei Bedarf kann der Leerlauf Task beliebig vom Benutzer ersetzt werden um Hintergrundaktivitäten zu realisieren. 4.5 Anwendungsmodi Wie auch bei OSEK OS gibt es die Möglichkeit verschiedene Anwendungsmodi zu definieren. Diese unterscheiden sich in den Dispatchertabellen. Im Gegensatz zu OSEK OS lassen sich die Anwendungsmodi während des Betriebs umschalten. Hierzu wechselt der Dispatcher einfach die Tabelle am Ende einer Dispatcherrunde. Damit dies ohne Probleme funktioniert, müssen alle Dispatcherrunden der verschiedenen Anwendungsmodi gleich lang sein. Ein Beispiel für verschiedene Anwendungsmodi wäre die Definition von Initialisierung, Normal und Shutdown [1]. Während des Systemstarts wird der Anwendungsmodus über einen Parameter beim Aufruf von tt- StartOS übergeben. Das Umschalten des Anwendungsmodus im laufenden Betrieb übernimmt der Systemservice ttswitchappmode. Dieser sorgt dafür, dass der Modus ohne den Verlust der Synchronität zur globalen Zeit gewechselt wird. Die Synchronität zur globalen Zeit ist auch der Grund dafür, dass alle Dispatchertabellen gleich lange andauern müssen. 4.6 Interrupts Interrupts werden von OSEKtime limitiert, damit diese nicht den reibungslosen Ablauf der Dispatchertabelle stören. So wird ein Interrupt direkt nach seiner Ausführung deaktiviert. Innerhalb einer Dispatcherrunde liegen vorherbestimmte Zeitpunkte, zu denen der Dispatcher die einzelnen Interrupts wieder aktiviert. Somit kann eine maximale Anzahl an Interrupts sichergestellt werden. Sofern die Laufzeit der einzelnen Interrupts nach oben beschränkt ist, kann auch eine maximale Verzögerung innerhalb einer Dispatcherrunde garantiert werden. 4.7 Synchronisation Der Dispatcher arbeitet auf Basis der lokalen Systemzeit. Wenn jedoch eine globale Zeit zur Verfügung steht, sorgt eine Synchronisationsschicht dafür, dass die lokale Zeit an die Globale angepasst wird. Der Synchronisationsmechanismus wird beim Systemstart und nach jeder Dispatcherrunde ausgeführt. Für Anwendungen gibt es die Möglichkeit zu ermitteln, ob die lokale zeit mit einer globalen synchronisiert ist. Hierzu dient ein Systembefehl mit dem Namen ttgetossyncstatus [1]. Der Verlust der Synchronisation wird nicht explizit gemeldet. Er kann nur durch stetiges Abfragen des Synchronisationsstatus festgestellt werden. Zur Synchronisation nach dem Systemstart oder nach dem Verlust der Synchronität gibt es drei Methoden.

10 Beim Synchronen Start-up wartet der Dispatcher so lange, bis er einen geeigneten Zeitpunkt, zum starten der Dispatchertabelle, findet. Eine maximale Verzögerung ist somit nicht definierbar. Um eine maximale Verzögerung zu einzuhalten, dient der harte asynchrone Start-up. Der Dispatcher beginnt seine Arbeit, sobald er bereit ist. Wenn nun eine globale Zeit verfügbar ist, pausiert der Dispatcher nach einer Dispatcherrunde so lange, bis er mit der globalen Zeit synchron eine neue Runde starten kann. Die maximale Verzögerung entspricht also genau der Zeit einer Dispatcherrunde. Die dritte Variante ist der smooth asynchrone Start-up. Sie verläuft ähnlich zur harten Variante, wobei jedoch eine maximale Verzögerung zwischen den Runden vordefiniert ist. Die Synchronität wird dann über mehrere Runden hergestellt. Bei dieser Variante wird die Verzögerung zwischen den einzelnen Runden gering gehalten, dafür dauert aber die Synchronisierung insgesamt länger. Welche der Methoden die optimale ist, ist Anwendungsspezifisch und muss vom Benutzer gewählt werden. 4.8 Fehler Management Das Fehler Management wird analog zu dem von OSEK OS durchgeführt. Zusätzlich zu den normalen Fehlern müssen noch Deadlineverletzungen behandelt werden. Hierzu wird die tterrorhook Routine aufgerufen, in welcher der Benutzer eine eigene Fehlerbehandlung durchführen kann. Anschließend fährt das System mit einem ttshutdownos herunter. 5 Kombination von OSEKtime und OSEK OS Neben der ausschließlichen Nutzung der einzelnen Systemen, ist auch eine kombinierte Nutzung möglich. Die Spezifikation sieht vor, dass OSEK OS während des Leerlauftasks (ttidletask) ausgeführt wird. Die Priorität von OSEKtime ist also höher als alle Prioritäten von OSEK OS. Weder OSEK Tasks noch OSEK ISRs dürfen Tasks von OSEKtime verzögern [1]. Die Funktion von OSEK OS, zum Vermeiden von Interrupts, bleibt nur OSEK intern. So können Interrupts von OSEKtime auch eintreffen, während ein OSEK Task die Interruptsperre hält. Beim Systemstart wird der Service ttstartos initiiert. Erst nach dem erfolgreichen und vollständigen Start von OSEKtime, wird in dessen Idle Zeiten OSEK OS mit einem StartOS gestartet. OSEK OS darf in keinem Fall den Start von OSEKtime verzögern. Der Shutdown kann in zwei Varianten aufgeteilt werden. Zum Einen kann das OSEK OS Subsystem alleine heruntergefahren werden. Hierbei sind keine Besonderheiten zu beachten. Der ShutdownHook von OSEK OS wird aufgerufen und bearbeitet. Danach stoppt das System. OSEKtime läuft unbeeinflusst davon weiter. Der Shutdown kann durch das Abfragen des Systemstatus mittels ttgetosekosstate abgefragt werden. Die zweite Variante ist ein globaler Shutdown. Hier wird lediglich der ttshutdownhook aufgerufen. Sobald dieser terminiert, schaltet das System ab. Der ShutdownHook vom Subsystem wird nicht ausgeführt, um die Echtzeitfähigkeit von OSEKtime zu bewahren und keine Verzögerungen aufkommen zu lassen. Sofern ein Aufruf des ShutdownHooks explizit gewünscht ist, kann dieser im ttshutdownhook aufgerufen werden. Ein lokaler Shutdown des OSEK OS kann lediglich vom Subsystem selbst durch aufrufen des Befehls ShutdownOS eingeleitet werden. Der Globale Shutdown kann prinzipiell sowohl von OSEK OS als auch von OSEKtime ausgeführt werden. Die Spezifikation empfiehlt jedoch einen globalen Shutdown vom Subsystem zu vermeiden [1].

11 6 OIL Um portierbare Software zu erhalten, fehlt noch eine Möglichkeit das in OSEK spezifizierte Systemverhalten zu beschreiben. Diese Möglichkeit wurde mit der Sprache OIL (OSEK Implementation Language) festgelegt [3]. Ziel von OIL ist es, ein Verhalten von OSEK Anwendungen für eine bestimmte Hardware zu konfigurieren [2]. Folglich muss mit Anpassung der Hardware auch die OIL Beschreibung angepasst werden. Generell definiert OIL standardisierte Objekte mit bestimmten Attributen und Referenzen. Innerhalb der OSEK Implementierung können zusätzliche Attribute und Referenzen definiert werden. Das Erstellen oder Verändern von Objekten außerhalb von OIL ist jedoch nicht möglich. Dies bedeutet, dass jedes Objekt im System auch mit OIL beschrieben sein muss. Zur Identifizierung erhält jedes Objekt einen systemweiten eindeutigen Namen. Zur einfacheren Lesbarkeit und Wartbarkeit können OIL Dateien aufgeteilt werden und analog zur C Syntax included werden. Somit muss bei optimaler Verwendung beim Tausch von Hardware auch nur die entsprechende Konfigurationsdatei ausgetauscht werden. Literatur [1] OSEK/VDX group (2001): Time-Triggered Operating System Specification 1.0. Available at portal.osek-vdx.org/files/pdf/specs/ttos10.pdf. [2] OSEK/VDX group (2004): OSEK Implementation Language Specification 2.5. Available at osek-vdx.org/files/pdf/specs/oil25.pdf. [3] OSEK/VDX group (2004): Specification OSEK/VDX Specification. Available at osek-vdx.org/files/pdf/specs/binding142.pdf. [4] OSEK/VDX group (2005): Specification OSEK OS Available at files/pdf/specs/os223.pdf. [5] OSEK/VDX group (2014): OSEK VDX Portal - Goals and Motivation. Available at osek-vdx.org/index.php?id=4&itemid=4. [6] Jörg Schäuffele (2013): Automotive Software Engineering, 5., überarb. u. ak. aufl edition. Springer Fachmedien Wiesbaden, Wiesbaden. Available at term=idn%3dtt &local_base=klu01.

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

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

Mehr

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

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

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

Mehr

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

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

Mehr

OSEKtime - Time-Triggered OSEK/OS

OSEKtime - Time-Triggered OSEK/OS OSEKtime - Time-Triggered OSEK/OS Gregor Kaleta gregor.kaleta@udo.edu PG Seminarwochenende 21.-23. Oktober 2007 1 Überblick Einleitung OSEKtime Task-Zustandsmodell, Scheduling-Verfahren Interrupt-Verarbeitung

Mehr

OSEK / OSEKtime - ein Vergleich

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

Mehr

OSEK/OSEKtime OS. Friedrich Alexander Universität Erlangen-Nürnberg. Wilhelm Haas 15. Juli 2006

OSEK/OSEKtime OS. Friedrich Alexander Universität Erlangen-Nürnberg. Wilhelm Haas 15. Juli 2006 OSEK/OSEKtime OS Ausgewählte Kapitel eingebetteter Systeme Friedrich Alexander Universität Erlangen-Nürnberg 1 Einführung Die Abkürzung OSEK steht für ein im Jahre 1993 gegründetes industrielles Standardisierungsgremium,

Mehr

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

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

Mehr

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

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

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

Mehr

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

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

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

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

Mehr

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer OpenCL Programmiersprachen im Multicore-Zeitalter Tim Wiersdörfer Inhaltsverzeichnis 1. Was ist OpenCL 2. Entwicklung von OpenCL 3. OpenCL Modelle 1. Plattform-Modell 2. Ausführungs-Modell 3. Speicher-Modell

Mehr

Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner. Übung 5: Semaphoren

Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner. Übung 5: Semaphoren Universität Stuttgart Prof. Dr.-Ing. Dr. h. c. P. Göhner Aufgabe 5.1: Übung 5: Semaphoren Semaphor-Operationen In Bild 5.1.1 ist die Anordnung von Semaphor-Operationen am Anfang und am e der asks A,B,C

Mehr

20 Task-Management Was bleibt noch zu tun? Wird ein Poolelement in die Queue aufgenommen, dann muß der Poolelemente-Zähler inkrementiert werden. Dies erledigt die Anweisung pool_kopf_adr -> anzahl_der.pool_elemente

Mehr

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Implementierung von Interruptbehandlungen. Interrupts

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Implementierung von Interruptbehandlungen. Interrupts Übungen zu Systemnahe Programmierung in C (SPiC) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Inhalt Interrupts Allgemein AVR Interrupt-Handler Synchronisation volatile Sperren von Interrupts

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

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

Mehr

Gerätetreiber in Embedded Systems

Gerätetreiber in Embedded Systems TECHNISCHE HOCHSCHULE MITTELHESSEN Gerätetreiber in Embedded Systems Schriftliche Ausarbeitung Mario Weber 26.06.2011 1. Inhalt 1. Inhalt... 1 2. Software-Aufbau von Embedded Systems... 2 2.1 Definition...

Mehr

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016 Verteilte Systeme SS 2016 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 31. Mai 2016 Betriebssysteme / verteilte Systeme Verteilte Systeme (1/14) i

Mehr

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

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

Mehr

Teil 3: Konzepte von Betriebssystemen

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

Mehr

(Ausnahmebehandlung)

(Ausnahmebehandlung) 16. Exceptions (Ausnahmebehandlung) 16-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 16: Exceptions (Ausnahmebehandlung) Motivation Throw und Catch 16. Exceptions (Ausnahmebehandlung) 16-2

Mehr

Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK)

Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK) Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK) Schwerpunkt Linux Interrupts, Softirqs, Tasklets, Bottom Halves Interrupts: Softirqs, Tasklets, Bottom Halves 1 Thomas Engelhardt Übersicht: Klassifizierung

Mehr

die Integration und den Produktionstest von Embedded Software für Automobilanwendungen

die Integration und den Produktionstest von Embedded Software für Automobilanwendungen DER INDUSTRIESTANDARD FÜR EINGEBETTETE SYSTEME IN AUTOMOBILANWENDUNGEN WIRD ERWEITERT UND VERBESSERT OSEK auf der Überholspur Die OSEK/VDX OS-Arbeitsgruppe veröffentlichte kürzlich den Entwurf zur Version

Mehr

Nicht-blockierende Synchronisation für Echtzeitsysteme

Nicht-blockierende Synchronisation für Echtzeitsysteme Nicht-blockierende Synchronisation für Echtzeitsysteme Seminar Mobile Systeme Florian Schricker 15. März 2005 Seminarleiter: Prof. Dr. Dieter Zöbel 1 INHALTSVERZEICHNIS INHALTSVERZEICHNIS Inhaltsverzeichnis

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Exceptions Auflage

HSR Rapperswil 2001 Markus Rigling. Programmieren: Exceptions Auflage HSR Rapperswil 2001 Markus Rigling Programmieren: Exceptions 1 1. Auflage Inhaltsverzeichnis: 1. Was sind Exceptions?... 3 2. Struktur des Exception Handling... 3 3. Try-Block... 4 4. Exception Handler

Mehr

GERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT

GERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT User Requirements GERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT Softwareentwicklung Praktikum, Übungsbeispiel 1 Gruppe 18 Andreas Hechenblaickner [0430217] Daniela Kejzar [0310129] Andreas Maller [0431289]

Mehr

Benutzerdefinierte Housekeepinglisten in SAP BW //

Benutzerdefinierte Housekeepinglisten in SAP BW // Was wir vorhersagen, soll auch eintreffen! Benutzerdefinierte Housekeepinglisten in SAP BW // Stefan Rutte 1. Housekeepingliste anlegen Zum Anlegen der Housekeepingliste muss der Aufgaben-Manager mit der

Mehr

Immediate Priority Ceiling

Immediate Priority Ceiling Vereinfachtes Protokoll: Immediate priority ceiling: Prozesse, die ein Betriebsmittel s belegen, bekommen sofort die Priorität ceil(s) zugewiesen. Anwendungsgebiet: Immediate Priority Ceiling Verwendung

Mehr

Outlook-Synchronisation

Outlook-Synchronisation Outlook-Synchronisation Inhalt Inhalt 2 1.Voreinstellungen 3 2. Erstabgleich 6 3.Kontaktabgleich / Ansprechpartner 9 4. Terminabgleich 13 5. E-Mail 16 6. Allgemeine Einschränkungen 17 1. Voreinstellungen

Mehr

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß?

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß? Kontrollflüsse Einführung 1 Motivation Kontrollfluß Anwendung logischer Adreßraum Kontrollfluß (Thread) = führt Instruktionen aus Was charakterisiert einen Kontrollfluß? Programmzähler Registerinhalte

Mehr

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

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

Mehr

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Aufbau eines modernen Betriebssystems (Windows NT 5.0) Aufbau eines modernen Betriebssystems (Windows NT 5.0) Moritz Mühlenthaler 14.6.2004 Proseminar KVBK Gliederung 1.Das Designproblem a) Überblick b) Design Goals c) Möglichkeiten der Strukturierung 2. Umsetzung

Mehr

Fensterverhalten. Mike McBride Jost Schenck Deutsche Übersetzung: Matthias Kiefer

Fensterverhalten. Mike McBride Jost Schenck Deutsche Übersetzung: Matthias Kiefer Mike McBride Jost Schenck Deutsche Übersetzung: Matthias Kiefer 2 Inhaltsverzeichnis 1 Fensterverhalten 4 1.1 Aktivierung......................................... 4 1.1.1 Aktivierungs-Regelung..............................

Mehr

Inhalt ErgoSoft RIP ErgoSoft RIPs ErgoSoft RIPs

Inhalt ErgoSoft RIP ErgoSoft RIPs ErgoSoft RIPs Application Notes Hot Folders Inhalt Einleitung... HotFolder konfigurieren... Allgemeine Einstellungen... Einstellungen zum Job... Bildimport... 4 Konturschnitt... 5 Anmerkungen... 5 Beispiele... 6 Beispiel

Mehr

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

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

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

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

Mehr

Fakultät für Informatik der Technischen Universität München. Kapitel 5. Echtzeitbetriebssysteme

Fakultät für Informatik der Technischen Universität München. Kapitel 5. Echtzeitbetriebssysteme Kapitel 5 Echtzeitbetriebssysteme 378 Inhalt Grundlagen Betrachtung diverser Betriebssysteme: Domänenspezifische Betriebssysteme: OSEK TinyOS Klassische Echtzeitbetriebssysteme QNX VxWorks PikeOS Linux-

Mehr

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

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

Mehr

Threads Einführung. Zustände von Threads

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

Mehr

Prüfung 70-290 Verwalten und Warten einer Microsoft Windows Server 2003- Umgebung

Prüfung 70-290 Verwalten und Warten einer Microsoft Windows Server 2003- Umgebung Prüfung 70-290 Verwalten und Warten einer Microsoft Windows Server 2003- Umgebung Im Rahmen dieser Prüfung werden vor allem Themen im Bereich Benutzerverwaltung, Datensicherung, Verwaltung von Freigaben

Mehr

Praktikum aus Softwareentwicklung 2, Stunde 5

Praktikum aus Softwareentwicklung 2, Stunde 5 Praktikum aus Softwareentwicklung 2, Stunde 5 Lehrziele/Inhalt 1. Threads Threads Threads sind parallele, oder auf Rechnern mit nur einer CPU quasi-parallele, Programmabläufe in Java. Sie können beispielsweise

Mehr

Betriebssysteme. Tutorium 2. Philipp Kirchhofer

Betriebssysteme. Tutorium 2. Philipp Kirchhofer Betriebssysteme Tutorium 2 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 4. November 2009 Philipp

Mehr

Bibliographix installieren

Bibliographix installieren Bibliographix installieren Version 10.8.5 Inhalt Inhalt... 1 Systemvoraussetzungen... 1 Download... 2 Installation der Software... 2 Installation unter Windows... 2 Installation unter Mac OS X... 3 Installation

Mehr

Übung I Echtzeitbetriebssysteme

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

Mehr

Wirtschaftsinformatik II Sommersemester Lo sungshinweise zu den Ü bungen P. Mandl, M. Dolag, B. Rottmüller, et al.

Wirtschaftsinformatik II Sommersemester Lo sungshinweise zu den Ü bungen P. Mandl, M. Dolag, B. Rottmüller, et al. Wirtschaftsinformatik II Sommersemester 2016 Lo sungshinweise zu den Ü bungen 2-6 @Prof. P. Mandl, M. Dolag, B. Rottmüller, et al. Seite 1 / 6 Übung 2 Verwendung von Java-Threads Ableitung von Klasse Thread

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer

Mehr

Softwarelösungen: Versuch 4

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

Mehr

Dongle Generator: Technisches Datenblatt Betriebsanleitung Generieren Sie Ihren Dongle selbst!!! Allgemeine Angaben:

Dongle Generator: Technisches Datenblatt Betriebsanleitung Generieren Sie Ihren Dongle selbst!!! Allgemeine Angaben: Dongle Generator: Technisches Datenblatt Betriebsanleitung Generieren Sie Ihren Dongle selbst!!! Allgemeine Angaben: Die Software Dongle-Generator macht aus jedem USB Stick einen Dongle. Dazu werden verschiedene

Mehr

U2 Fortgeschrittene AVR-Programmierung. U2-1 Externe Interrupts des AVR-μC. 1 Flanken-/Pegel-Steuerung. 1 Flanken-/Pegel-Steuerung (2) 2 Maskieren

U2 Fortgeschrittene AVR-Programmierung. U2-1 Externe Interrupts des AVR-μC. 1 Flanken-/Pegel-Steuerung. 1 Flanken-/Pegel-Steuerung (2) 2 Maskieren U Fortgeschrittene AVR-Programmierung U Fortgeschrittene AVR-Programmierung U-1 Externe Interrupts des AVR-μC Aufgabe Interrupts volatile-variablen Synchronisation mit Unterbrechungsbehandlungen Stromsparmodi

Mehr

Microsoft ISA Server 2004

Microsoft ISA Server 2004 Microsoft ISA Server 2004 Marcel Zehner Leitfaden für Installation, Einrichtung und Wartung ISBN 3-446-40597-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40597-6

Mehr

Arduino Kurs Timer und Interrupts. Stephan Laage-Witt FES Lörrach

Arduino Kurs Timer und Interrupts. Stephan Laage-Witt FES Lörrach Arduino Kurs Timer und Interrupts Stephan Laage-Witt FES Lörrach - 2018 Themen Timer Interrupts Regelmäßige Aufgaben ausführen Exakte Zeitintervalle messen FES Lörrach Juni 2018 2 Exakte Zeiten sind gar

Mehr

Grundlagen Rechnerarchitektur und Betriebssysteme

Grundlagen Rechnerarchitektur und Betriebssysteme Grundlagen Rechnerarchitektur und Betriebssysteme Johannes Formann Definition Computer: Eine Funktionseinheit zur Verarbeitung von Daten, wobei als Verarbeitung die Durchführung mathematischer, umformender,

Mehr

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

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

Mehr

Installationsanleitung - Command WorkStation 5.6 mit Fiery Extended Applications 4.2

Installationsanleitung - Command WorkStation 5.6 mit Fiery Extended Applications 4.2 Installationsanleitung - Command WorkStation 5.6 mit Fiery Extended Applications 4.2 Das Softwarepaket Fiery Extended Applications Package v4.2 enthält Fiery Anwendungsprogramme, mit denen Sie bestimmte

Mehr

Operating System Kernels

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

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

1 Prozesse und Scheduling (12 Punkte)

1 Prozesse und Scheduling (12 Punkte) 1 Prozesse und Scheduling (12 Punkte) a) UNIX Shell-Operatoren (insgesamt 4 Punkte) 1. Operator (1,5 Punkte) Beschreiben Sie die Funktionsweise des Operators. 2. Operator Beispiel (1 Punkt) Geben Sie für

Mehr

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. 1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?

Mehr

Übungen zur Vorlesung. Datenbanken I. WS 2002/2003 Blatt 4 MUSTERLÖSUNG

Übungen zur Vorlesung. Datenbanken I. WS 2002/2003 Blatt 4 MUSTERLÖSUNG Prof. Dr. S. Böttcher Adelhard Türling Übungen zur Vorlesung Datenbanken I WS 2002/2003 Blatt 4 MUSTERLÖSUNG Aufgabe 4.1: Bestimmen Sie zu den folgenden Transaktions-Schedules, ob diese (konflikt-) serialisierbar

Mehr

Laborskript Verteilte Systeme

Laborskript Verteilte Systeme Laborskript Verteilte Systeme Nebenläufigkeit in Java Prof. Dr. Oliver Haase 1 Threads Java bietet zwei verschiedene Arten an, Threads zu erzeugen und zu starten: Entweder durch Erweitern der Klasse Thread,

Mehr

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

Objektorientierte Programmierung (OOP)

Objektorientierte Programmierung (OOP) orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,

Mehr

1 EINFÜHRUNG 9. 1.2 Autodesk Vault Produktfamilie 12

1 EINFÜHRUNG 9. 1.2 Autodesk Vault Produktfamilie 12 1 EINFÜHRUNG 9 1.1 Vorbereitung zur Durchführung der Übungen 10 1.1.1 Installation der Übungsdateien 10 1.1.2 Hinweise,Tipps und Warnungen 11 1.1.2.1 Sprachgebrauch 11 1.2 Autodesk Vault Produktfamilie

Mehr

Nutzerverwaltung. Dokumentenversion Webtrekk GmbH

Nutzerverwaltung. Dokumentenversion Webtrekk GmbH Nutzerverwaltung Dokumentenversion 2.0 2014 Webtrekk GmbH Inhaltsverzeichnis 1 Funktionen der Nutzerverwaltung 2 Nutzer 3 Nutzergruppe 4 Nutzerrolle 5 Zuordnung von Nutzergruppe und Nutzerrolle 6 Elemente

Mehr

Nebenläufige Programmierung in Java: Threads

Nebenläufige Programmierung in Java: Threads Nebenläufige Programmierung in Java: Threads Wahlpflicht: Fortgeschrittene Programmierung in Java Jan Henke HAW Hamburg 10. Juni 2011 J. Henke (HAW) Threads 10. Juni 2011 1 / 18 Gliederung 1 Grundlagen

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 17. JAVA Kommunikation von Threads 1 Motivation

Mehr

7 Datenaustausch. Datenaustausch. Ziele dieses Kapitels. A Sie verschaffen sich einen Überblick über OLE. A Sie verknüpfen Objekte.

7 Datenaustausch. Datenaustausch. Ziele dieses Kapitels. A Sie verschaffen sich einen Überblick über OLE. A Sie verknüpfen Objekte. 7 Datenaustausch Ziele dieses Kapitels A Sie verschaffen sich einen Überblick über OLE. A Sie verknüpfen Objekte. A Sie betten Objekte ein. Microsoft Office Excel 2003 Aufbau - 133 - 7.1 Überblick OLE

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

Objektorientierte Programmierung III

Objektorientierte Programmierung III Objektorientierte Programmierung III OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen

Mehr

Erste Erfahrungen mit systemd

Erste Erfahrungen mit systemd Erste Erfahrungen mit systemd Stefan Bauer stefan.bauer@cs.tu-chemnitz.de 12. Oktober 2012 1 / 22 Inhaltsverzeichnis 1 Motivation 2 Klassische Init-Systeme 3 systemd: Konzepte 4 systemd im Alltag 5 Neue

Mehr

MC-Hx 005. IP-Symcon Einbindung des MC-Hx Modul. MB DataTec GmbH. Stand:

MC-Hx 005. IP-Symcon Einbindung des MC-Hx Modul. MB DataTec GmbH. Stand: MB DataTec GmbH Stand: 04.2013 Kontakt: MB DataTec GmbH Friedrich Ebert Str. 217a 58666 Kierspe Tel.: 02359 2973-22, Fax 23 Web : www.mb-datatec.de e-mail: info@mb-datatec.de IP-Symcon ist eine Automatisierungs-Software

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von

Mehr

Symbian OS. OS für kleine Endgeräte: Sven Walter

Symbian OS. OS für kleine Endgeräte: Sven Walter OS für kleine Endgeräte: Sven Walter 19.07.2004 1 1. Einleitung Symbian ist ein Software Unternehmen, das ein offenes Betriebssystem für datenfähige Mobiltelefone entwickelt. Es wurde im Juni 1998 von

Mehr

Verteilte Echtzeit-Systeme

Verteilte Echtzeit-Systeme - Verteilte Echtzeit-Systeme Hans-Albrecht Schindler Wintersemester 2017/18 Teil C: Echtzeit-Betriebssysteme Abschnitt 6: Echtzeit-Betriebssysteme CSI Technische Universität Ilmenau www.tu-ilmenau.de 6.1

Mehr

registra Schnittstelle

registra Schnittstelle registra Schnittstelle Verwendbarkeit Die registra-schnittstelle ist nur verwendbar, wenn das Modul ZBON/Tagesabschluss Österreich aktiv ist. Voreinstellungen CTO Warenwirtschaft registra-schnittstelle

Mehr

Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen 12 im Bauwesen Markus Uhlmann 1 Zusammenfassung der 11. Vorlesung Objektorientierte Programmierung (OOP) Wozu eigentlich? Was unterscheidet OOP von traditionellen Techniken? Verwendung von vordefinierten

Mehr

Stellvertreter-Berechtigung für Kalender und Posteingang Outlook

Stellvertreter-Berechtigung für Kalender und Posteingang Outlook Informationen über Zugriffsrechte für Stellvertretung Über die Funktion Zugriffsrechte für Stellvertretung kannst du zusätzliche Berechtigungen erteilen, z. B. die Möglichkeit für eine Stellvertretung,

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

Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus

Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus 2. November 2012 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität

Mehr

e) Welche Aussage zu Speicherzuteilungsverfahren ist falsch?

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

Mehr

Der Scheduler von Windows 2000 Konzepte und Strategien

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

Mehr

C-to-CUDA-Compiler. Johannes Kölsch. October 29, 2012

C-to-CUDA-Compiler. Johannes Kölsch. October 29, 2012 October 29, 2012 Inhaltsverzeichnis 1 2 3 4 5 6 Motivation Motivation CUDA bietet extreme Leistung für parallelisierbare Programme Kompliziert zu programmieren, da multi-level parallel und explizit verwalteter

Mehr

Hochverfügbarkeit und virtualisierte Umgebungen

Hochverfügbarkeit und virtualisierte Umgebungen Hochverfügbarkeit und virtualisierte Umgebungen Hartmut Streppel Oracle Deutschland B.V. & Co. KG München Schlüsselworte Virtualisierung, Hochverfügbarkeit, Solaris Container, Solaris Zonen, Logical Domains,

Mehr

Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)

Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen) Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen) 1 Prozesse Bei Betriebssystemen stoßen wir des öfteren auf den Begriff Prozess als wahrscheinlich am häufigsten verwendeter und am unklarsten

Mehr

Verteilte Echtzeit-Systeme

Verteilte Echtzeit-Systeme - Verteilte Echtzeit-Systeme Hans-Albrecht Schindler Wintersemester 2018/19 Teil C: Echtzeit-Betriebssysteme Abschnitt 18: Standards für Echtzeit-Betriebssysteme CSI Technische Universität Ilmenau www.tu-ilmenau.de

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Just-In-Time-Compiler (2)

Just-In-Time-Compiler (2) Just-In-Time-Compiler (2) Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2015/2016 V. Sieh Just-In-Time-Compiler

Mehr

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11

Mehr

Geräteverwaltung: Einführung

Geräteverwaltung: Einführung Geräteverwaltung: Einführung Die Ziele einer Geräteverwaltung sind: Einfache Softwareschnittstelle Gleiche Software Schnittstellen für alle Geräte eines Gerätetyps z.b.: unabhängig vom Soundkartenhersteller

Mehr

untermstrich SYNC Handbuch

untermstrich SYNC Handbuch Handbuch 11/2017 Inhaltsverzeichnis 1. Einleitung... 2 2. Installation... 3 2.1 Systemanforderungen... 3 2.2 Vorbereitungen in Microsoft Outlook... 3 2.3 Setup... 4 3. SYNC-Einstellungen... 6 3.1 Verbindungsdaten...

Mehr

OpenMP - Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009

OpenMP - Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009 - Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009 Grundlagen der Parallelen Programmierung Hardware Threads vs. Prozesse Kritische Abschnitte Lange

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen

Mehr

Constraint-basierte Planung und Optimierung von Prüfungsterminen mithilfe einer graphischen Benutzeroberfläche

Constraint-basierte Planung und Optimierung von Prüfungsterminen mithilfe einer graphischen Benutzeroberfläche Douglas Cunningham,Petra Hofstedt, Klaus Meer, IngoSchmitt (Hrsg.): INFORMATIK 2015 LectureNotes in Informatics (LNI), Gesellschaft für Informatik, Bonn 2015 Constraint-basierte Planung und Optimierung

Mehr

1 Fehler in Bibliotheksfunktionen. 1 Überblick. 2 Ziele der Aufgabe. Besprechung der 1. Aufgabe

1 Fehler in Bibliotheksfunktionen. 1 Überblick. 2 Ziele der Aufgabe. Besprechung der 1. Aufgabe U3 3. Übung U3 3. Übung U3-1 Fehlerbehandlung U3-1 Fehlerbehandlung Besprechung der 1. Aufgabe Fehlerbehandlung Infos zur Aufgabe 3: malloc-implementierung U3.1 Fehler können aus unterschiedlichsten Gründen

Mehr