第一章 操作系统概述 (1)
1.1
什么是操作系统 (1)
1.1.1
操作系统的虚拟机观点 (1)
1.1.2
操作系统的资源管理观点 (3)
1.1.3
操作系统的用户服务观点 (3)
1.2
操作系统的形成过程 (4)
1.2.1
人工操作阶段 (4)
1.2.2
单道批量处理阶段
(4)
1.2.3
执行系统阶段 (6)
1.2.4
多道程序系统阶段 (7)
1.3
操作系统的基本类型 (8)
1.3.1
多道批处理系统 (8)
1.3.2
分时系统 (9)
1.3.3
实时系统 (11)
1.3.4
通用操作系统 (13)
1.3.5
网络操作系统 (13)
1.4 操作系统的特征 (14)
1.5
操作系统的服务 (16)
1.5.1
操作系统的公共服务 (16)
1.5.2
操作系统的服务方式 (17)
1.6
操作系统的功能 (18)
1.6.1
用户接口 (18)
1.6.2
处理机管理 (19)
1.6.3
存储管理 (20)
1.6.4
设备管理 (21)
1.6.5
文件管理 (22)
1.7
操作系统的结构 (23)
1.7.1
整体式系统 (23)
1.7.2
层次式系统 (23)
1.7.3
客户/服务器系统
(24)
1.8
中断及其在操作系统中的作用 (24)
1.8.1
中断是多道程序并发执行的推动力 (25)
1.8.2
操作系统由中断驱动 (25)
学后自测一 (25)
参考答案一 (26)
第二章 用户接口 (27)
2.1
用户接口概述 (27)
2.1.1
运行用户程序的过程 (27)
2.1.2
作业管理概述 (28)
2.2
命令接口 (29)
2.2.1
脱机命令接口 (29)
2.2.2
联机命令接口 (30)
2.3
程序接口 (32)
2.3.1
系统调用概述 (33)
2.3.2
系统调用过程 (34)
2.4 图形接口 (35)
学后自测二 (36)
参考答案二 (36)
第三章 进程管理 (37)
3.1
进程的基本概念 (37)
3.1.1
进程的引入 (37)
3.1.2
进程的定义和特征 (42)
3.1.3
进程的基本状态及其变迁 (43)
3.2
进程的实现 (45)
3.2.1
进程的结构描述 (45)
3.2.2
进程控制块的结构 (46)
3.2.3
进程控制块的组织形式 (47)
3.3
进程控制 (48)
3.3.1
进程控制机构 (48)
3.3.2
进程控制原语 (49)
3.4
进程的互斥与同步 (53)
3.4.1
进程互斥 (53)
3.4.2
进程同步 (55)
3.4.3
利用信号量机制解决进程互斥、同步及前趋图问题 (56)
3.5
利用信号量机制解决经典进程同步问题 (61)
3.5.1
生产者—消费者问题 (61)
3.5.2
哲学家进餐问题 (64)
3.5.3
读者—写者问题 (66)
3.6
进程通信 (67)
3.6.1
进程通信的类型 (67)
3.6.2
消息传递系统 (68)
3.6.3
消息缓冲队列通信机制——直接通信方式的实现 (70)
3.7
线程的概念 (72)
3.7.1
线程的定义和属性 (73)
3.7.2
线程与进程的比较 (73)
3.8
管程的概念 (74)
3.8.1
管程的引入 (74)
3.8.2
管程的定义 (75)
3.8.3
实现管程的三个关键问题 (76)
学后自测三 (77)
参考答案三 (80)
第四章 死锁及其对策 (89)
4.1
死锁的基本概念 (89)
4.1.1
资源 (90)
4.1.2
死锁的定义 (90)
4.1.3
产生死锁的原因 (91)
4.2
死锁原理及对策 (92)
4.2.1
死锁原理及产生死锁的必要条件 (92)
4.2.2
死锁的描述 (93)
4.2.3
解决死锁的方法 (96)
4.3 鸵鸟算法 (96)
4.4
死锁的检测和恢复 (97)
4.4.1
利用资源分配图描述系统状态 (97)
4.4.2
死锁检测中的数据结构 (100)
4.4.3
死锁检测算法 (100)
4.4.4
死锁的恢复 (101)
4.5
死锁预防 (102)
4.5.1
打破“不剥夺”条件 (102)
4.5.2
打破“部分分配”条件 (103)
4.5.3
打破“环路等待”条件 (103)
4.6
死锁避免 (104)
4.6.1
系统状态的安全性 (104)
4.6.2
银行家算法 (105)
4.6.3
银行家算法举例 (107)
学后自测四 (109)
参考答案四 (110)
第五章
处理机管理 (112)
5.1
调度的类型和模型 (112)
5.1.1
作业调度 (112)
5.1.2
进程调度 (114)
5.1.3
中级调度 (115)
5.1.4
调度队列模型 (115)
5.2
调度算法的选择和性能评价 (118)
5.2.1
调度算法选择时考虑的因素 (118)
5.2.2
调度算法性能的评价 (120)
5.3
调度算法 (121)
5.3.1
先来先服务调度算法 (121)
5.3.2
短作业(进程)优先调度算法 (123)
5.3.3
优先级调度算法 (125)
5.3.4
时间片轮转调度算法 (127)
5.3.5
多级反馈队列调度算法 (128)
5.3.6
实时调度算法 (131)
学后自测五 (133)
参考答案五 (135)
第六章
存储管理 (139)
6.1
存储管理的基本概念 (139)
6.1.1
存储器的层次 (139)
6.1.2
地址重定位 (140)
6.1.3
存储管理的目的和功能 (143)
6.1.4
存储分配方式 (144)
6.2
实存储管理技术 (145)
6.2.1
单一连续区管理
(145)
6.2.2
固定式和可变式分区存储管理 (145)
6.2.3
可重定位分区存储管理 (150)
6.2.4
分区的存储保护
(152)
6.3
虚拟存储系统的基本概念 (152)
6.3.1
何谓虚拟存储器
(152)
6.3.2
实现虚拟存储器的基本原理 (153)
6.4
分页存储管理 (154)
6.4.1
分页存储管理的实现原理 (154)
6.4.2
简单分页存储管理 (155)
6.4.3
请求分页存储管理 (158)
6.4.4
请求分页存储管理的页面置换算法
(160)
6.4.5
抖动和工作集模型 (164)
6.4.6
页面保护 (167)
6.4.7
页式存储管理的优缺点 (167)
6.5
请求分段存储管理 (168)
6.5.1
段式存储管理的基本思想 (168)
6.5.2
段式存储管理的实现原理 (168)
6.5.3
段的共享与保护
(172)
6.5.4
分段与分页的区别与联系 (173)
6.5.5
段式存储管理的优缺点 (174)
6.6
段页式存储管理 (174)
6.6.1
段页式存储管理的基本思想 (174)
6.6.2
段页式存储管理的地址变换过程 (175)
6.6.3
段页式存储管理的优缺点 (177)
学后自测六 (177)
参考答案六 (179)
第七章
I/O系统及设备管理 (180)
7.1
设备管理概述 (180)
7.1.1
I/O设备的类型
(180)
7.1.2
设备管理的任务和功能 (181)
7.2
I/O控制方式 (182)
7.2.1
程序直接控制方式 (182)
7.2.2
程序中断I/O控制方式 (183)
7.2.3
DMA控制方式 (183)
7.2.4
I/O通道控制方式 (184)
7.3
外设的启动和I/O中断处理 (186)
7.3.1
I/O设备的启动
(187)
7.3.2
I/O中断事件的处理 (188)
7.4
虚拟设备技术 (189)
7.5
I/O设备的分配 (191)
7.5.1
设备分配中的数据结构 (191)
7.5.2
设备分配的原则和机制 (193)
7.5.3
设备分配的实施
(196)
7.6
驱动调度 (198)
7.6.1
移臂调度 (199)
7.6.2
旋转调度 (202)
学后自测七 (203)
参考答案七 (204)
第八章
文件系统 (206)
8.1
文件系统概述 (206)
8.1.1
文件和文件分类
(207)
8.1.2
文件命名 (208)
8.1.3
文件系统及其功能 (208)
8.1.4
文件操作 (209)
8.2
文件的组织和存取方法 (209)
8.2.1
文件的逻辑组织
(209)
8.2.2
文件的物理组织
(210)
8.2.3
文件的存取方法
(214)
8.3
文件目录管理 (216)
8.3.1
目录的概念 (216)
8.3.2
目录的结构 (217)
8.3.3
文件路径名 (219)
8.4
文件存储空间的管理 (219)
8.4.1
空白文件目录 (220)
8.4.2
位示图 (220)
8.4.3
空闲块链 (221)
8.5
文件的共享 (223)
8.5.1
绕道法 (223)
8.5.2
链访法 (223)
8.5.3
基本文件目录和符号文件目录结构
(224)
8.6
文件的保护机制 (225)
8.6.1
文件存取控制矩阵 (226)
8.6.2
文件存取控制表
(226)
8.6.3
用户存取权限表
(227)
8.6.4
口令核对法 (227)
8.6.5
密码技术 (227)
8.7
文件系统的安全性 (228)
8.8
文件的主要操作 (228)
8.8.1
文件创建和删除
(228)
8.8.2
文件打开和关闭 (229)
8.8.3
文件的读和写 (230)
8.8.4
文件的链接和解除链接 (231)
学后自测八 (232)
参考答案八 (232)
第九章
Linux操作系统 (234)
9.1
Linux简介 (234)
9.1.1
Linux特性 (234)
9.1.2
Linux系统结构及核心功能 (236)
9.2
Linux的进程管理 (236)
9.2.1
Linux进程概述 (236)
9.2.2
Linux进程调度 (239)
9.2.3
Linux进程控制 (240)
9.2.4
Linux进程通信 (242)
9.3
Linux的存储管理 (248)
9.3.1
Linux的分段和分页机制 (249)
9.3.2
Linux内存管理机制 (252)
9.4
Linux的文件系统管理 (255)
9.4.1
逻辑文件系统一般存储结构 (255)
9.4.2
Linux的虚拟文件系统 (255)
9.5
Linux的设备管理 (261)
9.6
Linux的用户接口 (263)
9.6.1
Linux的shell (263)
9.6.2
X Windows (267)
学后自测九 (267)
参考答案九 (268)
第十章
操作系统的进一步发展 (269)
10.1
计算机系统发展对操作系统的影响 (269)
10.2
新一代操作系统介绍 (271)
10.2.1
微机操作系统
(271)
10.2.2
网络操作系统 (274)
10.2.3
分布式操作系统 (278)
10.3
操作系统新技术 (281)
10.3.1
微内核操作系统技术 (281)
10.3.2
面向对象操作系统技术 (284)
学后自测十 (288)
参考答案十 (288)
参考文献 (289)