Multiprocessor systems offer a unique opportunity to provide general-purpose time-sharing services without sacrificing the deterministic behavior and minimal latencies required for real-time applications. It is possible to achieve this by partitioning the set of processors into two parts: (1) part is dedicated to time-sharing; (2) part is dedicated to real-time computations and control. Many existing approaches to real-time operating systems are based on modifying the base operating systems in order to meet the real-time constraints. The results is an environment that is both very costly to develop and maintain. Our approach combines the time-sharing and real-time services in a unique way; traditional time-sharing services continue to run as part of the operating system; while real-time services are implemented at a user-level that run on top of the dedicated set of processes called gangs. The result is a system that provides all traditional operating services (on System V) and still provides real-time services (for flight simulators).