|
REACT for IRIX®
Real-Time Support in IRIX (starting with Version 6.4) REACT enables SGI® general-purpose multiprocessor systems to deliver the deterministic performance required by hard real-time applications. REACT is a collection of extensions to IRIX, the SGI implementation of standard UNIX® System V. Included with IRIX, REACT provides deterministic performance on multiprocessor SGI® Origin® servers, Silicon Graphics® Onyx2® visual workstations, and Silicon Graphics® Octane® visual workstations.. Topics:
This page provides an overview of REACT features. For a more detailed description that includes references to the the applicable system calls, you can download the Real-time in IRIX Technical Report (PDF 64K). User Control Ensures Precise Real-Time Behavior
Restricting UNIX System Overhead REACT enables you to restrict all non-deterministic IRIX system activity to one processor in a multiprocessor system. This leaves the remaining processors under the full control of your real-time application. UNIX services are always available, but IRIX system daemons will never preempt a real-time process. Allocating Processors Using the REACT processor restriction capability, you can specify which processes will execute on each real-time processor, and exclude all other activity from those processors. This enables you to divide your workload across processors and ensure that each process meets its deadlines. Directing Interrupts to Processors REACT allows you to route VME or PCI interrupts to the processor of your choice. Other interrupts such as SCSI or Ethernet can be directed away from your real-time processors. This ensures immediate responses to real-time interrupts, and prevents non-real-time interrupts from interfering with your applications. Locking Memory A single POSIX-compliant system call locks into physical memory all pages used by your real-time process, including pages that are allocated after a locking call has been issued. Assigning Process Priority REACT provides a range of 256 non-degrading real-time priority levels. IRIX kernel threads share this priority range, so you can give user processes higher or lower priority than the threads which perform most kernel activity. Standard POSIX 1003.1b calls are used to set or query priority levels. Controlling Process Scheduling The IRIX scheduler supports both the FIFO and Round-Robin real-time scheduling policies specified by POSIX 1003.1b. FIFO implements a fixed priority scheduling policy, and Round-Robin combines priority scheduling with timesharing among processes of equal priority. In addition, the IRIX scheduler offers a time-sharing policy. For fixed frame-rate applications, the REACT/pro Frame Scheduler (FRS) provides a solution that is flexible, easy-to-use, and highly efficient. If neither the IRIX scheduler nor the FRS meet your requirements, REACT offers a choice of ways to implement interrupt-driven, user level scheduling. This enables you to develop your own scheduling policy, or to easily port an existing executive process. Once a multiprocessor has been properly configured using the features described above, SGI guarantees 100 microseconds worst-case total interrupt response on SGI® Origin® 2000 series servers and 50 microseconds on SGI® Origin® 3000 series servers. This guarantee applies to all current and future multiprocessor hardware and software releases. The components of total interrupt response are listed in the following diagram. To jump to the analogous diagram for REACT/pro User-Level Interrupts, click here.
REACT Worst-Case Interrupt Response
Processor Activity POSIX 1003.1b Features Offer Performance and Portability Precision Clocks and Timers Each processor includes a hardware clock with sub-microsecond precision that REACT uses to support POSIX 1003.1b clocks and timers. This hardware support allows high precision to be achieved with minimal additional system overhead. The REACT implementation of POSIX timers enables a process to sleep for any period ranging from a few microseconds to hundreds of hours. REACT also provides support for traditional UNIX itimers. REACT also allows your process to map a high-resolution hardware clock into its virtual address space and then read the hardware timer directly. Real-Time Disk I/O REACT supports both synchronous and asynchronous disk I/O as specified by POSIX 1003.1b. Using asynchronous I/O, your real-time process can initiate a disk I/O operation and then continue processing while the operation is completed by a non-real-time processor. Synchronous I/O operations ensure that data written by your real-time process has reached the physical disk before your process resumes execution. POSIX 1003.1b memory mapped files provide deterministic file I/O when a disk file is mapped into pages that are locked into physical memory. Queued Signals POSIX 1003.1b queued signals guarantee that the number of signals received by a process is identical to the number sent to that process, and that signals are delivered in priority order. Queued signals provide a reliable technique for one real-time process to asynchronously notify another process of the occurrence of an event. Shared Memory REACT shared memory takes advantage of the high-speed, cache coherency logic built into the ccNUMA architecture. For maximum portability, REACT supports a choice of three shared-memory interfaces: POSIX 1003.1b, System V, and SGI arenas. Semaphores The REACT implementation of POSIX 1003.1b semaphores provides a high-speed user-level synchronization mechanism. Real-time processes blocked on POSIX semaphores are unblocked in priority order. Message Queues POSIX 1003.1b message queues make it simple to pass data among processes and assign priority to messages. As implemented in REACT, message queues support priority inheritance to prevent deadlock and minimize scheduling latency for high-priority processes. This behavior allows real-time processes of different priority to share queues. Advanced Hardware Features Simplify Integration REACT provides an easy-to-use programming interface that allows you to map VME or PCI devices into the virtual address space of your process without requiring kernel driver modifications. Once the mapping is initialized, processes can read or write VME or PCI locations as though they were system memory. VME DMA Engine The optional VME Adapter for Origin 2000 and Onyx2 uses the Universe chip from Tundra Semiconductor Corp. This chip includes a general purpose DMA engine that supports a choice of addressing modes. REACT/ pro gives you access to most features of the Universe chip. External Interrupt Input Origin and Onyx2 include back panel connectors that allow direct input or output of an interrupt signal. The edge-triggered input can either cause a signal to be sent to a real-time process, or trigger frame initiation by the REACT/pro Frame Scheduler. REACT external interrupts make it simple to synchronize execution of your processes with events in the external world. | |