describes the important classes
of real-time programs, emphasizing the different kinds of
performance requirements they have.
Chapter 2, "Basic Features of the CHALLENGE and IRIX Architectures," (12 pages)
contains an overview of how IRIX manages the resources of a Challenge
or Onyx system for the benefit of normal, interactive UNIX
applications; and points out how these methods often conflict with
the needs of real-time programs. This chapter also touches on the
operation of a multiprocessor array such as the POWERChallenge Array.
Chapter 3, "How IRIX and REACT/Pro Support Real-Time Programs," (22 pages)
gives an overview of the real-time features of IRIX. From these survey
topics you can jump to the detailed topics that interest you most.
Chapter 4, "Managing Virtual Memory in a Real-Time Program," (12 pages)
covers the management of your virtual address space: locking it to real
memory; mapping devices and files into it; and sharing segments of
it between processes.
Chapter 5, "Managing Time and Time Intervals," (12 pages)
covers the use of
timers and clocks in the Challenge/Onyx architecture.
describes how you can isolate
a CPU and dedicate almost all of its cycles to your program's use.
Chapter 7, "Using the Frame Scheduler," (38 pages)
describes the REACT/Pro
Frame Scheduler, which gives you a simple, direct way to structure
your real-time program as a group of cooperating processes,
efficiently scheduled on one or more isolated CPUs.
Chapter 8, "Optimizing Disk I/O for a Real-Time Program," (24 pages)
describes how to set up disk I/O to meet real-time constraints,
including the use of asynchronous I/O and guaranteed-rate I/O.
The programs in this appendix illustrate the use of some of
the features discussed in the book. The following programs
are included:
Mapping and Reading the Cycle Counter
illustrates
the use of the cycle-counter.
Getting the Time of Day Stamp
illustrates
the use of gettimeofday() and shows how to test its precision.
Interprocess Communication
illustrates some
uses of arenas, semaphores, and interval timers.
Probing the Address Space
displays the addresses assigned
to a process address space, and illustrates some uses of mmap().
Deadline Scheduling Subroutines
illustrates the
use of schedctl(2) to set a deadline scheduling policy.
Asynchronous I/O Example
illustrates the use of
asynchronous I/O including four different methods of
testing for I/O completion, and also shows process
creation with sproc() and the use of semaphores and
barriers.
Guaranteed-Rate Request
demonstrates how to
request a guaranteed rate of I/O transfer.
Frame Scheduler Examples
describes the sample
programs distributed with the REACT/Pro Frame
Scheduler.