5.1.5 Discretionary Access Control (DAC) | 55 |
5.1.5.1 Permission bits | 56 |
5.1.5.2 Access Control Lists | 57 |
5.1.6 Asynchronous I/O | 60 |
5.1.7 I/O scheduler | 61 |
5.1.7.1 Deadline I/O scheduler | 61 |
5.1.7.2 Anticipatory I/O scheduler | 62 |
5.1.7.3 Completely Fair Queuing scheduler | 62 |
5.1.7.4 Noop I/O scheduler | 62 |
5.1.8 I/O interrupts | 63 |
5.1.8.1 Top halves | 63 |
5.1.8.2 Bottom halves | 63 |
5.1.8.3 Softirqs | 63 |
5.1.8.4 Tasklets | 63 |
5.1.8.5 Work queue | 64 |
5.1.9 Processor interrupts | 64 |
5.1.10 Machine check | 64 |
5.2 Process control and management | 65 |
5.2.1 Data structures | 66 |
5.2.2 Process creation and destruction | 67 |
5.2.2.1 Control of child processes | 68 |
5.2.2.2 DAC controls | 68 |
5.2.2.3 execve() | 68 |
5.2.2.4 do_exit() | 69 |
5.2.3 Process switch | 69 |
5.2.4 Kernel threads | 69 |
5.2.5 Scheduling | 69 |
5.2.6 Kernel preemption | 71 |
5.3 | 72 |
5.3.1 Pipes | 73 |
5.3.1.1 Data structures and algorithms | 74 |
5.3.2 | 74 |
5.3.2.1 FIFO creation | 75 |
5.3.2.2 FIFO open | 75 |
5.3.3 System V IPC | 75 |
5.3.3.1 Common data structures | 76 |
5