Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!samsung!dali.cs.montana.edu!masscomp!swoyer From: swoyer@masscomp.ccur.com (Ted Swoyer) Newsgroups: comp.realtime Subject: Re: Real-Time Operating Systems Message-ID: <31669@masscomp.ccur.com> Date: 20 Jul 90 00:10:59 GMT References: <2931@zipeecs.umich.edu> Reply-To: swoyer@westford.ccur.com (Ted Swoyer) Organization: Concurrent Computer Corp. - Westford, Ma Lines: 99 In article <2931@zipeecs.umich.edu> walden@dip.eecs.umich.edu (Eugene Marvin Walden) writes: > > I was wondering if anybody knows of any other commercial real-time operating >systems than the ones listed below: > > 1. VRTX (Ready Systems) > 2. IRMX (Intel) > 3. QNX (Quantum Software) > 4. VxWorks (Wind River Systems) > 5. OS/9, OS/9000 (Microware) > 6. Alpha (Concurrent Computer Corp.) > 7. Kadak > > All of the above except #6 (Alpha) are really not true real-time operating >systems, because there is no provision for handling deadlines. The Alpha op- >erating system is state-of-the-art, but I don't know anything about its avail- >ability. > So here's the question-- anybody have any other RTOSs that they know of? I >am particularly interested in a system that has something more sophisticated >than a simple priority-based scheduler, but any other additions would be use- >ful as well. > You missed Concurrent Computer Corp.'s RTU operating system. RTU is a System V Release 3 compliant operating system with extensive enhancements to support real time applications. RTU also provides a 4.2BSD compatibilty environment for easy porting of Berkeley based applications. RTU is available on Concurrent's line of multiprocessors including a Motorola 68020 platform, a Motorola 68030 platform and a MIPS R3000 platform. RTU's enhancements are in the following domains: Multiprocessing RTU supports symmetric multiprocessing, threads and compilers enhanced to provide parallelization. RTU also supports directed interrupt handling to free up all but the boot processor from handling interrupts (normally interrupts are symmetricly handled), distribution of interrupts so specific CPUs can process specific interrupts or interrupt levels, automatic process scheduling among time-sharing processors from a single run queue, user control over the processors on which processes may run (at run time or shell command execution) (all, several or one - with a choice of which one(s)) and a real-time slave environment which essentially dedicates the slave processor(s) to an interrupt source in bare metal (but with system services standing by). Preemption RTU supports process preemption in both kernel and user space, allowing higher priority tasks to run as soon as they are ready even if a lower priority process is executing a system call. Scheduling In addition to the standard UNIX scheduling policy, RTU supports a fixed priority policy and a fixed priority with quantum policy (round robin with fixed priority). The next version of RTU will include a synthetic period scheduler (capable of synthesizing an execution pattern synchronous to a given frequency). Memory management RTU supports locking a either all or part of a process into memory. Either text, data or both can be locked in using the System V block(2) system call or individual pages of text, data or stack can be locked using an RTU system call. A process with locked pages will not swap. Interprocess communication and synchronization RTU supports an Asynchronous System Trap mechanism for kernel to user or user to user communication. ASTs can be assigned different priorities, can pass information from the sending to receiving process, are queued, are serviced by priority order (32K priorities) and will never be lost. RTU also supports the System V shared memroy, semaphores, message queues, named pipes, memory based pipes, STREAMS and signals and BSD sockets and signals. In addition, RTU supports reserved memory to allow direct, unmediated communication between user address space and devices on the system bus. Reserved memory can also serve as a contiguous shared memory area. I/O In addition to the standard UNIX I/O mechanisms, RTU supports asynchronous I/O, I/O bus addressing, direct DMA to and from user space, synchronized I/O, multiple I/O buses, contiguous disk files, bit mapped disk allocation, preallocated files, direct I/O which bypasses the UNIX block buffering, exclusive disk operation and support for symmetric device driver. In the next release RTU will support disk mirroring, disk striping and disk dual porting. Deterministic response RTU essentially allows successive redirection of processing until what is left is just the process tied to just the interrupt or interrupt level running on 1-7 processors with direct access to the disk subsystem. This environment is called the real-time slave environment. All system services are also availabe in this environment, but process dispatch latencies will differ depending on the system services in use. If you want further information about RTU or Concurrent, contact me at (508) 392-2690. Ted Swoyer