| |
| Figure 3-1 IPC Permissions Data Structure | 49 |
| Figure 3-2 IPC Permission Modes | 51 |
| Figure 3-3 Structure of a Message Queue | 52 |
| Figure 3-4 Message Queue Control Structure | 53 |
| Figure 3-5 Message Header Structure | 53 |
| Figure 3-6 Synopsis of msgget() | 54 |
| Figure 3-7 Sample Program to Illustrate msgget() | 56 |
| Figure 3-8 Synopsis of msgctl() | 56 |
| Figure 3-9 Sample Program to Illustrate msgctl() | 61 |
| Figure 3-10 Synopses of msgsnd() and msgrcv() | 61 |
| Figure 3-11 Sample Program to Illustrate msgsnd() and msgrcv() | 67 |
| Figure 3-12 Structure of a Semaphore | 70 |
| Figure 3-13 Synopsis of semget() | 72 |
| Figure 3-14 Sample Program to Illustrate semget() | 74 |
| Figure 3-15 Synopsis of semctl() | 74 |
| Figure 3-16 Sample Program to Illustrate semctl() | 83 |
| |
| Figure 3-17 Synopsis of semop() | 83 |
| Figure 3-18 Sample Program to Illustrate semop() | 88 |
| Figure 3-19 Structure of a Shared Memory Segment | 90 |
| Figure 3-20 Synopsis of shmget() | 92 |
| Figure 3-21 Sample Program to Illustrate shmget() | 94 |
| Figure 3-22 Synopsis of shmctl() | 94 |
| Figure 3-23 Sample Program to Illustrate shmctl() | 98 |
| Figure 3-24 Synopses of shmat() and shmdt() | 99 |
| Figure 3-25 Sample Program to Illustrate shmat() and shmdt() | 105 |
| Figure 4-1 SunOS 5.x Process Scheduler | 109 |
| Figure 4-2 Process Priorities (Programmer's View) | 112 |
| Figure 4-3 Process State Transition Diagram | 138 |
| Figure 5-1 Traditional UNIX System Address-Space Layout | 155 |
| Figure 5-2 Address-Space Layout | 156 |
| Figure 6-1 Unbounded Priority Inversion | 162 |
| Figure 6-2 Application Response Time | 165 |
| Figure 6-3 Internal Dispatch Latency | 166 |
| Figure 6-4 Dispatch Priorities for Scheduling Classes | 168 |
| Figure 6-5 The Kernel Dispatch Queue | 170 |
| Figure 6-6 Controlling Timer Interrupts | 203 |