1. A method for providing hard real-time services comprising: categorizing at least two processing units in a system with a single general purpose shared-memory operating system; designating at least one processing unit within said operating system as a hard real-time processing unit; designating at least one processing unit within said operating system as a non-hard real-time processing unit; forwarding a task from said hard real-time processing unit to said non-hard real-time processing unit upon determining that it is about to commence a non-deterministic operation; and returning said task to said real-time processing unit upon completion of the non-deterministic operation.