目录 1
译者序 1
第一章 系统概貌 1
1.1 历史 1
序言 3
1.2 系统结构 5
1.3 用户看法 7
1.4 操作系统服务 17
1.5 关于硬件的假设 18
1.6 本章小结 22
第二章 核心导言 23
2.1 UNIX操作系统的体系结构 23
2.2 系统概念介绍 26
2.4 系统管理 42
2.3 核心数据结构 42
2.5 本章小结 43
2.6 习题 44
第三章 数据缓冲区高速缓冲 46
3.1 缓冲首部 47
3.2 缓冲池的结构 49
3.3 缓冲区的检索 51
3.4 读磁盘块与写磁盘块 64
3.5 高速缓冲的优点与缺点 67
3.6 本章小结 69
3.7 习题 70
第四章 文件的内部表示 73
4.1 索引节点 74
4.2 正规文件的结构 82
4.3 目录 88
4.4 路径名到索引节点的转换 90
4.5 超级块 93
4.6 为新文件指派索引节点 94
4.7 磁盘块的分配 102
4.8 其它文件类型 107
4.9 本章小结 107
4.10 习题 108
第五章 文件系统的系统调用 111
5.1 系统调用open 112
5.2 系统调用read 117
5.3 系统调用write 124
5.4 文件和记录的上锁 125
5.5 文件的输入/输出位置的调整——lseek 125
5.6 系统调用close 127
5.7 文件的建立 128
5.8 特殊文件的建立 131
5.9 改变目录及根 133
5.10 改变所有者及许可权方式 135
5.11 系统调用stat和fstat 135
5.12 管道 136
5.13 系统调用dup 144
5.14 文件系统的安装与拆卸 146
5.15 系统调用link 156
5.16 系统调用unlink 161
5.17 文件系统的抽象 169
5.18 文件系统维护 170
5.19 本章小结 172
5.20 习题 172
第六章 进程结构 181
6.1 进程的状态和状态的转换 181
6.2 系统存储方案 187
6.3 进程的上下文 195
6.4 进程上下文的保存 199
6.5 进程地址空间的管理 211
6.6 睡眠 224
6.7 本章小结 231
6.8 习题 231
第七章 进程控制 235
7.1 进程的创建 236
7.2 软中断信号 246
7.3 进程的终止 260
7.4 等待进程的终止 263
7.5 对其他程序的引用 267
7.6 进程的用户标识号 279
7.7 改变进程的大小 282
7.8 shell程序 285
7.9 系统自举和进程init 289
7.10 本章小结 293
7.11 习题 294
第八章 进程调度和时间 305
8.1 进程调度 305
8.2 有关时间的系统调用 317
8.3 时钟 321
8.4 本章小结 330
8.5 习题 330
第九章 存储管理策略 333
9.1 对换 334
9.2 请求调页 349
9.3 对换和请求调页的混和系统 374
9.4 本章小结 374
9.5 习题 375
第十章 输入/输出子系统 379
10.1 驱动程序接口 380
10.2 磁盘驱动程序 394
10.3 终端驱动程序 400
10.4 流 418
10.5 本章小结 427
10.6 习题 428
第十一章 进程间通信 432
11.1 进程跟踪 432
11.2 系统V IPC 437
11.3 网络通信 464
11.4 套接字 466
11.5 本章小结 473
11.6 习题 473
第十二章 多处理机系统 476
12.1 多处理机系统的问题 477
12.2 主从处理机解法 478
12.3 信号量解法 481
12.4 Tunis系统 498
12.5 性能局限性 499
12.6 习题 500
第十三章 分布式UNIX系统 502
13.1 卫星处理机系统 504
13.2 纽卡斯尔连接 515
13.3 透明型分布式文件系统 519
13.4 无存根进程的透明分布式模型 523
13.5 本章小结 525
13.6 习题 526
附录——系统调用 530
参考文献 554
索引表 557