书 名 | 操作系统(第5版) | 作 者 | 罗宇、文艳军 |
---|---|---|---|
出版社 | 电子工业出版社 | 出版时间 | 2019年6月 |
页 数 | 324 页 | 开 本 | 16 开 |
ISBN | 9787121365805 |
第1章 绪论 1
1.1 什么是操作系统 1
1.1.1 计算机系统的软件构成 1
1.1.2 操作系统作为特殊子程序 2
1.1.3 操作系统作为资源管理者 3
1.1.4 操作系统提供程序并发运行机制 4
1.2 操作系统的发展历史 4
1.2.1 监督程序 5
1.2.2 专用操作系统 8
1.2.3 多种方式操作系统 12
1.2.4 个人计算机操作系统、并行与分布式操作系统及其发展 12
1.3 主要操作系统介绍 14
1.3.1 Windows系列及MS DOS 14
1.3.2 UNIX大家族 16
1.3.3 自由软件Linux和freeBSD等 19
习题1 23
第2章 操作系统运行机制与用户界面 25
2.1 中断和异常 25
2.1.1 中断和异常的区别 25
2.1.2 中断分级 26
2.2 中断/异常响应和处理 28
2.2.1 中断/异常响应 28
2.2.2 中断/异常处理 29
2.3 操作系统运行模式 33
2.4 系统调用 35
2.5 人机界面 38
2.5.1 命令语言 39
2.5.2 图形化的用户界面 40
2.6 小结 42
习题2 42
第3章 进程与处理机管理 44
3.1 进程描述 44
3.1.1 进程定义 45
3.1.2 进程控制块 46
3.2 进程状态 48
3.2.1 进程的创建与结束 49
3.2.2 进程状态变化模型 50
3.2.3 进程挂起 52
3.3 进程控制与调度 53
3.3.1 进程运行 53
3.3.2 进程调度 55
3.3.3 进程调度算法 58
3.4 作业与进程的关系 62
3.5 线程的引入 64
3.6 小结 66
习题3 66
第4章 进程同步与通信、进程死锁 68
4.1 并行编程 68
4.1.1 并行编程方法 68
4.1.2 操作系统的支持 69
4.2 进程的同步与互斥 70
4.2.1 同步与临界段问题 71
4.2.2 解决临界段问题的硬件实现方法 72
4.2.3 信号量 74
4.2.4 管程 77
4.2.5 进程同步与互斥举例 77
4.3 消息传递 81
4.3.1 消息传递原理 82
4.3.2 消息传递示例 83
4.3.3 管道通信简介 84
4.4 死锁 85
4.4.1 死锁示例 85
4.4.2 死锁定义 86
4.4.3 死锁防止 88
4.4.4 死锁避免 90
4.4.5 死锁检测 92
4.4.6 死锁的恢复 93
4.4.7 死锁综合处理 94
4.5 小结 94
习题4 95
第5章 存储管理 99
5.1 连续空间分配 99
5.1.1 单道连续分配法 99
5.1.2 多道连续固定分区法 101
5.1.3 多道连续可变分区法 103
5.2 不连续空间分配 105
5.2.1 页式管理 106
5.2.2 段式管理 109
5.2.3 段页式管理 112
5.2.4 改进的页式管理 113
5.3 虚拟存储管理 114
5.3.1 页式虚存的基本思想 114
5.3.2 页式虚存管理实现 115
5.3.3 多级页表 117
5.3.4 页替换策略 119
5.4 小结 125
习题5 126
第6章 设备管理 129
6.1 I/O硬件概念 129
6.1.1 常见外部设备分类 129
6.1.2 设备控制器(I/O部件) 130
6.1.3 I/O控制方式 131
6.1.4 I/O控制方式的发展过程 134
6.2 设备I/O子系统 134
6.2.1 设备的使用方法 134
6.2.2 I/O层次结构 136
6.2.3 设备驱动程序 139
6.2.4 缓冲技术 141
6.3 存储设备 144
6.3.1 常见存储外部设备 144
6.3.2 磁盘调度 147
6.3.3 磁盘阵列 150
6.4 小结 154
习题6 154
第7章 文件系统 156
7.1 文件结构 156
7.1.1 文件概念 156
7.1.2 文件的逻辑结构 156
7.1.3 文件的物理存储 158
7.1.4 文件控制块 160
7.2 文件目录结构 161
7.2.1 一级目录结构 161
7.2.2 二级目录结构 162
7.2.3 树状目录结构 162
7.2.4 无环图目录结构 163
7.2.5 目录操作 164
7.3 文件存储器空间布局与管理 165
7.4 文件访问接口 166
7.4.1 传统文件系统调用的实现 167
7.4.2 存储映射文件访问 169
7.5 文件保护 169
7.5.1 文件访问保护 170
7.5.2 文件备份 171
7.6 文件系统的基本模型 172
7.7 FAT文件系统磁盘布局 175
7.8 小结 176
习题7 177
第8章 并行与分布式操作系统 178
8.1 并行操作系统 178
8.1.1 对称多处理机 178
8.1.2 线程概念 180
8.1.3 线程实现 186
8.1.4 线程调度 190
8.2 分布式系统 194
8.2.1 分布式系统特点 195
8.2.2 几种分布式系统应用模型 197
8.2.3 分布式系统实现模型 200
8.2.4 分布式操作系统主要研究内容 202
8.2.5 分布式系统基础——通信协议层次简介 203
8.3 小结 206
习题8 207
第9章 保护与安全 208
9.1 安全威胁 208
9.1.1 病毒 208
9.1.2 蠕虫 209
9.1.3 特洛伊木马 209
9.1.4 隐蔽通道 210
9.2 安全机制 210
9.2.1 硬件保护机制 210
9.2.2 标识与鉴别 211
9.2.3 存取控制 213
9.2.4 最小特权管理 214
9.2.5 安全审计 215
9.2.6 入侵检测 216
9.2.7 网络信息安全技术 217
9.2.8 软件漏洞防护技术 219
9.3 Linux的安全机制 221
9.4 安全评测标准 223
9.4.1 TCSEC 223
9.4.2 GB 17859-1999 224
9.5 小结 225
习题9 226
第10章 系统虚拟机 227
10.1 虚拟机概述 227
10.1.1 为什么需要虚拟机 227
10.1.2 虚拟机管理器的分类 228
10.1.3 系统虚拟化的优势及发展目标 228
10.1.4 虚拟机管理器的架构 229
10.2 CPU的虚拟化 230
10.2.1 软件完全虚拟化 230
10.2.2 硬件辅助虚拟化 230
10.3 内存的虚拟化 232
10.3.1 软件实现内存虚拟化 232
10.3.2 EPT页表辅助内存虚拟化 233
10.4 I/O设备的虚拟化 233
10.4.1 完全的软件I/O设备虚拟化 233
10.4.2 半虚拟化设备模拟 234
10.5 小结 235
习题10 235
第11章 Linux操作系统实例 236
11.1 进程管理 236
11.1.1 进程与进程描述符 236
11.1.2 进程状态及切换时机 237
11.1.3 进程的调度算法 239
11.1.4 进程的创建与消亡 239
11.2 存储管理 242
11.2.1 物理内存的管理 242
11.2.2 进程地址空间的管理 244
11.3 文件系统 248
11.3.1 VFS 248
11.3.2 EXT2 253
11.3.3 主要文件系统中系统调用的处理流程 256
11.4 设备管理 258
11.4.1 设备文件的概念 258
11.4.2 设备模型基础 259
11.4.3 相关数据结构 260
11.4.4 块设备文件的open()和read()操作 262
11.5 中断、异常及系统调用 263
11.5.1 中断/异常的基本知识 263
11.5.2 异常处理函数 264
11.5.3 系统调用 264
11.5.4 中断的处理 265
11.5.5 软中断 267
11.6 SysV进程间通信 268
11.6.1 共有的特性 268
11.6.2 信号量 270
11.6.3 消息队列 271
11.6.4 共享内存 273
习题11 275
附录A bash脚本编程简介 276
A.1 注释和简单命令 276
A.2 环境变量 276
A.3 控制结构 277
A.3.1 if语句 277
A.3.2 case语句 278
A.3.3 for语句 278
A.3.4 while语句和until语句 279
A.4 函数 279
附录B 实现一个简单的Linux命令解释器 281
B.1 myshell的语法 281
B.2 程序框架 281
B.3 命令行的语法分析 282
B.4 简单命令的执行 284
B.5 Makefile 284
附录C Linux常用命令 285
C.1 用户终端命令 285
C.2 vi编辑器的使用 292
附录D Linux常用函数 295
D.1 进程管理函数 295
D.2 文件管理函数 296
D.3 进程间通信函数 298
D.4 多线程库函数 301
附录E Linux内核综合实验指南 303
E1 实验目标与内容 303
E2 实验基础知识 303
E2.1 内核模块 303
E2.2 系统调用 307
E2.3 内存管理 309
E2.4 其他 311
E3 实验设计 313
E4 实验步骤 314
E5 常见问题 314
参考文献 316
本书是“十二五”普通高等教育本科国家级规划教材,也是国防科技大学国家精品课程教材和国家优秀教学团队教学成果。操作系统作为计算机系统的核心系统软件,负责控制和管理整个计算机系统的资源并组织用户以进程为单位高效协调地使用这些资源。本书以多道程序技术为基础,以通用操作系统主要功能部件为主线,介绍操作系统的概念、组成、功能、处理流程、设计等内容,包括:绪论,操作系统运行机制与用户界面,进程与处理机管理,进程同步与通信、进程死锁,存储管理,设备管理,文件系统,并行与分布式操作系统,保护与安全,系统虚拟机,Linux操作系统实例。附录提供与课程配套的实验与课程设计参考资料。配套有实验教材《Linux 操作系统实验教程》,为任课教师免费提供电子课件和习题解答。
论文题 1:操作系统的发展日新月异, 常规操作系统的概念在不断的深化和发展, 这对我们理解操作系统提出了新的要求。操作系统是在实践中不断发展起来的。 实践性极强。学习操作系统要理解其基本概念, 但必须将这些概念与操作系统实 现的系统平台、 应用对象和环境结合起来理解, 才能真正掌握操作系统。 请查询 资料从以下几个方面选议题, 从哲学的角度分析对操作系统发展过程的理解 : ⑴ 操作系统的内核与支持环境; ⑵ 资源分布与资源管理; ⑶ 操作系统与系统套件; ⑷ 操作系统的应用定位; ⑸ 公用软件内核与操作系统。 论文题 2:请选择一个现代操作系统, 如 windows、Apple Macintosh, IBM OS/400, SUN的 Solaris等,查阅资料写一篇文章论述该系统进行进程管理、内存管理、 设备管理和文件管理的数据结构与算法,最好能论及其系统管理是如何实施的。 论文题 3:在
实验目的 : 1. 了解操作系统的日志意义,存储,读取。 2. 编程(c、c++、c #语言或其他语言)实现操作系统日志 信息的读取 实验设备 : 安装 Windows 2000/2003/XP 或更高级别的 Windows操作系统的 主机。 所用软件: Visual Studio.Net 实验步骤 : 1.了解操作系统的日志意义,存储,读取 以 Windows2000/XP 为例,日志文件通常有应用程序日志,安全日志、 系统日志、 DNS服务器日志、 FTP日志、WWW日志等等。 日志文件默认位置: 应用程序日志、 安全日志、系统日志、 DNS日志默认位置: %sys temroot%\sys tem32\config ,默认文件大小 512KB,管理员都会改变这个默认大小。 安全日志文件: %sys temroot%\sys tem32\config\SecEvent.EVT
第一篇 操作系统的基本原理
第1章 操作系统概论 (1)
1.1 操作系统的定义 (1)
1.2 操作系统的形成与发展 (2)
1.2.1 顺序处理(手工操作阶段) (2)
1.2.2 简单的批处理系统 (3)
1.2.3 多道成批处理系统 (5)
1.2.4 分时系统 (7)
1.2.5 实时系统 (9)
1.2.6 嵌入式系统 (10)
1.3 操作系统的功能、服务和特性 (10)
1.4 操作系统的进一步发展 (12)
1.5 用户与操作系统的接口 (15)
1.5.1 用户与操作系统的操作接口 (15)
1.5.2 系统调用接口 (17)
1.6 操作系统的运行环境 (19)
1.7 操作系统的设计规范和结构设计 (19)
1.8 小结 (22)
习题 (23)
第2章 进程管理 (24)
2.1 进程的引入和概念 (24)
2.2 进程的描述 (27)
2.3 进程的控制 (29)
2.4 处理机的调度 (32)
2.5 线程的引入 (37)
2.6 小结 (39)
习题 (39)
第3章 进程之间的并发控制和死锁 (41)
3.1 并发进程的特点 (41)
3.2 进程之间的低级通信 (42)
3.2.1 进程之间的互斥 (42)
3.2.2 进程之间的同步 (45)
3.2.3 信号量和P、V操作 (45)
3.2.4 利用信号量解决计算机中的经典问题 (47)
3.3 管程 (49)
3.4 进程的高级通信 (53)
3.4.1 消息缓冲通信 (53)
3.4.2 其他通信机制 (56)
3.5 死锁 (57)
3.5.1 死锁的定义和死锁产生的必要条件 (57)
3.5.2 解决死锁的方法 (58)
3.6 小结 (66)
习题 (66)
第4章 存储器管理 (70)
4.1 概述 (70)
4.2 单用户单道程序的存储器分配 (72)
4.3 多用户多道程序的存储器分配——分区分配 (73)
4.3.1 固定式分区 (73)
4.3.2 可变式分区 (74)
4.3.3 分区管理的地址重定位和存储器保护 (77)
4.3.4 分区管理的优缺点 (77)
4.4 覆盖与交换技术 (78)
4.5 页式存储器管理 (79)
4.6 段式存储器管理 (84)
4.7 虚拟存储器管理 (86)
4.7.1 虚拟存储器 (86)
4.7.2 页式虚拟存储器管理 (87)
4.7.3 页式管理设计中应考虑的问题 (91)
4.7.4 段式虚拟存储器管理 (94)
4.7.5 段页式虚拟存储器管理 (96)
4.8 小结 (98)
习题 (98)
第5章 文件系统 (101)
5.1 文件和文件系统 (101)
5.2 文件目录结构 (103)
5.3 文件的逻辑结构和存取方法 (105)
5.4 文件的物理结构和存储介质 (107)
5.4.1 文件的物理结构 (107)
5.4.2 文件的存储介质 (110)
5.5 文件记录的组块与分解 (112)
5.6 文件存储器存储空间的管理 (113)
5.7 文件的共享与保护 (114)
5.8 文件的操作命令 (118)
5.9 文件系统的组织结构 (119)
5.10 存储器映射文件 (120)
5.11 小结 (121)
习题 (122)
第6章 设备管理 (124)
6.1 I/O硬件组成 (124)
6.1.1 I/O设备分类 (124)
6.1.2 设备控制器 (124)
6.1.3 I/O数据传输的控制方式 (126)
6.1.4 通道 (128)
6.2 I/O软件的组成 (130)
6.2.1 I/O软件的设计目标 (130)
6.2.2 I/O软件的功能 (131)
6.2.3 同步I/O和异步I/O (135)
6.3 磁盘管理 (136)
6.3.1 磁盘调度 (136)
6.3.2 磁盘的错误处理 (139)
6.3.3 提高磁盘性能和容错性的机制——独立磁盘的冗余阵列 (139)
6.4 小结 (142)
习题 (143)
第二篇 Linux操作系统
第7章 Linux进程管理 (145)
7.1 Linux进程的组成 (146)
7.1.1 进程的定义 (146)
7.1.2 进程的状态 (149)
7.2 Linux进程链表 (149)
7.3 Linux进程控制 (152)
7.3.1 进程创建 (152)
7.3.2 进程撤销 (155)
7.4 Linux进程切换 (155)
7.5 Linux进程调度 (156)
7.6 内核同步 (159)
7.7 小结 (161)
习题 (162)
第8章 Linux存储器管理 (163)
8.1 进程地址空间的管理 (163)
8.1.1 Linux中的分段 (163)
8.1.2 虚拟内存区域 (165)
8.1.3 虚拟内存描述符 (168)
8.1.4 创建进程的地址空间 (170)
8.1.5 堆的管理 (170)
8.2 物理内存管理 (170)
8.3 slab管理 (176)
8.3.1 slab分配器 (176)
8.3.2 slab着色 (178)
8.4 高端内存区管理 (179)
8.5 地址转换 (180)
8.6 请求调页与缺页异常处理 (181)
8.7 盘交换区空间管理 (182)
8.8 小结 (183)
习题 (184)
第9章 Linux文件系统 (185)
9.1 Ext2的磁盘涉及的数据结构 (185)
9.1.1 Linux文件卷的布局 (185)
9.1.2 超级块 (186)
9.1.3 块组描述符 (187)
9.1.4 文件目录与索引节点结构 (188)
9.1.5 访问控制表ACL (191)
9.2 Ext2的主存数据结构 (191)
9.2.1 超级块和索引节点对象 (192)
9.2.2 位图高速缓存 (193)
9.3 Ext2磁盘空间管理 (194)
9.3.1 磁盘索引节点的管理 (195)
9.3.2 空闲磁盘块的分配与回收 (196)
9.4 Ext2提供的文件操作 (197)
9.5 小结 (198)
习题 (198)
第10章 Linux虚拟文件系统 (199)
10.1 虚拟文件系统涉及的数据结构 (199)
10.1.1 超级块对象 (200)
10.1.2 索引节点对象 (202)
10.1.3 文件对象 (205)
10.1.4 目录项对象 (206)
10.1.5 与进程打开文件相关的数据结构 (208)
10.2 文件系统的注册与安装 (210)
10.2.1 文件系统注册 (210)
10.2.2 文件系统安装 (211)
10.3 VFS系统调用的实现 (213)
10.3.1 文件的打开与关闭 (213)
10.3.2 文件的读写 (214)
10.4 小结 (216)
习题 (216)
第11章 Linux I/O系统 (217)
11.1 设备驱动模型 (217)
11.1.1 sysfs文件系统 (217)
11.1.2 设备驱动模型的组件 (219)
11.2 设备文件 (221)
11.3 设备驱动程序 (222)
11.3.1 块设备驱动程序 (223)
11.3.2 字符设备驱动程序 (228)
11.4 高速缓存 (228)
11.4.1 页高速缓存 (229)
11.4.2 把块存放在页高速缓存中 (231)
11.5 小结 (232)
习题 (233)
第12章 中断、异常和信号处理 (234)
12.1 中断和异常处理的硬件基础 (234)
12.2 中断和异常处理 (236)
12.2.1 硬件完成的处理 (236)
12.2.2 软件处理 (237)
12.2.3 如何处理中断 (237)
12.3 信号处理机制 (239)
12.3.1 信号概述 (239)
12.3.2 信号的发送与安装 (240)
12.3.3 信号集 (241)
12.3.4 信号应用示例 (242)
12.4 小结 (243)
习题 (243)
第13章 UNIX系统进程之间的通信 (244)
13.1 管道通信 (244)
13.1.1 创建无名管道 (244)
13.1.2 管道涉及的数据结构 (246)
13.1.3 创建一个有名管道 (247)
13.2 UNIX系统V的交互进程通信 (249)
13.3 信号量机制 (250)
13.3.1 信号量机制使用的数据结构 (251)
13.3.2 信号量机制的系统调用 (253)
13.4 消息缓冲机制 (254)
13.4.1 消息缓冲使用的数据结构 (255)
13.4.2 消息缓冲的系统调用 (256)
13.4.3 消息缓冲的通信示例 (258)
13.5 共享内存区机制 (259)
13.6 小结 (262)
习题 (263)
第三篇 Windows 2000/XP操作系统研究
第14章 Windows 2000/XP操作系统模型 (264)
14.1 Windows 2000/XP的体系结构 (264)
14.1.1 用户态进程 (264)
14.1.2 子系统动态链接库 (266)
14.1.3 核心态的系统组件 (266)
14.2 Windows 2000/XP操作系统的特点 (268)
14.3 Windows 2000/XP的系统机制 (269)
14.3.1 陷阱处理程序 (269)
14.3.2 中断调度 (270)
14.3.3 异常调度 (273)
14.3.4 系统服务调度 (274)
14.4 对象管理器 (275)
14.4.1 对象结构 (275)
14.4.2 管理对象 (276)
14.5 对象之间的同步 (279)
14.6 小结 (283)
习题 (283)
第15章 Windows 2000/XP进程和线程管理 (284)
15.1 Windows 2000/XP进程和线程 (284)
15.1.1 进程对象 (284)
15.1.2 线程对象 (285)
15.2 线程调度 (287)
15.3 对称多处理机系统上的线程调度 (291)
15.3.1 几个与调度有关的概念 (291)
15.3.2 线程调度程序的数据结构 (291)
15.3.3 多处理机的线程调度算法 (292)
15.3.4 空闲线程的调度 (294)
15.4 线程优先级提升 (294)
15.5 Windows 2000/XP的线程同步 (296)
15.5.1 同步对象 (296)
15.5.2 同步对象的应用示例 (296)
15.6 小结 (300)
习题 (300)
第16章 Windows 2000/XP的存储器管理 (302)
16.1 存储器管理的基本概念 (302)
16.1.1 进程地址空间的布局 (302)
16.1.2 进程私有空间的分配 (303)
16.2 Windows 2000/XP地址转换 (307)
16.2.1 地址转换所涉及的数据结构 (307)
16.2.2 页错误处理 (311)
16.3 页调度策略 (313)
16.4 小结 (315)
习题 (316)
第17章 Windows 2000/XP的文件系统 (317)
17.1 文件系统概述 (317)
17.2 主控文件表 (318)
17.2.1 主控文件表的结构 (318)
17.2.2 主控文件表的记录结构 (319)
17.3 NTFS文件的引用和索引 (321)
17.4 Windows 2000/XP文件系统模型 (322)
17.4.1 文件系统分层模型 (322)
17.4.2 Windows 2000/XP文件系统驱动程序的体系结构 (323)
17.5 NTFS可恢复性支持 (326)
17.5.1 文件系统优化技术 (326)
17.5.2 日志文件服务的实现 (327)
17.5.3 NTFS坏簇恢复的支持 (331)
17.6 小结 (332)
习题 (332)
第18章 Windows 2000/XP的设备管理 (333)
18.1 Windows 2000/XP的I/O系统结构 (333)
18.2 I/O管理系统所涉及的关键数据结构 (334)
18.3 Windows 2000/XP的I/O处理 (337)
18.3.1 对单层驱动程序的I/O请求 (337)
18.3.2 设备I/O的中断处理 (338)
18.3.3 I/O请求的完成处理 (339)
18.3.4 对多层驱动程序的I/O请求 (340)
18.4 多处理I/O中的同步问题 (345)
18.5 快速I/O (345)
18.6 即插即用PnP管理器 (346)
18.7 小结 (347)
习题 (348)
参考文献 (349)
本书主要介绍操作系统的基本概念、结构、基本功能和实现原理,以及当前世界上最流行的两大操作系统派系——UNIX/Linux和Windows的特点和实现技术。 本书共分为三篇18章。第一篇分为6章,主要介绍操作系统的基本概念、三个基本操作系统类型(批处理、分时和实时)和特点、操作系统基本功能(处理机管理、存储器管理、文件管理和设备管理)和操作系统的进一步发展;第二篇分为7章,以Linux操作系统为例,介绍类UNIX系统设计和各部分功能的具体实现技术;第三篇分为5章,介绍以面向对象方法设计的特例Windows 2000/XP操作系统的实现技术。 本书注意吸收国内外较新的操作系统理论和实现技术,以反映现代操作系统发展的新动向。以操作系统的基本原理与实现技术为主要内容,同时注意到实际的应用。
支持曲面细分的操作系统
需要操作系统为Windows 7,Windows 8或者升级了DirectX 11的Windows Vista。Windows XP不在支持之列。