# OSEK-OS

OSEK-OS ist eine vom OSEK-Konsortium (siehe dort für weitere Informationen) verabschiedete Spezifikation für in der elektronischen Datenverarbeitung angewendete Echtzeitbetriebssysteme für eingebettete Systeme. Hauptsächlich findet es Verwendung auf Echtzeitsystemen im Bereich der Automobilelektronik.
OSEK-OS war erdacht als offener Standard und ist seit 2005 in die ISO-Norm 17356-3 überführt worden.

## OSEK-OS Eigenschaften
### Schnittstellen

Der OSEK-OS-Standard spezifiziert Schnittstellen zu Multitasking-Funktionen und ist damit Architektur-abhängig.

### Sicherheit (Protection)

Der OSEK-OS-Standard ist für Controller entworfen, die über keine Memory Protection verfügen.

### Tasking

Der OSEK-OS-Standard ist statisch. Alle Betriebsmittel und Tasks werden vor dem Kompilieren für genau die gewollte Anwendung definiert und konfiguriert: die Anzahl, Typen und Eigenschaften der Tasks, Stacks, Mutex-Verfahren etc. Es ist nicht möglich, zur Laufzeit neue Tasks zu definieren. Der OSEK-OS-Standard kennt zwei verschiedene Klassen von Tasks: einfache Tasks und komplexe Tasks. Die einfachen Tasks können vergleichbar mit Interrupts nur durch einfache Tasks höherer Priorität unterbrochen werden und enden erst, wenn sie vollständig abgearbeitet sind. Komplexe Tasks warten während der Abarbeitung auf die Freigabe von Ressourcen und können so blockiert werden.

### Scheduling

Das Scheduling kann auf zwei verschiedene Arten konfiguriert werden: Bei verdrängendem Scheduling kann ein Task jederzeit durch einen Task höherer Priorität unterbrochen werden (präemptives Scheduling), bei nicht verdrängendem Scheduling kann ein Task nur an bestimmten, zur Übersetzungszeit im Code fest konfigurierten Punkten unterbrochen werden (kooperatives Scheduling). Auch ein gemischter Betrieb ist möglich.

### Timing

Während der OSEK-OS-Standard ein ereignisgesteuertes Betriebssystem spezifiziert, ist die OSEK-TIME Spezifikation (auch geschrieben: OSEKtime) eine Ergänzung für zeitgesteuerte Betriebssysteme. Wenn konfiguriert, werden OSEK-TIME-Callback-Funktionen mit höherer Priorität bearbeitet als die in OSEK-OS konfigurierten Tasks.

### Zielplattformen (Targets)

Übliche Zielplattformen sind 16- und 32-Bit-Mikrocontroller für die Automobilindustrie, das System ist jedoch skalierbar und ist auf 8- bis 32-Bit-Mikroprozessoren praktisch nutzbar.

## Implementierungen

OSEK-OS Implementierungen sind aktuell verfügbar, sind meist kommerziell aber auch Open Source (siehe Liste von Betriebssystemen) und werden seit ca. 1997 primär für die Automobilindustrie und dort für Embedded-Steuergeräte (ECUs) angeboten. Der Begriff "OSEK" wird auch als Synonym für ein OSEK-OS-konformes Betriebssystem verwendet.
Es wird heutzutage jedoch in den meisten Fällen vom Nachfolger, der AUTOSAR Architektur, gesprochen oder diese angeboten.

## Stand der Technik

Das AUTOSAR-Konsortium übernahm die OSEK-Spezifikationen: OSEK-OS bildet heute die Basis des AUTOSAR OS der CLASSIC PLATFORM Architektur.
Das AUTOSAR OS Betriebssystem ist rückwärtskompatibel zu OSEK-OS und beinhaltet auch OSEK-TIME, siehe die AUTOSAR Spezifikation "Requirements on Timing Extensions".

### AUTOSAR OS Implementierung CLASSIC PLATFORM (CP)

Zusammenfassung der Eigenschaften der CP Spezifikation, welche OSEK-OS sehr ähnlich sind:
* Wird statisch konfiguriert und ist skaliert
* Ist anpassbar und ausgelegt für Echtzeitapplikationen und -leistungsbereiche
* Bietet prioritätsbasiertes Scheduling
* Bietet Schutzfunktionen (Speicher, Timing etc.) zur Laufzeit
* Ist applizierbar auf Low-End-Controllern (Steuergeräten) und ohne externe Ressourcen einsetzbar
Weitere Inhalte wie RTE (Run-Time-Environment, Laufzeitumgebung), Operating System Abstraction Layer (OSAL), Multi-core, Firmware Over-the-air (OTA) etc. sind in der Spezifikation beschrieben bzw. mit weiteren AUTOSAR Spezifikationen verlinkt.
Ebenfalls existieren Arbeitsgruppen ("Working groups") zu den einzelnen Spezialbereichen des RTOS.

### AUTOSAR ADAPTIVE (AP) PLATFORM

Als Anmerkung sei erwähnt, dass die ADAPTIVE PLATFORM Architektur nicht unbedingt auf OSEK aufsetzt bzw. spezifiziert, sondern ein Operating System Interface (OSI) beschreibt. AP spezifiziert POSIX und dort speziell PSE51 für Steuergeräte, d. h. ein POSIX-konformes OS kann integriert werden.