目录 第1章操作系统初识/1 1.1操作系统简介1 1.1.1操作系统的定义1 1.1.2操作系统的功能5 1.1.3操作系统的主要特征8 1.1.4时空与逻辑关系10 1.2操作系统的起源12 1.2.1手工操作阶段12 1.2.2联机批处理系统阶段13 1.2.3脱机批处理系统阶段13 1.2.4执行系统阶段14 1.2.5多道批处理系统阶段14 1.3操作系统的分类17 1.3.1按使用环境与功能特征划分18 1.3.2按体系架构划分19 1.3.3按内核划分20 本章小结21 习题21 第2章操作系统的架构/23 2.1计算机体系架构23 2.1.1冯·诺依曼体系架构23 2.1.2系统的自举26 2.1.3保护模式与实模式28 2.1.4中断31 2.2操作系统的界面36 2.2.1系统调用36 2.2.2内核态(管态)与用户态(目态)38 2.3操作系统的设计39 2.3.1操作系统的设计哲学392.3.2操作系统的逻辑层次40 本章小结41 习题42 操作系统本质目录第3章进程的抽象/44 3.1多道程序设计与进程的引入44 3.2进程结构与进程控制45 3.2.1进程控制块45 3.2.2进程的创建48 3.2.3进程的终止49 3.3进程状态转换与上下文切换50 3.3.1进程的状态及其转换50 3.3.2上下文切换52 3.4线程54 3.4.1线程的引入54 3.4.2进程与线程的关系55 3.4.3POSIX线程57 本章小结60 习题60 第4章进程的并发/66 4.1并发的问题66 4.2竞争条件67 4.3死锁71 4.4优先级反转77 4.5再谈死锁79 4.5.1产生死锁的必要条件79 4.5.2处理死锁的基本方法80 4.5.3预防死锁81 4.5.4避免死锁82 4.5.5死锁的检测和恢复86 本章小结91 习题92 第5章进程间通信/95 5.1临界区与互斥95 5.1.1禁用中断98 5.1.2锁变量99 5.1.3严格轮转法99 5.1.4Dekker算法101 5.1.5Peterson算法104 5.1.6Dijkstra算法108 5.1.7EisenbergMcGuire算法111 5.1.8Lamport bakery算法114 5.1.9测试与设置锁117 5.1.10POSIX的锁机制118 5.2协作与同步120 5.2.1进程同步问题120 5.2.2条件变量123 5.2.3信号量127 5.3消息传送135 5.3.1管道135 5.3.2FIFO138 5.3.3消息队列141 5.3.4共享内存段144 5.4经典IPC问题151 5.4.1哲学家进餐问题151 5.4.2读者写者问题155 5.4.3理发师睡觉问题159 本章小结163 习题164 第6章处理器管理/171 6.1处理器调度概述171 6.1.1处理器的虚拟化171 6.1.2调度的进程行为172 6.1.3调度决策173 6.2调度层次173 6.2.1高级调度174 6.2.2低级调度175 6.2.3中级调度176 6.2.4调度与进程生命周期177 6.3调度准则与算法178 6.3.1调度准则178 6.3.2先来先服务调度算法181 6.3.3短作业优先调度算法182 6.3.4最短剩余时间优先调度算法183 6.3.5时间片轮转调度算法184 6.3.6多级反馈队列调度算法186 6.3.7其他调度方式190 本章小结192 习题192 第7章内存管理/197 7.1内存管理概述197 7.1.1存储器的层次结构197 7.1.2内存管理需求分析199 7.2无抽象的存储器200 7.3连续内存分配203 7.3.1固定分区分配203 7.3.2动态分区分配204 7.3.3Buddy 系统206 7.4地址空间的抽象213 7.5分段存储管理216 7.6分页存储管理220 7.6.1地址结构221 7.6.2地址变换222 7.6.3页表结构229 7.7段页式存储管理方式232 本章小结236 习题237 第8章设备管理/239 8.1设备管理概述239 8.1.1设备分类239 8.1.2I/O的硬件241 8.1.3CPU与I/O的数据传送方式245 8.1.4缓冲管理249 8.2I/O软件249 8.2.1设计目标和原则249 8.2.2中断处理程序253 8.2.3设备驱动程序253 8.2.4内核I/O子系统257 8.3I/O请求的生命周期261 8.4再谈SPOOLing263 8.4.1SPOOLing介绍263 8.4.2SPOOLing系统的组成264 8.4.3SPOOLing系统的特点265 8.4.4SPOOLing系统的应用(共享打印机)265 本章小结267 习题267 第9章磁盘管理/269 9.1磁盘存储器的管理269 9.1.1磁盘设备270 9.1.2磁盘的访问时间271 9.1.3RAID272 9.1.4磁盘连接方式277 9.2磁盘调度279 9.2.1先来先服务279 9.2.2最短寻道时间优先279 9.2.3扫描算法280 9.2.4循环扫描算法281 9.2.5NStepSCAN和FSCAN调度算法282 9.2.6磁盘调度算法的选择284 9.3存储空间管理285 9.3.1位图法285 9.3.2空闲表法286 9.3.3空闲链表法287 9.3.4成组链接法288 本章小结289 习题290 第10章虚拟存储/293 10.1虚拟存储概述294 10.1.1对换295 10.1.2局部性297 10.1.3虚拟存储器的定义299 10.1.4虚拟存储器的特征300 10.2请求分页存储管理302 10.2.1地址转换机制305 10.2.2内存分配策略和分配算法307 10.2.3调页策略309 10.2.4页面置换算法310 10.3抖动325 10.3.1抖动的原因325 10.3.2工作集模型326 10.3.3基于页面故障频率的页面替换328 本章小结329 习题329 第11章文件管理/331 11.1文件系统概述332 11.1.1文件及文件系统332 11.1.2文件、记录和数据项336 11.1.3文件类型337 11.1.4文件的操作339 11.2文件的逻辑结构343 11.2.1文件逻辑结构的类型344 11.2.2堆345 11.2.3顺序文件346 11.2.4索引顺序文件346 11.2.5索引文件348 11.2.6哈希文件350 11.3文件分配管理351 11.3.1连续分配351 11.3.2链接分配354 11.3.3索引分配355 11.4文件命名359 11.4.1目录管理359 11.4.2链接362 11.4.3识别文件的其他方式365 本章小结366 习题366 结束语/369 参考文献与扩展阅读/371 A.1一般性文献371 A.2案例研究371 A.3死锁372 A.4同步373 A.5CPU调度373 A.6内存管理374 A.7设备处理374 A.8文件系统375 A.9实现375