1 introduction 1 1.1 what is an operating system? 3 1.1.1 the operating system as an extended machine 4 1.1.2 the operating system as a resource manager 5 1.2 history of operating systems 6 1.2.1 the first generation (1945–55): vacuum tubes 7 1.2.2 the second generation (1955–65): transistors and batch systems 8 1.2.3 the third generation (1965–1980): ics and multiprogramming 9 1.2.4 the fourth generation (1980–present): personal puters 14 1.2.5 the fifth generation (1990–present): mobile puters 19 1.3 puter hardware review 20 1.3.1 processors 21 1.3.2 memory 24 1.3.3 disks 27 1.3.4 i/o devices 28 1.3.5 buses 31 1.3.6 booting the puter 34 1.4 the operating system zoo 35 1.4.1 mainframe operating systems 35 1.4.2 server operating systems 35 1.4.3 multiprocessor operating systems 36 1.4.4 personal puter operating systems 36 1.4.5 handheld puter operating systems 36 1.4.6 embedded operating systems 36 1.4.7 sensor-node operating systems 37 1.4.8 real-time operating systems 37 1.4.9 smart card operating systems 38 1.5 operating system concepts 38 1.5.1 processes 39 1.5.2 address spaces 41 1.5.3 files 41 1.5.4 input/output 45 1.5.5 protection 45 1.5.6 the shell 45 1.5.7 ontogeny recapitulates phylogeny 46 1.6 system calls 50 1.6.1 system calls for process management 53 1.6.2 system calls for file management 56 1.6.3 system calls for directory management 57 1.6.4 miscellaneous system calls 59 1.6.5 the windows win32 api 60 1.7 operating system structure 62 1.7.1 monolithic systems 62 1.7.2 layered systems 63 1.7.3 microkernels 65 1.7.4 client-server model 68 1.7.5 virtual machines 68 1.7.6 exokernels 72 1.8 the world accor to c 73 1.8.1 the c language 73 1.8.2 header files 74 1.8.3 large programming projects 75 1.8.4 the model of run time 76 1.9 research on operating systems 77 1.10 outline of the rest of this book 78 1.11 metric units 79 1.12 summary 80 2 processes and threads 85 2.1 processes 85 2.1.1 the process model 86 2.1.2 process creation 88 2.1.3 process termination 90 2.1.4 process hierarchies 91 2.1.5 process states 92 2.1.6 implementation of processes 94 2.1.7 modeling multiprogramming 95 2.2 threads 97 2.2.1 thread usage 97 2.2.2 the classical thread model 102 2.2.3 ix threads 106 2.2.4 implementing threads in user space 108 2.2.5 implementing threads in the kernel 111 2.2.6 hybrid implementations 112 2.2.7 scheduler activations 113 2.2.8 pop-up threads 114 2.2.9 making single-threaded code multithreaded 115 2.3 interprocess munication 119 2.3.1 race conditions 119 2.3.2 critical regions 121 2.3.3 mutual exclusion with busy waiting 121 2.3.4 sleep and wakeup 127 2.3.5 semaphores 130 2.3.6 mutexes 132 2.3.7 monitors 137 2.3.8 message passing 144 2.3.9 barriers 146 2.3.10 avoi locks: read-copy-update 148 2.4 scheduling 148 2.4.1 introduction to scheduling 149 2.4.2 scheduling in batch systems 156 2.4.3 scheduling in interactive systems 158 2.4.4 scheduling in real-time systems 164 2.4.5 policy versus mechanism 165 2.4.6 thread scheduling 165 2.5 classical ipc problems 167 2.5.1 the dining philosophers problem 167 2.5.2 the readers and writers problem 169 2.6 research on processes and threads 172 2.7 summary 173 3 memory management 181 3.1 no memory abstraction 182 3.2 a memory abstraction: address spaces 185 3.2.1 the notion of an address space 185 3.2.2 swapping 187 3.2.3 managing free memory 190 3.3 virtual memory 194 3.3.1 paging 195 3.3.2 page tables 198 3.3.3 spee up paging 201 3.3.4 page tables for large memories 205 3.4 page recement algorithms 209 3.4.1 the optimal page recement algorithm 209 3.4.2 the not recently used page recement algorithm 210 3.4.3 the first-in, first-out (fifo) page recement algorithm 211 3.4.4 the second-chance page recement algorithm 211 ……
以下为对购买帮助不大的评价