| 作者 |
| 丛书名 |
| 出版社 |
| 原 Prentice Hall/Pearson |
| ISBN |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 本书共分两部分,第一部分详尽讲述了传统操作系统知识,包括进程、存储器管理、文件系统、I/O设备管理、死锁等内容;第二部分主要介绍了分布式操作系统,包括层次协议、远程过程调用、互斥操作、分布式文件系统等专题。 为加深概念的理解,本书还详细介绍了四个操作系统,包括两个传统的系统UNIX和MS-DOS;两个分布式系统Amoeba和Mach。此外还简要介绍了NFS、AFS、ISIS等其他几个系统。 本书体系完整、内容丰富、叙述清晰,是大学计算机及相关专业学生不可多得的教科书,对于从事计算机管理、开发、系统分析等职业的专业人员也是优秀的参考书。 |
| 目录 |
| 目 录 译者序 前言 第一部分 传统操作系统 第1章 引言 1 1.1 什么是操作系统 2 1.1.1 作为扩展机器的操作系统 2 1.1.2 作为资源管理器的操作系统 3 1.2 操作系统历史 3 1.2.1 第一代计算机(1945~1955): 真空管和插件板 3 1.2.2 第二代计算机(1955~1965): 晶体管和批处理系统 4 1.2.3 第三代计算机(1965~1980): 集成电路芯片和多道程序 5 1.2.4 第四代计算机(1980~1990): 个人计算机 7 1.3 操作系统基本概念 8 1.3.1 进程 8 1.3.2 文件 9 1.3.3 系统调用 11 1.3.4 外壳 12 1.4 操作系统结构 12 1.4.1 整体式系统 12 1.4.2 层次式系统 14 1.4.3 虚拟机 14 1.4.4 客户机/服务器系统 15 1.5 本书其他部分的概要 16 1.6 小结 17 习题 18 第2章 进程 19 2.1 进程介绍 19 2.1.1 进程模型 19 2.1.2 进程的实现 22 2.2 进程间通信 23 2.2.1 竞争条件 23 2.2.2 临界区 24 2.2.3 忙等待的互斥 24 2.2.4 睡眠与唤醒 27 2.2.5 信号量 29 2.2.6 事件计数器 31 2.2.7 管程 32 2.2.8 消息传递 34 2.2.9 原语等价 36 2.3 经典的IPC问题 39 2.3.1 哲学家进餐问题 39 2.3.2 读者-写者问题 41 2.3.3 睡眠的理发师问题 42 2.4 进程调度 44 2.4.1 时间片轮转调度 45 2.4.2 优先级调度 45 2.4.3 多级队列 46 2.4.4 最短作业优先 47 2.4.5 保证调度算法 48 2.4.6 策略与机制 48 2.4.7 两级调度法 48 2.5 小结 49 习题 49 第3章 存储管理 52 3.1 无交换或分页的存储管理 52 3.1.1 无交换或分页的单道程序 52 3.1.2 多道程序设计和内存利用率 53 3.1.3 固定分区的多道程序 55 3.2 交换 56 3.2.1 可变分区的多道程序设计 57 3.2.2 使用位图的内存管理 58 3.2.3 使用链表的内存管理 59 3.2.4 伙伴式的内存管理 60 3.2.5 交换空间的分配 61 3.2.6 交换系统分析 62 3.3 虚拟存储器 62 3.3.1 分页 63 3.3.2 页表 65 3.3.3 分页硬件示例 67 3.3.4 相联存储器 72 3.4 页面置换算法 75 3.4.1 最优页面置换算法 75 3.4.2 最近未使用页面置换算法 76 3.4.3 先进先出页面置换算法 76 3.4.4 第二次机会页面置换算法 77 3.4.5 时钟页面置换算法 77 3.4.6 最久未使用页面置换算法 78 3.4.7 用软件模拟LRU 79 3.5 分页算法模型 80 3.5.1 Belady异常现象 80 3.5.2 栈式算法 81 3.5.3 距离字符串 82 3.5.4 缺页率预测 83 3.6 分页系统中的设计问题 83 3.6.1 工作集模型 83 3.6.2 局部与全局分配策略 84 3.6.3 页面尺寸 86 3.6.4 实现时涉及的问题 86 3.7 分段 89 3.7.1 纯分段系统的实现 91 3.7.2 分段和分页结合:MULTICS 92 3.7.3 分段和分页结合:Intel的386 95 3.8 小结 98 习题 98 第4章 文件系统 101 4.1 文件 101 4.1.1 文件命名 101 4.1.2 文件结构 102 4.1.3 文件类型 103 4.1.4 文件存取 105 4.1.5 文件属性 105 4.1.6 文件操作 106 4.1.7 存储映像文件 109 4.2 110 4.2.1 层次系统 110 4.2.2 路径名 111 4.2.3 操作 113 4.3 文件系统的实现 113 4.3.1 实现文件 113 4.3.2 实现 115 4.3.3 共享 117 4.3.4 磁盘空间管理 118 4.3.5 文件系统的可靠性 121 4.3.6 文件系统性能 124 4.4 安全性 126 4.4.1 安全环境 126 4.4.2 著名的安全缺陷 127 4.4.3 Internet蠕虫 129 4.4.4 一般的安全性攻击 130 4.4.5 安全性的设计原则 131 4.4.6 用户验证 132 4.5 保护机制 134 4.5.1 保护域 134 4.5.2 存取控制表 136 4.5.3 权限 137 4.5.4 保护模型 138 4.5.5 隐藏通道 139 4.6 小结 140 习题 140 第5章 I/O设备管理 143 5.1 I/O硬件组成原理 143 5.1.1 I/O设备 143 5.1.2 设备控制器 144 5.1.3 直接存储器存取 145 5.2 I/O软件原理 146 5.2.1 I/O软件的目标 146 5.2.2 中断处理程序 147 5.2.3 设备驱动程序 148 5.2.4 与设备无关的I/O软件 148 5.2.5 用户空间的I/O软件 149 5.3 磁盘 151 5.3.1 磁盘硬件 151 5.3.2 磁盘调度算法 151 5.3.3 磁盘出错处理 153 5.3.4 “每次一道”高速缓冲 154 5.3.5 RAM 盘 154 5.4 时钟 155 5.4.1 时钟硬件 155 5.4.2 时钟软件 156 5.5 终端 158 5.5.1 终端硬件 158 5.5.2 存储映像终端 159 5.5.3 输入软件 160 5.5.4 输出软件 163 5.6 小结 164 习题 165 第6章 死锁 167 6.1 资源 167 6.2 死锁定义 168 6.2.1 死锁的条件 168 6.2.2 死锁模型 169 6.3 鸵鸟算法 170 6.4 死锁检测和恢复 171 6.4.1 单种资源类型下的死锁检测 171 6.4.2 多种资源类型下的死锁检测 173 6.4.3 从死锁恢复 174 6.5 死锁避免 175 6.5.1 资源轨迹图 176 6.5.2 安全和不安全状态 177 6.5.3 单种资源的银行家算法 178 6.5.4 多种资源的银行家算法 178 6.6 死锁预防 179 6.6.1 破坏互斥条件 180 6.6.2 破坏占有和等待条件 180 6.6.3 破坏不可剥夺条件 180 6.6.4 破坏循环等待条件 180 6.7 其他问题 181 6.7.1 两阶段加锁 181 6.7.2 非资源死锁 182 6.7.3 饥饿 182 6.8 小结 182 习题 183 第7章 实例研究1:UNIX 185 7.1 UNIX的历史 185 7.1.1 UNICS 185 7.1.2 PDP-11 UNIX 186 7.1.3 可移植的UNIX 186 7.1.4 伯克利UNIX 187 7.1.5 UNIX的标准化 187 7.2 UNIX概述 189 7.2.1 设计目标 189 7.2.2 接口 190 7.2.3 登录 190 7.2.4 shell 191 7.2.5 文件和 193 7.2.6 应用程序 194 7.3 UNIX的一些基础概念 195 7.3.1 进程 196 7.3.2 内存管理模式 199 7.3.3 文件系统 200 7.3.4 I/O设备 203 7.4 UNIX 的系统调用 205 7.4.1 进程管理系统调用 205 7.4.2 内存管理系统调用 208 7.4.3 有关文件和的系统调用 208 7.4.4 I/O系统调用 209 7.5 UNIX的实现 209 7.5.1 进程的实现 210 7.5.2 内存管理的实现 212 7.5.3 文件系统的实现 215 7.5.4 I/O实现 217 7.6 小结 218 习题 219 第8章 实例研究2:MS-DOS 221 8.1 MS-DOS的历史 221 8.1.1 IBM PC 221 8.1.2 MS-DOS 1.0 222 8.1.3 MS-DOS 2.0 223 8.1.4 MS-DOS 3.0 223 8.1.5 MS-DOS 4.0 224 8.1.6 MS-DOS 5.0 224 8.2 MS-DOS 概述 225 8.2.1 使用 226 8.2.2 shell 228 8.2.3 配置 229 8.3 MS-DOS 的基本概念 230 8.3.1 进程 230 8.3.2 内存模式 233 8.3.3 文件系统 240 8.3.4 I/O设备 241 8.4 MS-DOS的系统调用 242 8.4.1 进程管理系统调用 243 8.4.2 内存管理系统调用 243 8.4.3 文件与系统调用 244 8.4.4 I/O系统调用 244 8.5 MS-DOS的实现 244 8.5.1 进程的实现 245 8.5.2 内存管理的实现 246 8.5.3 文件系统的实现 247 8.5.4 I/O的实现 250 8.6 小结 252 习题 253 第二部分 分布式操作系统 第9章 分布式操作系统概述 255 9.1 目标 255 9.1.1 分布式系统相对于集中式系统 的优点 255 9.1.2 分布式系统相对于独立PC机 的优点 256 9.1.3 分布式系统的缺点 257 9.2 硬件上的概念 258 9.2.1 总线型多处理机 259 9.2.2 交换型多处理机 260 9.2.3 总线型多计算机 261 9.2.4 交换型多计算机 262 9.3 软件上的概念 262 9.3.1 网络操作系统和网络文件系统 263 9.3.2 真正的分布式系统 269 9.3.3 多处理机分时系统 269 9.4 设计上的考虑 271 9.4.1 透明性 271 9.4.2 灵活性 273 9.4.3 可靠性 274 9.4.4 性能 275 9.4.5 可扩展性 276 9.5 小结 277 习题 277 第10章 分布式系统中的通信问题 279 10.1 分层协议 279 10.1.1 物理层 281 10.1.2 数据链路层 282 10.1.3 网络层 282 10.1.4 传输层 283 10.1.5 会话层 283 10.1.6 表示层 283 10.1.7 应用层 284 10.2 客户-服务器模型 284 10.2.1 客户和服务器 284 10.2.2 一个客户和服务器的实例 285 10.2.3 寻址 288 10.2.4 阻塞与非阻塞原语 289 10.2.5 缓冲和非缓冲原语 291 10.2.6 可靠和不可靠原语 293 10.2.7 实现客户-服务器模型 294 10.3 远程过程调用 295 10.3.1 基本的RPC操作 296 10.3.2 参数传递 298 10.3.3 动态联编 301 10.3.4 出现差错时的RPC语义 303 10.3.5 与实现相关的论题 306 10.3.6 问题域 313 10.4 组通信 315 10.4.1 组通信入门 315 10.4.2 与设计有关的问题 316 10.4.3 ISIS中的组通信 322 10.5 小结 324 习题 325 第11章 分布式系统中的同步 327 11.1 时钟同步 327 11.1.1 逻辑时钟 328 11.1.2 物理时钟 331 11.1.3 时钟同步算法 333 11.2 互斥 336 11.2.1 集中式算法 336 11.2.2 分布式算法 337 11.2.3 令牌环算法 339 11.2.4 三种算法的比较 340 11.3 选举算法 341 11.3.1 Bully算法 341 11.3.2 环算法 342 11.4 原子事务 343 11.4.1 原子事务简介 343 11.4.2 事务模型 344 11.4.3 实现 347 11.4.4 并发控制 350 11.5 分布式系统中的死锁 352 11.5.1 分布式死锁的检测 353 11.5.2 分布式死锁的预防 356 11.6 小结 357 习题 357 第12章 分布式系统中的进程及 处理器 359 12.1 线程 359 12.1.1 线程的引入 359 12.1.2 线程使用 360 12.1.3 线程包的设计问题 362 12.1.4 线程包的实现 365 12.1.5 线程和RPC 367 12.1.6 一个线程包的例子 368 12.2 系统模型 371 12.2.1 工作站模型 371 12.2.2 使用空闲工作站 373 12.2.3 处理器池模型 376 12.2.4 混合模型 378 12.3 处理器分配 378 12.3.1 分配模型 378 12.3.2 处理器分配算法的设计原则 380 12.3.3 处理器分配算法的实现问题 381 12.3.4 处理器分配算法实例 382 12.4 分布式系统中的调度 386 12.5 小结 387 习题 387 第13章 分布式文件系统 389 13.1 分布式文件系统设计 389 13.1.1 文件服务的接口 389 13.1.2 服务器接口 391 13.1.3 文件共享的语义 394 13.2 分布式文件系统的实现 396 13.2.1 文件的使用 396 13.2.2 系统结构 397 13.2.3 缓存区处理 400 13.2.4 复制性 40396 133.2.4菩?403 38979 拍?2?.2技⒍979 ? |