The architecture on which an OSEK Operating System is based can be viewed as a traditional fixed priority approach.
Each task in the system can be a basic task (BT) or an extended task (ET) (extended tasks are basic tasks that can react to external asynchronous events).
Every task in the system has assigned a fixed priority (statically assigned at compile time), and the scheduler always selects the higher priority task from the ready task queue. Interrupt service routines typically preempt the running task (except in case the running task uses resources).
To provide support for different features in the Operating system, the various requirements of the application in terms of number of tasks, memory consumption and like are listed in four conformance classes. The compliance of an OSEK OS is always stated with respect to one conformance class. Basically, conformance classes exist to allow partial implementations of the standard along pre-defined lines, creating an upgrade path from classes of lesser functionality to classes of higher functionality with no change to the application tasks.
The conformance classes specifies different requirements for the following attributes:
Multiple requesting task activations (only one activation or more than one)
Task types (basic tasks only or basic and extended tasks)
Number of tasks per priority (one or more than one)
The following conformance classes are defined by the standard :
Only basic tasks limited to one activation request per task and one task per priority, while all tasks have different priorities.
Like BCC1, plus more than one activation request per task and more than one task per priority.
Like BCC1, plus extended tasks.
Like ECC1, plus more than one task per priority and multiple requesting of task activation allowed for basic tasks.