Introduction

COPOS stands for Cornell Preemptive Operating System.  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.