| |
| ....File and Record Locking | 21 |
| ....Interprocess Communications | 22 |
| ....Process Scheduler | 23 |
| ....Memory Management | 24 |
2. File and Record Locking | 27 |
| ....Supported File Systems | 27 |
| ..Choosing A Locking Type | 28 |
| ..Terminology | 29 |
| ....Opening a File for Record Locking | 30 |
| ....Setting a File Lock | 32 |
| ....Setting and Removing Record Locks | 35 |
| ....Getting Lock Information | 39 |
| ....Forking Locks | 41 |
| ....Deadlock Handling | 42 |
| ....Selecting Advisory or Mandatory Locking | 42 |
| ....Cautions about Mandatory Locking | 44 |
| ....File and Record Locking | 45 |
3. Interprocess Communication | 47 |
| ....Permissions | 48 |
| ....IPC Functions, Key Arguments, and Creation Flags | 50 |
| ..Messages | 51 |
| ....Structure of a Message Queue | 52 |
| ....Initializing a Message Queue with msgget( ) | 54 |
| ....Controlling Message Queues with msgctl( ) | 56 |
| |
| ....Sending and Receiving Messages | 61 |
| ..Semaphores | 68 |
| ....Structure of a Semaphore Set | 70 |
| ....Initializing a Semaphore Set with semget( ) | 72 |
| ....Controlling Semaphores with semctl( ) | 74 |
| ....Performing Semaphore Operations with semop( ) | 83 |
| ..Shared Memory | 89 |
| ....Structure of a Shared Memory Segment | 89 |
| ....Using shmget( ) to Access a Shared Memory Segment | 92 |
| ....Controlling a Shared Memory Segment with shmctl( ) | 94 |
| ....Attaching and Detaching a Shared Memory Segment with |
| .......shmat( ) and shmdt( ) | 99 |
4. Process Scheduler | 107 |
| ..Overview of the Process Scheduler | 109 |
| ....Time-Sharing Class | 110 |
| ....System Class | 111 |
| ....Realtime Class | 111 |
| ..Commands and Functions | 111 |
| ....The priocntl Command | 114 |
| ....The priocntl Function | 120 |
| ....The priocntlset Function | 133 |
| ..Interaction with Other Functions | 136 |
| ....Kernel Processes | 136 |
| ....fork and exec | 137 |
| |
| ....nice | 137 |
| ....init | 137 |
| ..Performance | 137 |
| ....Process State Transition | 138 |
| ....Software Latencies | 140 |
5. Memory Management | 141 |
| ..Overview of the Virtual Memory System | 141 |
| ....Virtual Memory, Address Spaces, and Mapping | 141 |
| ....Networking, Heterogeneity, and Coherence | 143 |
| ..Memory Management Interfaces | 144 |
| ....Creating and Using Mappings | 144 |
| ....Removing Mappings | 150 |
| ....Cache Control | 151 |
| ....Other Mapping Functions | 154 |
| ..Address Space Layout | 154 |
6. Realtime Programming and Administration | 159 |
| ..Basic Rules of Realtime Applications | 159 |
| ....Degrading Response Time | 160 |
| ....Runaway Realtime Processes | 162 |
| ....I/O Behavior | 163 |
| ..Scheduling | 164 |
| ....Dispatch Latency | 164 |
| ....System Calls That Control Scheduling | 173 |
| ....Utilities that Control Scheduling | 175 |