操作系统原理、设计与应用PDF电子书下载
- 电子书积分:15 积分如何计算积分?
- 作 者:(美)斯图尔特著
- 出 版 社:北京:清华大学出版社
- 出版年份:2010
- ISBN:9787302223184
- 页数:457 页
第1章 操作系统简介 1
1.1 什么是操作系统 1
1.1.1 资源管理者 2
1.1.2 服务提供者 2
1.1.3 虚拟机 2
1.2 操作系统的功能 3
1.2.1 进程 3
1.2.2 存储器 4
1.2.3 I/O设备 4
1.2.4 文件系统 4
1.2.5 安全性 5
1.2.6 联网 5
1.2.7 用户接口 6
1.3 操作系统的历史 6
1.3.1 裸机 7
1.3.2 批处理操作系统 7
1.3.3 分时操作系统 8
1.3.4 分布式操作系统 9
1.4 组织操作系统的技术 9
1.4.1 单块设计 10
1.4.2 分层设计 10
1.4.3 微内核设计 10
1.4.4 虚拟机设计 11
1.5 引导 12
1.6 系统调用 13
1.6.1 系统调用示例 13
1.6.2 系统调用机制 14
1.7 本章小结 14
1.8 练习 15
第2章 操作系统示例 16
2.1 兼容分时系统 16
2.1.1 组织结构 16
2.1.2 引导 17
2.2 多路信息和计算服务 17
2.2.1 组织结构 17
2.2.2 系统调用 19
2.3 RT-11 19
2.3.1 组织结构 19
2.4 第6版UNIX 20
2.4.1 组织结构 20
2.4.2 系统调用 21
2.5 虚拟内存系统 21
2.5.1 组织结构 21
2.5.2 引导 22
2.5.3 系统调用 22
2.6 4.3BSD 22
2.6.1 组织结构 23
2.6.2 系统调用 23
2.7 Windows NT 23
2.7.1 组织结构 24
2.8 TinyOS 24
2.8.1 组织结构 25
2.9 Xen 25
2.9.1 组织结构 25
2.10 本章小结 26
2.11 练习 26
第3章 Inferno的结构与初始化 27
3.1 Inferno的起源 27
3.2 基本概念 28
3.3 组织结构 30
3.3.1 基本体系结构 30
3.3.2 源代码组织结构 31
3.4 初始化 32
3.4.1 启动Inferno 33
3.4.2 宿主操作系统的特定初始化 34
3.4.3 与宿主操作系统无关的初始化 37
3.4.4 启动分时 39
3.5 系统调用 40
3.6 本章小结 41
3.7 练习 41
第4章 Linux的结构与初始化 42
4.1 Linux的起源 42
4.2 组织结构 43
4.2.1 基本体系结构 43
4.2.2 模块 44
4.2.3 源代码组织结构 45
4.3 初始化 46
4.3.1 引导 47
4.3.2 特定处理器初始化 49
4.3.3 与处理器无关的初始化 52
4.3.4 启动分时 56
4.3.5 初始化管理级的初始化 56
4.4 系统调用 58
4.4.1 处理应用方的系统调用 59
4.4.2 处理内核方的系统调用 60
4.5 本章小结 60
4.6 练习 61
第5章 进程管理原理 62
5.1 进程的概念 62
5.2 实现进程 62
5.2.1 进程操作 63
5.2.2 进程状态 64
5.2.3 进程表 64
5.3 线程 65
5.4 调度 66
5.4.1 先来先服务 66
5.4.2 最短作业优先 66
5.4.3 轮转法 68
5.4.4 优先级调度 69
5.4.5 调整调度参数 71
5.4.6 两级调度 71
5.4.7 实时调度 72
5.4.8 嵌入式系统的调度 74
5.5 上下文切换 74
5.6 进程的创建与终止 76
5.7 临界区 77
5.7.1 中断控制 78
5.7.2 原子操作指令 78
5.7.3 Peterson算法 79
5.7.4 信号量 80
5.7.5 管程 81
5.7.6 消息传递 82
5.7.7 示例 82
5.8 死锁 85
5.8.1 充分必要条件 86
5.8.2 处理死锁 86
5.9 本章小结 91
5.10 练习 91
第6章 进程管理示例 93
6.1 CTSS 93
6.1.1 进程状态 93
6.1.2 系统调用 94
6.1.3 调度 94
6.2 Multics 95
6.2.1 系统调用 95
6.2.2 进程状态 95
6.2.3 调度 95
6.3 RT-11 96
6.3.1 系统调用 96
6.3.2 进程状态 97
6.3.3 进程表 97
6.3.4 调度 97
6.4 第6版UNIX 97
6.4.1 系统调用 97
6.4.2 进程状态 98
6.4.3 进程表 98
6.4.4 调度 99
6.5 4.3BSD 99
6.5.1 系统调用 99
6.5.2 进程状态与进程表 100
6.5.3 调度 100
6.6 VMS 101
6.6.1 系统调用 101
6.6.2 线程状态 101
6.6.3 调度 102
6.7 Windows NT 102
6.7.1 系统调用 103
6.7.2 线程状态 103
6.7.3 进程表与线程表 103
6.7.4 调度 104
6.8 TinyOS 105
6.9 Xen 105
6.10 本章小结 106
6.11 练习 106
第7章 Inferno中的进程管理 108
7.1 Inferno中的进程 108
7.2 进程的状态 109
7.2.1 内核进程 109
7.2.2 用户进程 110
7.3 进程的数据结构 111
7.3.1 内核进程表 111
7.3.2 内核进程表项 112
7.3.3 用户进程表 113
7.3.4 用户进程表项 113
7.4 进程的创建 115
7.4.1 解释进程创建指令 116
7.4.2 实现进程创建 116
7.5 进程的终止 119
7.6 进程调度 121
7.6.1 插入就绪表 121
7.6.2 从就绪表中删除 122
7.6.3 分时 122
7.6.4 运行时间片 124
7.7 本章小结 126
7.8 练习 126
第8章 Linux中的进程管理 128
8.1 进程与线程 128
8.1.1 Linux中的内核线程 128
8.1.2 进程间的关系 128
8.2 系统调用 129
8.3 进程状态 130
8.4 进程表 131
8.5 进程的创建 134
8.5.1 处理系统调用 134
8.5.2 创建进程 137
8.5.3 特定体系结构的步骤 139
8.6 进程调度 141
8.6.1 优先级 141
8.6.2 队列结构 142
8.6.3 时钟计时单元 143
8.6.4 调度程序 146
8.7 本章小结 151
8.8 练习 152
第9章 存储管理原理 153
9.1 存储层次结构 153
9.2 地址变换 154
9.2.1 基址/上下界寄存器 155
9.2.2 分段存储 155
9.2.3 分页存储 156
9.3 存储相关的服务 158
9.4 存储布局 159
9.5 内存分配技术 160
9.5.1 空闲空间管理 161
9.5.2 碎片 162
9.5.3 分区 162
9.5.4 选择策略 163
9.5.5 伙伴系统管理 165
9.6 过度分配技术 166
9.6.1 交换 167
9.6.2 段交换 168
9.6.3 分页 168
9.6.4 段页式 175
9.6.5 内存映射文件 175
9.6.6 写时复制 176
9.6.7 性能问题 176
9.7 嵌入式系统的存储管理 178
9.8 本章小结 178
9.9 练习 179
第10章 存储管理示例 181
10.1 CTSS 181
10.2 Multics 181
10.2.1 存储相关的系统调用 182
10.2.2 存储布局 182
10.2.3 段式管理与页式管理 182
10.3 RT-11 183
10.3.1 存储相关的系统调用 183
10.3.2 存储布局 183
10.3.3 USR与KMON交换 184
10.4 第6版UNIX 184
10.4.1 存储相关的系统调用 185
10.4.2 存储布局 185
10.4.3 空闲空间管理 186
10.4.4 分配 186
10.4.5 交换 187
10.5 4.3BSD 187
10.5.1 存储相关的系统调用 187
10.5.2 存储布局 187
10.5.3 空闲空间管理 188
10.5.4 交换与页替换 189
10.6 VMS 190
10.6.1 页表 190
10.6.2 存储布局 190
10.6.3 空闲空间管理 190
10.6.4 交换与页替换 191
10.6.5 存储相关的系统调用 192
10.7 Windows NT 192
10.7.1 系统调用 192
10.7.2 存储布局 192
10.7.3 页式管理 193
10.8 TinyOS 194
10.9 Xen 194
10.9.1 超级调用 194
10.9.2 存储布局 194
10.9.3 页式管理 195
10.10 本章小结 195
10.11 练习 195
第11章 Inferno中的存储管理 197
11.1 概述 197
11.2 存储布局 198
11.3 存储管理的数据结构 199
11.3.1 存储池 199
11.3.2 存储块 201
11.4 存储管理的实现 203
11.4.1 分配内存 203
11.4.2 从树中删除空闲块 208
11.4.3 释放内存 210
11.4.4 把空闲块插入树中 212
11.5 垃圾收集 213
11.5.1 堆结构 213
11.5.2 引用计数 213
11.5.3 并发垃圾收集器 214
11.5.4 实现并发垃圾收集 215
11.6 本章小结 218
11.7 练习 219
第12章 Linux中的存储管理 220
12.1 存储布局 220
12.2 系统调用 221
12.3 分配机制 222
12.3.1 管理区页的分配 222
12.3.2 slab分配器 223
12.3.3 内核的内存分配 223
12.4 页管理 223
12.4.1 页表 223
12.4.2 页替换 224
12.5 存储管理的数据结构 225
12.5.1 进程分配的表示 225
12.5.2 虚拟内存区表示 227
12.6 存储管理的实现 228
12.6.1 处理分配系统调用 228
12.6.2 增加区域 230
12.6.3 处理缺页 233
12.6.4 解决缺页错误 235
12.6.5 处理新页面 237
12.7 本章小结 239
12.8 练习 239
第13章 I/O设备管理原理 241
13.1 I/O子系统的要素 241
13.2 I/O设备的硬件特性 242
13.2.1 磁盘驱动器 242
13.2.2 串口通信 245
13.2.3 控制器接口技术 246
13.3 I/O设备类型 248
13.3.1 通信设备与存储设备 249
13.3.2 流设备与块设备 250
13.4 I/O子系统设计的目标 250
13.5 I/O设备服务 251
13.6 设备驱动器的结构 251
13.7 设备管理技术 253
13.7.1 缓冲区 253
13.7.2 交叉存取 253
13.7.3 电梯算法 254
13.7.4 RAID 256
13.7.5 水位标志 258
13.7.6 人工输入处理 259
13.7.7 伪设备 260
13.8 本章小结 260
13.9 练习 260
第14章 I/O设备管理示例 262
14.1 CTSS 262
14.2 Multics 263
14.3 RT-11 264
14.4 第6版UNIX 265
14.5 4.3BSD 266
14.6 VMS 267
14.7 Windows NT 268
14.8 TinyOS 269
14.9 Xen 269
14.10 本章小结 269
14.11 练习 270
第15章 Inferno中的I/O设备 271
15.1 设备驱动程序结构 271
15.2 并行端口支持 272
15.2.1 为写请求服务 273
15.2.2 写入单字节 274
15.3 键盘支持 275
15.3.1 初始化键盘控制器 277
15.3.2 处理键盘中断 278
15.4 IDE磁盘支持 282
15.4.1 处理I/O请求 283
15.4.2 初始化IDE控制器操作 285
15.4.3 处理IDE控制器中断 289
15.5 本章小结 291
15.6 练习 291
第16章 Linux中的I/O设备 293
16.1 块请求支持 293
16.2 两半中断处理程序结构 294
16.3 并行端口驱动程序 295
16.3.1 处理系统调用 295
16.3.2 选择适合的低层写入 298
16.3.3 从缓冲区写入字节 300
16.3.4 配置控制器 303
16.4 软盘驱动程序 304
16.4.1 处理请求 305
16.4.2 调度软盘操作 306
16.4.3 执行软盘操作 306
16.4.4 启动命令 309
16.4.5 准备数据传输 310
16.4.6 控制器编程 311
16.4.7 处理软盘中断 313
16.4.8 完成软盘操作 314
16.5 本章小结 315
16.6 练习 315
第17章 文件系统原理 317
17.1 文件系统服务 317
17.1.1 共享与独占访问 318
17.1.2 访问模式 318
17.1.3 文件结构 319
17.1.4 元数据 320
17.1.5 内存映射文件 320
17.2 总体文件系统设计 321
17.2.1 文件系统形式 321
17.2.2 主要数据结构 322
17.3 名称空间 323
17.3.1 驱动器指示符 324
17.3.2 账户说明符 324
17.3.3 分层命名 325
17.3.4 文件扩展名 326
17.3.5 文件版本 327
17.3.6 特殊文件与目录 327
17.3.7 相对路径名与绝对路径名 328
17.4 管理存储空间 328
17.4.1 文件系统元数据 328
17.4.2 数据单位 329
17.4.3 空闲空间管理 329
17.4.4 普通文件 330
17.4.5 稀疏文件 332
17.4.6 分支 332
17.4.7 目录 333
17.4.8 别名 333
17.5 一致性检测 334
17.6 日志与日志结构的文件系统 335
17.7 块高速缓存 336
17.8 本章小结 337
17.9 练习 337
第18章 文件系统示例 339
18.1 CTSS 339
18.1.1 第一个CTSS文件系统 339
18.1.2 第二个CTSS文件系统 340
18.2 Multics 340
18.3 RT-11 342
18.4 第6版UNIX 342
18.5 4.3BSD 344
18.6 VMS 345
18.7 Windows NT 346
18.8 本章小结 347
18.9 练习 347
第19章 Inferno中的文件系统 349
19.1 文件服务器的作用 349
19.1.1 Styx协议 349
19.1.2 内置内核文件服务器 352
19.1.3 用户空间文件服务器 352
19.2 根设备服务器 352
19.2.1 提供命名服务 353
19.2.2 遍历根服务器树 355
19.2.3 从根服务器读取 355
19.3 通用Styx消息处理程序 356
19.3.1 创建目录项 356
19.3.2 生成命名 356
19.3.3 遍历目录树 357
19.4 本地Inferno文件系统 360
19.4.1 初始化 361
19.4.2 主服务进程 365
19.4.3 处理Styx请求 365
19.4.4 遍历目录树 366
19.4.5 搜索目录 369
19.4.6 读文件 372
19.4.7 磁盘上的数据结构 374
19.4.8 读取目录项 378
19.4.9 读取文件块 379
19.4.10 查找文件块 379
19.4.11 处理间接块 381
19.4.12 从缓冲区高速缓存中获取 382
19.5 本章小结 384
19.6 练习 384
第20章 Linux中的文件系统 386
20.1 虚拟文件系统 386
20.1.1 超级块 387
20.1.2 i-节点 387
20.1.3 目录项 387
20.1.4 文件 387
20.2 EXT3文件系统 388
20.3 EXT3的磁盘结构 388
20.3.1 EXT3超级块 390
20.3.2 EXT3-I节点 391
20.3.3 EXT3目录项 393
20.4 EXT3命名查找 393
20.4.1 遍历路径 394
20.4.2 通用目录查找(第一部分) 399
20.4.3 通用目录查找(第二部分) 400
20.4.4 EXT3目录查找 401
20.4.5 EXT3目录搜索 402
20.4.6 EXT3目录块搜索 405
20.5 写入文件 406
20.5.1 Linux的写入系统调用 406
20.5.2 写入通用文件 407
20.5.3 写入EXT3文件 408
20.6 在EXT3中定位文件块 409
20.6.1 标识间接块 409
20.6.2 读取间接块 411
20.7 本章小结 412
20.8 练习 412
第21章 操作系统安全原理 413
21.1 用户认证 413
21.1.1 用户名与密码 413
21.1.2 散列函数加密 414
21.1.3 回调 414
21.1.4 挑战/响应认证 415
21.1.5 一次性密码 415
21.1.6 生物认证 416
21.2 基本资源保护 416
21.2.1 特权用户 416
21.2.2 访问CPU特性 417
21.2.3 内存访问 418
21.2.4 简单的保护代码 418
21.2.5 访问控制列表 419
21.2.6 权能 420
21.3 威胁类型 421
21.3.1 中间人攻击 421
21.3.2 特洛伊木马 421
21.3.3 陷阱门 421
21.3.4 逻辑/时间炸弹 422
21.3.5 病毒 422
21.3.6 蠕虫 423
21.3.7 隐蔽通道 423
21.3.8 拒绝服务 424
21.4 橙皮书分级 424
21.4.1 D组 424
21.4.2 C组 425
21.4.3 B组 425
21.4.4 A组 426
21.5 加密 426
21.5.1 对称加密 427
21.5.2 公钥加密学 428
21.6 Multics的保护环 430
21.7 Inferno的安全 431
21.8 Linux的安全 431
21.9 本章小结 433
21.10 练习 433
第22章 分布式系统原理 435
22.1 基本概念 435
22.1.1 资源共享 435
22.1.2 同步操作 438
22.1.3 一致性 438
22.1.4 分布式互斥 438
22.1.5 容错 439
22.1.6 自稳定 440
22.2 处理器共享 440
22.2.1 对称多处理 440
22.2.2 集群 441
22.2.3 网格 442
22.3 分布式时钟 442
22.3.1 逻辑时钟 443
22.3.2 物理时钟 443
22.4 选举算法 444
22.4.1 欺负算法 444
22.4.2 环算法 446
22.5 本章小结 447
22.6 练习 447
附录A 编译宿主Inferno 449
A.1 建立配置 449
A.2 编译器与开发工具 450
A.3 PATH环境变量 450
A.4 其他环境变量 451
A.5 编译系统 452
A.6 运行新版本 452
A.7 小结 452
附录B 编译本地Inferno 454
B.1 建立配置 454
B.2 创建工具链 454
B.3 创建引导程序代码 455
B.4 建立内核配置 455
B.5 生成加载程序配置 455
B.6 创建内核镜像 455
B.7 生成软盘镜像 456
B.8 运行新内核 456
B.9 小结 456
- 《钒产业技术及应用》高峰,彭清静,华骏主编 2019
- 《管理信息系统习题集》郭晓军 2016
- 《现代水泥技术发展与应用论文集》天津水泥工业设计研究院有限公司编 2019
- 《英汉翻译理论的多维阐释及应用剖析》常瑞娟著 2019
- 《药剂学实验操作技术》刘芳,高森主编 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《信息系统安全技术管理策略 信息安全经济学视角》赵柳榕著 2020
- 《数据库技术与应用 Access 2010 微课版 第2版》刘卫国主编 2020
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《虚拟流域环境理论技术研究与应用》冶运涛蒋云钟梁犁丽曹引等编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019