Fully Pre-emptive Supports Tasks w/Hard & Soft Deadlines, Periodic & Aperiodic ~1% overhead w/o context switches, varies w/program otherwise Simple Interface, simplifies programming Supports Locks & Shared Memory Allows use of all I/O Registers and resources except Timer 0 Most Timing Can be Handled Directly by Operating System Consumes ~75% of flash memory (3000 words) on Atmel 8515 Requires only ~3k-4k RAM Designed for use with Codevision
It is a real-time OS that supports locks and preemption.
It is designed to simplify programming and support all types of tasks. Here is a brief summary of the types:
For our definition, a task is a pointer to a function written by the user, and a job is responsible for assisting in calling that task. A job consists of the function pointer, the period (if the job's periodic), and a deadline (if the job is hard). A task is a pointer to the job. Users enter jobs, whereas the os schedules tasks.
A hard job has an associated deadline that must be met on time. Soft jobs have no deadline, for out purposes, and are executed in the order they are entered by the user. A periodic job has an associated period, and is executed at the beginning of every period. The execution time of the job is included in its period. An aperiodic job, on the other hand, is only executed once. COPOS supports four different types of jobs - hard periodic, hard aperiodic, soft periodic, and soft aperiodic, from highest priority to lowest. Hard periodic tasks have the highest priority; any other task that is running will be preempted before a hard periodic task is scheduled to begin.