- 32-bit addressing
- address size
- Defining the Address Space
- page size
- Page Numbers and Offsets
- 64-bit addressing
- address size
- Defining the Address Space
- page size
- Page Numbers and Offsets
- _ABI_SOURCE compiler variable
- Two Implementation Versions
- address range
- Defining the Address Space
- address space
- Virtual Memory
- Defining the Address Space
- copy on write
- Normal Process Creation With fork()
- copy-on-write pages
- Copy-on-Write Pages
- defining addresses
- Address Definition
- duplicated by fork()
- Normal Process Creation With fork()
- functions that change
- Isolating a CPU From TLB Interrupts
- heap segment
- Address Space Boundaries
- interrogating
- Interrogating the Memory System
- limits of
- Address Space Limits
- lowest used address
- Address Space Boundaries
- of VME bus devices
- VME Address Space Mapping
- read-only pages
- Read-Only Pages
- replaced by exec()
- Address Space Replacement With exec()
- resident set size
- Page Validation
- shared by lightweight processes
- Lightweight Process Creation With sproc()
- stack segment
- Address Space Boundaries
- text segment
- Address Space Boundaries
- virtual size of
- Address Definition
- affinity scheduling
- Understanding Affinity Scheduling
- compared to static assignment
- Assigning a Process to a Processor Set
- affinity value
- Understanding Affinity Scheduling
- aio_cancel()
- Scheduling Asynchronous I/O
- aio_error()
- Checking for Completion
- Polling for Status
- example code
- Asynchronous I/O Example
- aio_fsync()
- Assuring Data Integrity
- aio_read()
- Scheduling Asynchronous I/O
- example code
- Asynchronous I/O Example
- from callback
- Establishing a Callback Function
- implies aio_init()
- Implicit Initialization
- aio_return()
- Checking for Completion
- example code
- Asynchronous I/O Example
- aio_sgi_init()
- Initializing with aio_sgi_init()
- example code
- Asynchronous I/O Example
- aio_suspend()
- Checking for Completion
- example code
- Asynchronous I/O Example
- aio_write()
- Scheduling Asynchronous I/O
- example code
- Asynchronous I/O Example
- from callback
- Establishing a Callback Function
- implies aio_init()
- Implicit Initialization
- aircraft simulator
- Aircraft Simulators
- Application Binary Interface. See MIPS ABI
- Two Implementation Versions
- asynchronous I/O
- Asynchronous I/O
- Asynchronous I/O
- Achieving High Transfer Rates to Disk
- aiocb structure
- Asynchronous I/O Control Block
- Checking for Completion
- difference between 5.3 and 5.2
- Two Implementation Versions
- example code
- Asynchronous I/O Example
- Asynchronous I/O Example
- in IRIX 6.0
- Two Implementation Versions
- initializing
- Initializing Asynchronous I/O
- multiple operations to one file
- Multiple Operations to One File
- not compatible with guaranteed rate
- Sharing Access to Guaranteed Files
- notification methods
- Checking for Completion
- POSIX 1003.1b-1993
- Two Implementation Versions
- request priority no longer supported
- Asynchronous I/O Control Block
- signal use
- Checking for Completion
- average data rate
- Requirements on Data Collection Systems
- backing store
- Address Definition
- Page Validation
- barrier
- Barriers
- starting Frame Scheduler
- Synchronized Schedulers: Sync-Slave Processes
- barrier()
- Barriers
- example code
- Asynchronous I/O Example
- batch priority
- Setting a Nondegrading Batch Priority
- brk()
- Address Definition
- modifies address space
- Isolating a CPU From TLB Interrupts
- bus
- processor. See processor bus
- CPUs, Memory, and the System Bus
- bus,VME. See VME bus
- VME Interrupts
- cache
- address mapping in Challenge/Onyx
- Cache Mapping in Challenge/Onyx
- affinity scheduling
- Understanding Affinity Scheduling
- architecture
- Memory Hierarchy
- effect of miss
- Reducing Cache Misses
- management
- Reducing Cache Misses
- multiprocessor conflicts
- Multiprocessor Cache Conflicts
- warming up in first frame
- Process Execution
- cache coherency
- Cache Coherency Updates
- cache line
- Reducing Cache Misses
- cacheflush()
- Isolating a CPU From TLB Interrupts
- CD-ROM audio library
- CD-ROM and DAT Audio Libraries
- Challenge/Onyx architecture
- Multiprocessor Architecture
- cache address mapping
- Cache Mapping in Challenge/Onyx
- cache management in
- Reducing Cache Misses
- clock_gettime()
- Using POSIX clock_gettime()
- concurrent execution
- Concurrent Execution
- copy on write page statue
- Normal Process Creation With fork()
- CPU
- assign interrupt to
- Assigning Interrupts to CPUs
- assign process to
- Assigning Work to a Restricted CPU
- CPU 0 not used by Frame Scheduler
- Frame Scheduler Basics
- isolating from sprayed interrupts
- Isolating a CPU From Sprayed Interrupts
- isolating from TLB interrupts
- Isolating a CPU From TLB Interrupts
- making nonpreemptive
- Making a CPU Nonpreemptive
- relation to bus and memory
- CPUs, Memory, and the System Bus
- restricting to assigned processes
- Restricting a CPU From Scheduled Work
- Mapping Processes and CPUs
- current directory
- Process Composition
- cycle counter
- Hardware Cycle Counter
- as Frame Scheduler time base
- High-Resolution Timer
- drift rate of
- Using the Cycle Counter
- Hardware Cycle Counter
- example program
- Reading the Cycle Counter
- in interval timer management
- Timer Management in Challenge, Onyx, and POWER-Challenge
- mapping into memory
- Using the Cycle Counter
- precision of
- Hardware Cycle Counter
- Using the Cycle Counter
- used for timestamp
- Using the Cycle Counter
- DAT audio library
- CD-ROM and DAT Audio Libraries
- data collection system
- Data Collection Systems
- Major Types of Real-Time Programs
- average data rate
- Requirements on Data Collection Systems
- input rate
- Achieving High Transfer Rates to Devices
- peak data rate
- Requirements on Data Collection Systems
- requirements on
- Requirements on Data Collection Systems
- data segment
- locking
- Locking Program Text and Data
- date command
- Using POSIX clock_gettime()
- Using BSD gettimeofday()
- deadline scheduling
- Deadline Scheduling
- Using Deadline Scheduling
- degrading priority
- Special Scheduling Disciplines
- Aging Priorities
- /dev file system
- How Devices Are Defined
- /dev/ei
- External Interrupts
- device
- defined in /dev
- How Devices Are Defined
- device numbers
- How Devices Are Defined
- opening
- Other I/O
- How Devices Are Used
- device driver
- Device Interrupts
- Interrupt Response Time
- as Frame Scheduler time base
- The Frame Scheduler Device Driver Interface
- entry points to
- Device Driver Entry Points
- for VME bus master
- DMA Access to Master Devices
- generic SCSI
- Generic SCSI Device Driver
- in synchronous input
- Synchronous Input
- reference pages
- Device Driver Entry Points
- tape
- System Tape Device Driver
- device interrupt
- Device Interrupts
- device service time
- Components of Interrupt Response Time
- Device Service Time
- Interrupt Response Time
- not guaranteed
- Service Time for Other Devices
- device special file
- How Devices Are Defined
- direct disk output
- Using Direct I/O
- disk output
- synchronous direct
- Using Direct I/O
- synchronous unbuffered
- Using Synchronous Writing
- dispatch cycle time
- Dispatch Cycle
- Components of Interrupt Response Time
- dlopen()
- Isolating a CPU From TLB Interrupts
- DMA engine for VME bus
- DMA Engine Access to Slave Devices
- performance
- DMA Engine Access to Slave Devices
- DMA mapping
- DMA Mapping
- DMA to VME bus master devices
- DMA Access to Master Devices
- drift rate of cycle counter
- Using the Cycle Counter
- dslib
- Generic SCSI Device Driver
- DSO
- Isolating a CPU From TLB Interrupts
- DSO, text segment for
- Address Space Boundaries
- dynamic shared object. See DSO
- Isolating a CPU From TLB Interrupts
- /etc/autoconfig command
- Assigning Interrupts to CPUs
- exec()
- Address Space Replacement With exec()
- external interrupt
- External Interrupts
- External Interrupts
- with Frame Scheduler
- External Interrupts
- fasthz tuning parameter
- Using Short Timer Intervals
- effect of truncation
- Selecting the fasthz Value
- fcntl()
- example code
- Creating a Real-time File
- file descriptor
- of a device
- How Devices Are Used
- returned by open()
- Other I/O
- with asynchronous I/O
- Asynchronous I/O Control Block
- with guaranteed-rate I/O
- Requesting a Guarantee
- file, mapping into memory
- Locking Mapped Files Into Memory
- fork()
- Normal Process Creation With fork()
- defines address space
- Address Definition
- example
- Normal Process Creation With fork()
- new address space copy-on-write
- Copy-on-Write Pages
- rate guarantee not inherited
- Sharing Access to Guaranteed Files
- frame interval
- Frame Rate
- frame rate
- Frame Rate
- of plant control simulator
- Plant Control Simulators
- of virtual reality simulator
- Virtual Reality Simulators
- Frame Scheduler
- REACT/Pro Frame Scheduler
- Using the Frame Scheduler
- advantages
- Advantages of the Frame Scheduler
- and cycle counter
- High-Resolution Timer
- and external interrupt
- External Interrupts
- and R4000 timer
- On-Chip Timer Interrupt
- and vertical sync
- Vertical Sync Interrupt
- background discipline
- Background Discipline
- continuable discipline
- Continuable Discipline
- CPU 0 not used by
- Frame Scheduler Basics
- definition of frame
- How Frames Are Defined
- design process
- Designing With the Frame Scheduler
- device driver initialization
- Frame Scheduler Initialization Function
- device driver interface
- The Frame Scheduler Device Driver Interface
- device driver interrupt
- Generating Interrupts
- device driver termination
- Frame Scheduler Termination Function
- device driver use
- Device Driver Overview
- example code
- Frame Scheduler Examples
- exception handling
- Handling Frame Scheduler Exceptions
- FRS control process
- Using Multiple Synchronized Schedulers
- The FRS Control Process
- frs_run flag
- Scheduler Flags frs_run and frs_yield
- frs_yield flag
- Scheduler Flags frs_run and frs_yield
- interface to
- The Frame Scheduler API
- interval timers not used with
- Using Timers with the Frame Scheduler
- major frame
- Frame Scheduling
- minor frame
- Frame Scheduling
- multiple synchronized
- Using Multiple Synchronized Schedulers
- overrun exception
- Exception Types
- Realtime Discipline
- overrunnable discipline
- Overrunnable Discipline
- pausing
- Pausing Frame Schedulers
- process outline for multiple
- Implementing Synchronized Schedulers
- process outline for single
- Implementing a Single Frame Scheduler
- process structure
- Process Execution
- realtime discipline
- Realtime Discipline
- scheduling disciplines
- Using the Scheduling Disciplines
- scheduling rules of
- Scheduling Within a Minor Frame
- signals produced by
- Handling Signals in the FRS Controller
- Setting Frame Scheduler Signals
- software interrupt to
- Software Interrupt
- starting up
- Starting Multiple Schedulers
- time base selection
- How Frames Are Defined
- Selecting a Time Base
- underrun exception
- Realtime Discipline
- Exception Types
- underrunable discipline
- Underrunable Discipline
- using consecutive minor frames
- Using Multiple Consecutive Minor Frames
- warming up cache
- Process Execution
- FRS control process
- Using Multiple Synchronized Schedulers
- The FRS Control Process
- design of
- Implementing a Single Frame Scheduler
- receives signals
- Setting Frame Scheduler Signals
- frs_create_master()
- Exporting the Initialization and Termination Functions
- Implementing a Single Frame Scheduler
- Synchronized Schedulers: the Sync-Master Process
- frs_create_slave()
- Synchronized Schedulers: Sync-Slave Processes
- frs_destroy()
- Synchronized Schedulers: Sync-Slave Processes
- Implementing a Single Frame Scheduler
- Synchronized Schedulers: the Sync-Master Process
- frs_driver_export()
- Exporting the Initialization and Termination Functions
- frs_enqueue()
- Synchronized Schedulers: the Sync-Master Process
- Scheduling Within a Minor Frame
- Using the Scheduling Disciplines
- Implementing a Single Frame Scheduler
- Synchronized Schedulers: Sync-Slave Processes
- frs_handle_driverintr()
- Generating Interrupts
- frs_join()
- Starting Multiple Schedulers
- Implementing a Single Frame Scheduler
- Synchronized Schedulers: Sync-Slave Processes
- Process Execution
- Synchronized Schedulers: the Sync-Master Process
- frs_resume()
- Pausing Frame Schedulers
- frs_setattr()
- example code
- Setting Exception Policies
- Setting Exception Policies
- frs_start()
- Synchronized Schedulers: Sync-Slave Processes
- Starting Multiple Schedulers
- Synchronized Schedulers: the Sync-Master Process
- Implementing a Single Frame Scheduler
- frs_stop()
- Pausing Frame Schedulers
- frs_userinter()
- Software Interrupt
- frs_yield
- Process Execution
- frs_yield()
- with overrunable discipline
- Overrunnable Discipline
- fsync()
- Synchronous Output
- Using Synchronous Writing
- gang scheduling
- Gang Scheduling
- Using Gang Scheduling
- getpagesize()
- Interrogating the Memory System
- Page Numbers and Offsets
- getrlimit()
- Address Space Limits
- gettimeofday()
- Using BSD gettimeofday()
- Time of Day Timestamp
- example code
- Getting the Time of Day Stamp
- GRIO. See guaranteed-rate I/O
- Guaranteed-Rate I/O
- grio_remove_request()
- Releasing a Guarantee
- grio_request()
- Requesting a Guarantee
- example code
- Guaranteed-Rate Request
- ground vehicle simulator
- Ground Vehicle Simulators
- group ID
- Process Composition
- guaranteed-rate I/O
- Guaranteed-Rate I/O
- Achieving High Transfer Rates to Disk
- creating a real-time file
- Creating a Real-time File
- example code
- Guaranteed-Rate Request
- hard guarantee
- Hard Guarantees
- requesting a guarantee
- Requesting a Guarantee
- requires XFS
- Guaranteed-Rate I/O Basics
- requires XLV volume
- Guaranteed-Rate I/O Basics
- soft guarantee
- Soft Guarantees
- tied to PD and I-node
- Sharing Access to Guaranteed Files
- video on demand guarantee
- Video On Demand (VOD) Guarantees
- hardware latency
- Components of Interrupt Response Time
- Hardware Latency
- hardware simulator
- Hardware-in-the-loop (HITL) Simulators
- heap segment
- Address Space Boundaries
- Address Definition
- HZ value in timer management
- Timer Management Without a Clock Comparator
- inline functions and cache management
- Locality of Reference
- input
- synchronous
- Synchronous Input
- interchassis communication
- Interchassis Communication
- interprocess communication
- Interprocess Communication
- interrupt
- assign to CPU
- Assigning Interrupts to CPUs
- clock comparator
- Timer Management in Challenge, Onyx, and POWER-Challenge
- controlling distribution of
- Controlling Interrupt Distribution
- device
- Device Interrupts
- external. See external interrupt
- External Interrupts
- group. See interrupt group
- Selecting a Time Base
- isolating CPU from
- Isolating a CPU From Sprayed Interrupts
- latency
- Interrupt Latency
- periodic timer
- Timer Management Without a Clock Comparator
- propogation delay
- Hardware Latency
- response time. See interrupt response time
- Minimizing Interrupt Response Time
- spraying
- VME Interrupts
- Isolating a CPU From Sprayed Interrupts
- TLB
- Translation Lookaside Buffer Updates
- Isolating a CPU From TLB Interrupts
- validity fault
- Page Validation
- vertical sync
- Understanding the Vertical Sync Interrupt
- Vertical Sync Interrupt
- VME bus
- Hardware Latency
- VME Interrupts
- interrupt group
- Selecting a Time Base
- Frame Scheduler passes to device driver
- Frame Scheduler Initialization Function
- not used with cycle counter
- High-Resolution Timer
- to distribute external interrupt
- External Interrupts
- to distribute vertical sync
- Vertical Sync Interrupt
- interrupt response time
- Interrupt Response Time
- Minimizing Interrupt Response Time
- 200 microsecond guarantee
- Maximum Response Time Guarantee
- components
- Components of Interrupt Response Time
- device service not guaranteed
- Service Time for Other Devices
- device service time
- Device Service Time
- dispatch cycle
- Dispatch Cycle
- hardware latency
- Hardware Latency
- kernel service not guaranteed
- Kernel Critical Sections
- restrictions on processes
- Kernel Critical Sections
- software latency
- Software Latency
- interrupts
- unavoidable from timer
- Unavoidable Timer Interrupts
- interval timer
- Timer Interrupts (Itimers)
- Using Interval Timers
- cycle counter used to manage
- Timer Management in Challenge, Onyx, and POWER-Challenge
- example
- Using an Itimer
- management by kernel
- How Timers Are Managed
- not used with Frame Scheduler
- Using Timers with the Frame Scheduler
- BSD Itimers
- ioctl()
- and device driver
- Device Driver Entry Points
- IPL statement
- Assigning Interrupts to CPUs
- IRIS InSight
- About This Guide
- IRIX
- kernel
- CPUs, Memory, and the System Bus
- IRIX overview
- Basic Features of the CHALLENGE and IRIX™ Architectures
- irix.sm configuration file
- Assigning Interrupts to CPUs
- itimer. See interval timer
- Timer Interrupts (Itimers)
- kernel
- address space limits in
- Address Space Limits
- affinity scheduling
- Understanding Affinity Scheduling
- critical section
- Kernel Critical Sections
- deadline scheduling
- Using Deadline Scheduling
- degrading priority
- Aging Priorities
- gang scheduling
- Using Gang Scheduling
- interrupt response time
- Software Latency
- multiprocessor use
- Concurrent Execution
- CPUs, Memory, and the System Bus
- optimizations in
- Kernel Optimizations
- originates signals
- Signals
- priority assignment
- Priorities
- process management
- Process Composition
- real-time features
- Kernel Facilities for Real-Time Programs
- scheduling
- Scheduling Concepts
- scheduling assumptions
- Process Scheduling
- scheduling queues
- Scheduler Queues
- tick
- Tick Interrupts
- time slice
- Tick Interrupts
- timer management
- How Timers Are Managed
- kernel address space
- Defining the Address Space
- latency
- hardware
- Hardware Latency
- Components of Interrupt Response Time
- software
- Components of Interrupt Response Time
- Software Latency
- lightweight process
- created with sproc()
- Lightweight Process Creation With sproc()
- less work to create
- Lightweight Process Creation With sproc()
- preferred for real-time use
- Lightweight Process Creation With sproc()
- limits command
- Address Space Limits
- linked lists and cache management
- Locality of Reference
- lio_listio()
- Scheduling Asynchronous I/O
- locality of reference
- Memory Hierarchy
- Locality of Reference
- lock
- Locks
- defined
- Locks
- effect of gang scheduling
- Using Gang Scheduling
- metering
- Locks
- set by spinning
- Locks
- used by kernel
- Concurrent Execution
- locking virtual memory
- Locking Virtual Memory
- lseek()
- with asynchronous I/O
- Asynchronous I/O Control Block
- with guaranteed-rate I/O
- Video On Demand (VOD) Guarantees
- major device number
- How Devices Are Defined
- major frame
- Frame Scheduling
- malloc()
- Address Definition
- MAP_AUTOGROW flag
- Isolating a CPU From TLB Interrupts
- MAP_LOCAL flag
- Isolating a CPU From TLB Interrupts
- memalign()
- Locality of Reference
- memory
- Managing Virtual Memory in a Real–Time Program
- address ranges of
- Defining the Address Space
- backing store for
- Address Definition
- hierarchy
- Memory Hierarchy
- interrogating size of
- Interrogating the Memory System
- locking pages in
- Locking Pages in Memory
- main
- CPUs, Memory, and the System Bus
- page
- Page Numbers and Offsets
- page size
- Virtual Memory
- shared. See shared memory
- Shared Memory Segments
- virtual
- Virtual Memory
- memory mapping
- Address Definition
- for I/O
- Memory-Mapped I/O
- locking mapped file
- Locking Mapped Files Into Memory
- of cycle counter
- Using the Cycle Counter
- metering lock use
- Locks
- metering semaphore use
- IRIX Semaphores
- minor device number
- How Devices Are Defined
- minor frame
- Frame Scheduling
- Scheduling Within a Minor Frame
- MIPS ABI
- asynchronous I/O
- Two Implementation Versions
- mmap()
- Isolating a CPU From TLB Interrupts
- mpadmin command
- assign clock processor
- Assigning the Clock Processor
- make CPU nonpreemptive
- Making a CPU Nonpreemptive
- query fasthz CPU
- Assigning the fasthz Processor
- restrict CPU
- Restricting a CPU From Scheduled Work
- set fasthz CPU
- Assigning the fasthz Processor
- unrestrict CPU
- Restricting a CPU From Scheduled Work
- mpin()
- Locking Mapped Files Into Memory
- Locking Functions
- mprotect()
- Isolating a CPU From TLB Interrupts
- multiprocessor architecture
- CPUs, Memory, and the System Bus
- affinity scheduling
- Understanding Affinity Scheduling
- and Frame Scheduler
- Using Multiple Synchronized Schedulers
- munmap()
- Isolating a CPU From TLB Interrupts
- munpin()
- Locking Functions
- Locking Mapped Files Into Memory
- mutual exclusion primitive
- Mutual Exclusion Primitives
- NDPHIMAX constant
- Priorities
- NDPHIMIN constant
- Priorities
- ndpri_hilim tuning parameter
- Setting a Nondegrading Batch Priority
- ndpri_lolim tuning parameter
- Setting a Nondegrading Real-Time Priority
- newbarrier()
- Barriers
- “nice” value
- Priorities
- NOINTR statement
- Isolating a CPU From Sprayed Interrupts
- nondegrading batch priority
- Setting a Nondegrading Batch Priority
- nondegrading priorities
- Nondegrading Priorities
- nondegrading real-time priority
- Setting a Nondegrading Real-Time Priority
- npri command
- Setting a Nondegrading Batch Priority
- deadline scheduling
- Using Deadline Scheduling
- nondegrading priority
- Setting a Nondegrading Real-Time Priority
- open()
- Other I/O
- example code
- Creating a Real-time File
- of a device
- How Devices Are Used
- operator
- affected by transport delay
- Transport Delay
- in virtual reality simulator
- Virtual Reality Simulators
- of simulator
- Simulators
- output
- synchronous
- Synchronous Output
- to disk is buffered
- Using Synchronous Writing
- overrun in data collection system
- Requirements on Data Collection Systems
- overrun in Frame Scheduler
- Realtime Discipline
- page
- copy on write
- Copy-on-Write Pages
- locking
- Locking Pages in Memory
- read-only
- Read-Only Pages
- page fault
- Virtual Memory
- causes TLB interrupt
- Isolating a CPU From TLB Interrupts
- prevent by locking memory
- Locking Virtual Memory
- Locking Pages in Memory
- page size
- Virtual Memory
- Page Numbers and Offsets
- page validation
- Page Validation
- peak data rate
- Requirements on Data Collection Systems
- performance effects of cache
- Reducing Cache Misses
- performance tools
- Detecting Cache Problems
- PIO access to VME devices
- PIO Access
- PIO address mapping
- PIO Address Space Mapping
- pixie command
- Detecting Cache Problems
- plant control simulator
- Plant Control Simulators
- plock()
- Locking Functions
- example of
- Locking Program Text and Data
- poll()
- IRIX Semaphores
- power plant simulator
- Plant Control Simulators
- prctl()
- Interrogating the Memory System
- priority
- Priorities
- degrading
- Special Scheduling Disciplines
- Aging Priorities
- looping process can halt system
- Setting a Nondegrading Real-Time Priority
- nondegrading
- Nondegrading Priorities
- nondegrading batch
- Setting a Nondegrading Batch Priority
- nondegrading real-time
- Setting a Nondegrading Real-Time Priority
- ranges of
- Priorities
- process
- Process Management
- ”nice” value
- Priorities
- address space
- Address Space Boundaries
- assign to CPU
- Assigning Work to a Restricted CPU
- assigned to processor
- Assigning a Process to a Processor Set
- attributes
- Process Composition
- attributes initialized by exec()
- Address Space Replacement With exec()
- blocked by I/O
- I/O Scheduling
- composition
- Process Composition
- created with fork()
- Normal Process Creation With fork()
- FRS control
- The FRS Control Process
- lightweight. See lightweight process
- Lightweight Process Creation With sproc()
- mapping to CPU
- Mapping Processes and CPUs
- priority of
- Priorities
- time slice
- Time Slices
- process control
- Major Types of Real-Time Programs
- process creation
- Process Creation
- process group
- Gang Scheduling
- and gang scheduling
- Using Gang Scheduling
- process ID
- Process Composition
- identifies rate guarantee
- Sharing Access to Guaranteed Files
- process scheduling
- Process Scheduling
- processor bus
- capacity
- CPUs, Memory, and the System Bus
- diagram
- Multiprocessor Architecture
- processor set
- Processor Sets
- Using Processor Sets
- contradiction
- Processor Set Contradictions
- prof command
- Detecting Cache Problems
- propogation delay. See hardware latency
- Hardware Latency
- ps command
- Address Definition
- pscommand
- Page Validation
- pset command
- Using Processor Sets
- Scheduler Queues
- and restricted CPU
- Restricting a CPU From Scheduled Work
- contradictions
- Processor Set Contradictions
- punlock()
- Locking Functions
- queue, scheduling
- Priorities
- Scheduler Queues
- R4000 timer
- On-Chip Timer Interrupt
- REACT
- About This Guide
- REACT/Pro
- About This Guide
- read()
- and device driver
- Device Driver Entry Points
- synchronous
- Synchronous Input
- with guaranteed-rate I/O
- Requesting a Guarantee
- real-time priority
- Setting a Nondegrading Real-Time Priority
- real-time program
- and Frame Scheduler
- REACT/Pro Frame Scheduler
- and scheduler assumptions
- Process Scheduling
- data collection
- Major Types of Real-Time Programs
- Data Collection Systems
- defined
- Defining Real-Time Programs
- disk I/O by
- Optimizing Disk I/O for a Real-Time Program
- frame rate
- Requirements on Simulators
- lightweight processes preferred
- Lightweight Process Creation With sproc()
- process control
- Major Types of Real-Time Programs
- simulator
- Simulators
- Major Types of Real-Time Programs
- types of
- Real-Time Programs
- reflective shared memory
- Reflective Shared Memory
- resident set size
- Page Validation
- response time. See interrupt response time
- Minimizing Interrupt Response Time
- restricting a CPU
- Restricting a CPU From Scheduled Work
- rlimit kernel parameter
- Address Space Limits
- rtnetd daemon, priority of
- Setting a Nondegrading Real-Time Priority
- runon command
- Assigning Work to a Restricted CPU
- schedctl()
- Assigning Work to a Restricted CPU
- Setting a Nondegrading Real-Time Priority
- Setting a Nondegrading Batch Priority
- Using Deadline Scheduling
- Using Gang Scheduling
- example code
- Setting a Nondegrading Batch Priority
- Setting a Nondegrading Real-Time Priority
- Deadline Scheduling Subroutines
- Using Gang Scheduling
- with Frame Scheduler
- System Call Interface for Fortran and Ada
- scheduling
- Scheduling Concepts
- affinity type
- Understanding Affinity Scheduling
- assumptions
- Process Scheduling
- deadline type
- Deadline Scheduling
- Using Deadline Scheduling
- degrading priority
- Special Scheduling Disciplines
- gang type
- Using Gang Scheduling
- Gang Scheduling
- nondegrading priority
- Nondegrading Priorities
- scheduling discipline
- Assigning a Discipline to a Processor Set
- ZZZ
- Using the Scheduling Disciplines
- scheduling queue
- Priorities
- Scheduler Queues
- processor set assigned to
- Assigning a Processor Set to a Queue
- SCSI interface
- SCSI Devices
- generic device driver
- Generic SCSI Device Driver
- segment
- heap
- Address Space Boundaries
- locking
- Locking Program Text and Data
- lowest address
- Address Space Boundaries
- stack
- Address Space Boundaries
- text
- Address Space Boundaries
- semaphore
- Semaphores
- defined
- Semaphores
- IRIX implementation
- IRIX Semaphores
- metering
- IRIX Semaphores
- pollable
- IRIX Semaphores
- portable implementation
- SVR4-Compatible Semaphores
- used by kernel
- Concurrent Execution
- used with interval timer
- Using an Itimer
- semget()
- SVR4-Compatible Semaphores
- semop()
- SVR4-Compatible Semaphores
- setitimer()
- BSD Timer Support
- Timer Interrupts (Itimers)
- setitimer()example code
- Using an Itimer
- setrlimit()
- Address Space Limits
- sginap()
- Locks
- example code
- Asynchronous I/O Example
- shared memory
- Shared Memory Segments
- IRIX implementation
- IRIX Shared Memory Arenas
- portable implementation
- SVR4-Compatible Shared Memory
- reflective
- Reflective Shared Memory
- usconfig()
- IRIX Shared Memory Arenas
- usinit()
- IRIX Shared Memory Arenas
- shmat()
- SVR4-Compatible Shared Memory
- shmctl()
- SVR4-Compatible Shared Memory
- Isolating a CPU From TLB Interrupts
- shmget()
- Isolating a CPU From TLB Interrupts
- SVR4-Compatible Shared Memory
- sigaction()
- example code
- Asynchronous I/O Example
- Using an Itimer
- with asynchronous I/O
- Establishing a Completion Signal
- SIGALRM
- from interval timer
- BSD Timer Support
- BSD Itimers
- SIGBUS
- on reference to undefined page
- Address Definition
- sigevent structure
- Asynchronous I/O Control Block
- SIGKILL
- possible when locking pages
- Locking Functions
- signal
- Signals
- delivery priority
- Signals
- generated from interval timer
- BSD Timer Support
- generated in asynchronous I/O
- Checking for Completion
- latency
- Signal Delivery and Latency
- SIGALRM
- BSD Itimers
- BSD Timer Support
- SIGBUS
- Address Definition
- SIGKILL
- Locking Functions
- signal numbers
- Signals
- SIGSEGV
- Read-Only Pages
- SIGUSR1
- Setting Frame Scheduler Signals
- SIGUSR2
- Setting Frame Scheduler Signals
- with Frame Scheduler
- Using Signals Under the Frame Scheduler
- signal handler
- as process attribute
- Process Composition
- when setting up Frame Scheduler
- Implementing a Single Frame Scheduler
- Synchronized Schedulers: the Sync-Master Process
- Synchronized Schedulers: Sync-Slave Processes
- SIGRTMIN on dequeue
- Setting Frame Scheduler Signals
- SIGSEGV
- on attempt to change read-only page
- Read-Only Pages
- sigsuspend()
- Checking for Completion
- SIGUSR1
- on underrun
- Setting Frame Scheduler Signals
- SIGUSR2
- on overrun
- Setting Frame Scheduler Signals
- sigwait()
- Checking for Completion
- simulator
- Major Types of Real-Time Programs
- Simulators
- aircraft
- Aircraft Simulators
- control inputs to
- Plant Control Simulators
- Simulators
- frame rate of
- Requirements on Simulators
- Plant Control Simulators
- ground vehicle
- Ground Vehicle Simulators
- hardware
- Hardware-in-the-loop (HITL) Simulators
- operator of
- Simulators
- plant control
- Plant Control Simulators
- state display
- Simulators
- virtual reality
- Virtual Reality Simulators
- world model in
- Simulators
- sockets
- Socket Programming
- software latency
- Components of Interrupt Response Time
- Software Latency
- spin lock
- Locks
- sproc()
- Lightweight Process Creation With sproc()
- CPU assignment inherited
- Assigning Work to a Restricted CPU
- modifies address space
- Isolating a CPU From TLB Interrupts
- rate guarantee not inherited
- Sharing Access to Guaranteed Files
- sprocsp()
- Isolating a CPU From TLB Interrupts
- example code
- Asynchronous I/O Example
- stack segment
- Address Space Boundaries
- Address Definition
- locking
- Locking Program Text and Data
- striped volume
- Video On Demand (VOD) Guarantees
- structures and cache management
- Locality of Reference
- swap
- Address Definition
- Page Validation
- swapctl()
- Interrogating the Memory System
- synchronous disk output
- Using Synchronous Writing
- sys/param.h
- Tick Interrupts
- sys/schedctl.h
- Priorities
- sysconf()
- Interrogating the Memory System
- sysmp()
- Assigning Work to a Restricted CPU
- Interrogating the Memory System
- assign process to CPU
- Assigning Work to a Restricted CPU
- example code
- Assigning the Clock Processor
- Restricting a CPU From Scheduled Work
- Assigning the fasthz Processor
- Assigning Work to a Restricted CPU
- Making a CPU Nonpreemptive
- Restricting a CPU From Scheduled Work
- isolate TLB interrupts
- Isolating a CPU From TLB Interrupts
- make CPU nonpreemptive
- Making a CPU Nonpreemptive
- number of CPUs
- Restricting a CPU From Scheduled Work
- restrict CPU
- Restricting a CPU From Scheduled Work
- Restricting a CPU From Scheduled Work
- run process on any CPU
- Assigning Work to a Restricted CPU
- set fasthz CPU
- Assigning the fasthz Processor
- syssgi
- set flush interval
- Using a Delayed System Buffer Flush
- syssgi()
- Interrogating the Memory System
- Using the Cycle Counter
- systune command
- Address Space Limits
- Fast Timers Without a Clock Comparator
- tape device
- System Tape Device Driver
- telemetry
- Major Types of Real-Time Programs
- test_and_set
- Mutual Exclusion Primitives
- text segment
- Address Space Boundaries
- loaded from program file
- Page Validation
- locking
- Locking Program Text and Data
- read-only
- Read-Only Pages
- tick
- Tick Interrupts
- disabling
- Making a CPU Nonpreemptive
- time base for Frame Scheduler
- Selecting a Time Base
- time slice
- Tick Interrupts
- timer interrupts unavoidable
- Unavoidable Timer Interrupts
- timer management
- How Timers Are Managed
- timestamp
- Timestamps
- Using Timestamps
- comparing methods
- Comparing the Timestamps
- from clock_gettime()
- Using POSIX clock_gettime()
- from cycle counter
- Using the Cycle Counter
- from gettimeofday()
- Using BSD gettimeofday()
- TLB
- Translation Lookaside Buffer Updates
- TLB update interrupt
- Translation Lookaside Buffer Updates
- Isolating a CPU From TLB Interrupts
- translation lookaside buffer. See TLB
- Translation Lookaside Buffer Updates
- transport delay
- Transport Delay
- udmalib
- DMA Engine Access to Slave Devices
- underrun, in Frame Scheduler
- Realtime Discipline
- usconfig()
- IRIX Shared Memory Arenas
- user ID
- Process Composition
- usinit()
- IRIX Shared Memory Arenas
- arena for barrier
- Barriers
- arena for lock
- Locks
- arena for semaphore
- IRIX Semaphores
- usnewlock()
- Locks
- usnewsema()
- IRIX Semaphores
- uspsema
- IRIX Semaphores
- uspsema()
- example code
- Asynchronous I/O Example
- ussetlock()
- Locks
- usunsetlock()
- Locks
- usvsema
- IRIX Semaphores
- usvsema()
- example code
- Asynchronous I/O Example
- Using an Itimer
- validity fault
- Page Validation
- vertical sync interrupt
- Understanding the Vertical Sync Interrupt
- Vertical Sync Interrupt
- video on demand (VOD). See guaranteed-rate I/O, video on demand
- Video On Demand (VOD) Guarantees
- virtual address space. See address space
- Defining the Address Space
- virtual memory
- Virtual Memory
- loading pages
- Page Validation
- locking
- Locking Virtual Memory
- page fault
- Virtual Memory
- ZZZ
- Managing Virtual Memory in a Real–Time Program
- virtual page number
- Page Numbers and Offsets
- virtual reality simulator
- Virtual Reality Simulators
- virtual size
- Address Definition
- VME bus
- The VME Bus
- address space mapping
- VME Address Space Mapping
- and process scheduling
- VME Bus I/O
- assign interrupt to CPU
- Assigning Interrupts to CPUs
- configuration
- VME Bus Attachments
- data input rate
- Achieving High Transfer Rates to Devices
- DMA mapping
- DMA Mapping
- DMA to master devices
- DMA Access to Master Devices
- hardware latency of
- Hardware Latency
- interrupt levels
- VME Interrupts
- performance
- DMA Engine Access to Slave Devices
- DMA Access to Master Devices
- PIO Access
- PIO access
- PIO Access
- PIO address mapping
- PIO Address Space Mapping
- udmalib
- DMA Engine Access to Slave Devices
- VPN. See virtual page number
- Page Numbers and Offsets
- write()
- and device driver
- Device Driver Entry Points
- direct
- Using Direct I/O
- synchronous
- Using Synchronous Writing
- Synchronous Output
- with guaranteed-rate I/O
- Requesting a Guarantee
- Creating a Real-time File