第一图书网

操作系统概念

(美)西尔伯斯查兹 高等教育出版社
出版时间:

2004-1  

出版社:

高等教育出版社  

作者:

(美)西尔伯斯查兹  

页数:

741  

字数:

1000000  

译者:

郑扣根  

Tag标签:

无  

内容概要

本书讨论了操作系统中的基本概念与算法,并对大量实例(如Linux系统)进行了研究。全书内容共分七部分,第一部分概要解释了操作系统是什么、做什么、是怎样设计与构造的,也解释了操作系统概念是如何发展起来的,操作系统的公共特性是什么。第二部分进程管理描述了作为现代操作系统核心的进程以及并发的概念。第三部分存储管理描述了存储管理的经典结构与算法以及不同的存储管理方案。第四部分I/O系统对I/O进行了深入的讨论,包括I/O系统设计、接口、内部结构与功能等。第五部分分布式系统介绍了分布式系统的一般结构以及连接它们的网络,讨论了分布存取策略、分布式文件系统及分布式系统中同步、通信等机制。第六部分保护与安全介绍了操作系统中对文件、内存、CPU及其他资源进行操作的安全与保护机制。第七部分案例研究,分析与讨论了Linux系统、Windows 2000、Windows XP、FreeBSD、Mach及Nachos等实例。 本书作为操作系统的入门教材,适合所有对操作系统这门学科感兴趣的读者参考,尤其适合高等院校计算机专业及相关专业的学生用做操作系统课程的教材或教学参考书。

作者简介

  西尔伯沙茨,耶鲁大学计算机科学系教授。研究方向包括操作系统、数据库系统、网络系统和分布式系统。

书籍目录

第一部分 概述 第一章 导论 1.1 操作系统是什么 1.1.1 用户观点 1.1.2 系统观点 1.1.3 系统目标 1.2 大型机系统 1.2.1 批处理系统 1.2.2 多道程序系统 1.2.3 分时系统 1.3 桌面系统 1.4 多处理器系统 1.5 分布式系统 1.5.1 客户机-服务器系统 1.5.2 对等系统 1.6 集群系统 1.7 实时系统 1.8 手持系统 1.9 功能迁移 1.10 计算环境 1.10.1 传统计算 1.10.2 基于Web的计算 1.10.3 嵌入式计算 1.11 小结 习题一 推荐读物 第二章 计算机系统结构 2.1 计算机系统操作 2.2 I/O结构 2.2.1 I/O中断 2.2.2 DMA结构 2.3 存储结构 2.3.1 内存 2.3.2 磁盘 2.3.3 磁带 2.4 存储层次 2.4.1 高速缓存技术 2.4.2 一致性与连贯性 2.5 硬件保护 2.5.1 双重模式操作 2.5.2 I/O保护 2.5.3 内存保护 2.5.4 CPU保护 2.6 网络结构 2.6.1 局域网 2.6.2 广域网 2.7 小结 习题二 推荐读物 第三章 操作系统结构 3.1 系统组成 3.1.1 进程管理 3.1.2 内存管理 3.1.3 文件管理 3.1.4 输入/输出系统管理 3.1.5 二级存储管理 3.1.6 联网 3.1.7 保护系统 3.1.8 命令解释系统 3.2 操作系统服务 3.3 系统调用 3.3.1 进程控制 3.3.2 文件管理 3.3.3 设备管理 3.3.4 信息维护 3.3.5 通信 3.4 系统程序 3.5 系统结构 3.5.1 简单结构 3.5.2 分层方法 3.5.3 微内核 3.6 虚拟机 3.6.1 实现 3.6.2 优点 3.6.3 Java 3.7 系统设计与实现 3.7.1 设计目标 3.7.2 机制与策略 3.7.3 实现 3.8 系统生成 3.9 小结 习题三 推荐读物第二部分 进程管理 第四章 进程 4.1 进程概念 4.1.1 进程 4.1.2 进程状态 4.1.3 进程控制块 4.1.4 线程 4.2 进程调度 4.2.1 调度队列 4.2.2 调度程序 4.2.3 关联切换 4.3 进程操作 4.3.1 进程创建 4.3.2 进程终止 4.4 进程协作 4.5 进程间通信 4.5.1 消息传递系统 4.5.2 命名 4.5.3 同步 4.5.4 缓冲 4.5.5 例子:Mach 4.5.6 例子:Windows 2000 4.6 客户机-服务器系统通信 4.6.1 套接字 4.6.2 远程过程调用 4.6.3 远程方法调用 4.7 小结 习题四 推荐读物 第五章 线程 5.1 概述 5.1.1 动机 5.1.2 优点 5.1.3 用户线程与内核线程 5.2 多线程模型 5.2.1 多对一模型 5.2.2 一对一模型 5.2.3 多对多模型 5.3 若干多线程问题 5.3.1 系统调用fork和exec 5.3.2 取消 5.3.3 信号处理 5.3.4 线程池 5.3.5 线程特定数据 5.4 Pthread线程 5.5 Solaris 2线程 5.6 Windows 2000线程 5.7 Linux 线程 5.8 Java线程 5.8.1 线程创建 5.8.2 JVM与主机操作系统 5.9 小结 习题五 推荐读物 第六章 CPU调度 6.1 基本概念 6.1.1 CPU-I/O区间周期 6.1.2 CPU调度程序 6.1.3 可抢占式调度 6.1.4 分派程序 6.2 调度准则 6.3 调度算法 6.3.1 先到先服务调度 6.3.2 最短作业优先调度 6.3.3 优先权调度 6.3.4 轮转法调度 6.3.5 多级队列调度 6.3.6 多级反馈队列调度 6.4 多处理器调度 6.5 实时调度 6.6 算法评估 6.6.1 确定性建模 6.6.2 排队模型 6.6.3 模拟 6.6.4 实现 6.7 进程调度模型 6.7.1 例子:Solaris 2 6.7.2 例子:Windows 2000 6.7.3 例子:Linux 6.8 小结 习题六 推荐读物 第七章 进程同步 7.1 背景 7.2 临界区域问题 7.2.1 两进程解法 7.2.2 多进程解法 7.3 同步硬件 7.4 信号量 7.4.1 用法 7.4.2 实现 7.4.3 死锁与饥饿 7.4.4 二进制信号量 7.5 经典同步问题 7.5.1 有限缓冲问题 7.5.2 读者-作者问题 7.5.3 哲学家进餐问题 7.6 临界区域 7.7 管程 7.8 操作系统同步 7.8.1 Solaris 2中的同步 7.8.2 Windows 2000中的同步 7.9 原子事务 7.9.1 系统模型 7.9.2 基于日志的恢复 7.9.3 检查点 7.9.4 并发原子事务 7.10 小结 习题七 推荐读物 第八章 死锁 8.1 系统模型 8.2 死锁特点 8.2.1 必要条件 8.2.2 资源分配图 8.3 死锁处理方法 8.4 死锁预防 8.4.1 互斥 8.4.2 占有并等待 8.4.3 非抢占 8.4.4 循环等待 8.5 死锁避免 8.5.1 安全状态 8.5.2 资源分配图算法 8.5.3 银行家算法 8.6 死锁检测 8.6.1 每种资源类型只有单个实例 8.6.2 每种资源类型的多个实例 8.6.3 应用检测算法 8.7 死锁恢复 8.7.1 进程终止 8.7.2 资源抢占 8.8 小结 习题八 推荐读物第三部分 存储管理 第九章 内存管理 9.1 背景 9.1.1 地址捆绑 9.1.2 逻辑地址空间与物理地址空间 9.1.3 动态加载 9.1.4 动态链接与共享库 9.1.5 覆盖 9.2 交换 9.3 连续内存分配 9.3.1 内存保护 9.3.2 内存分配 9.3.3 碎片 9.4 分页 9.4.1 基本方法 9.4.2 硬件支持 9.4.3 保护 9.4.4 页表结构 9.4.5 共享页表 9.5 分段 9.5.1 基本方法 9.5.2 硬件 9.5.3 保护与共享 9.5.4 碎片 9.6 带有分页的分段 9.7 小结 习题九 推荐读物 第十章 虚拟内存 10.1 背景 10.2 请求页面调度 10.2.1 基本概念 10.2.2 请求页面调度的性能 10.3 进程创建 10.3.1 写时拷贝 10.3.2 内存映射文件 10.4 页面置换 10.4.1 基本方法 10.4.2 FIFO页置换 10.4.3 最优页置换 10.4.4 LRU页置换 10.4.5 LRU近似页置换 10.4.6 基于计数的页置换 10.4.7 页缓冲算法 10.5 帧分配 10.5.1 帧的最少数量 10.5.2 分配算法 10.5.3 全局分配与局部分配 10.6 系统颠簸 10.6.1 系统颠簸的原因 10.6.2 工作集合模型 10.6.3 页错误频率 10.7 操作系统样例 10.7.1 Windows NT 10.7.2 Solaris 2 10.8 其他考虑 10.8.1 预约式页面调度 10.8.2 页大小 10.8.3 TLB范围 10.8.4 反向页表 10.8.5 程序结构 10.8.6 I/O互锁 10.8.7 实时处理 10.9 小结 习题十 推荐读物 第十一章 文件系统接口 11.1 文件概念 11.1.1 文件属性 11.1.2 文件操作 11.1.3 文件类型 11.1.4 文件结构 11.1.5 内部文件结构 11.2 访问方法 11.2.1 顺序访问 11.2.2 直接访问 11.2.3 其他访问方法 11.3 目录结构 11.3.1 单层目录 11.3.2 双层目录 11.3.3 树型结构目录 11.3.4 无环图目录 11.3.5 通用图目录 11.4 文件系统安装 11.5 文件共享 11.5.1 多用户 11.5.2 远程文件系统 11.5.3 一致性语义 11.5.4 UNIX语义 11.5.5 会话语义 11.5.6 永久共享文件语义 11.6 保护 11.6.1 访问类型 11.6.2 访问控制 11.6.3 其他保护方法 11.6.4 例子:UNIX 11.7 小结 习题十一 推荐读物 第十二章 文件系统实现 12.1 文件系统结构 12.2 文件系统实现 12.2.1 概述 12.2.2 分区与安装 12.2.3 虚拟文件系统 12.3 目录实现 12.3.1 线性列表 12.3.2 哈希表 12.4 分配方法 12.4.1 连续分配 12.4.2 链接分配 12.4.3 索引分配 12.4.4 性能 12.5 空闲空间管理 12.5.1 位向量 12.5.2 链表 12.5.3 组 12.5.4 计数 12.6 效率与性能 12.6.1 效率 12.6.2 性能 12.7 恢复 12.7.1 一致性检查 12.7.2 备份与恢复 12.8 基于日志结构的文件系统 12.9 NFS 12.9.1 概述 12.9.2 安装协议 12.9.3 NFS协议 12.9.4 路径名转换 12.9.5 远程操作 12.10 小结 习题十二 推荐读物第四部分 I/O系统 第十三章 I/O系统 13.1 概述 13.2 I/O硬件 13.2.1 轮询(polling) 13.2.2 中断 13.2.3 直接内存访问 13.3 I/O应用接口 13.3.1 块与字符设备 13.3.2 网络设备 13.3.3 时钟与定时器 13.3.4 阻塞与非阻塞I/O 13.4 I/O内核子系统 13.4.1 I/O调度 13.4.2 缓冲 13.4.3 高速缓存 13.4.4 假脱机与设备预留 13.4.5 错误处理 13.4.6 内核数据结构 13.5 把I/O操作转换成硬件操作 13.6 流 13.7 性能 13.8 小结 习题十三 推荐读物 第十四章 大容量存储器结构 14.1 磁盘结构 14.2 磁盘调度 14.2.1 FCFS调度 14.2.2 SSTF调度 14.2.3 SCAN调度 14.2.4 C-SCAN调度 14.2.5 LOOK调度 14.2.6 磁盘调度算法的选择 14.3 磁盘管理 14.3.1 磁盘格式化 14.3.2 引导块 14.3.3 坏块 14.4 交换空间管理 14.4.1 交换空间的使用 14.4.2 交换空间位置 14.4.3 交换空间管理:例子 14.5 RAID结构 14.5.1 通过冗余改善可靠性 14.5.2 通过并行处理改善性能 14.5.3 RAID级别 14.5.4 RAID级别的选择 14.5.5 扩展 14.6 磁盘附属 14.6.1 主机附属存储 14.6.2 网络附属存储 14.6.3 存储区域网络 14.7 稳定存储实现 14.8 第三级存储结构 14.8.1 第三级存储设备 14.8.2 操作系统作业 14.8.3 性能 14.9 小结 习题十四 推荐读物第五部分 分布式系统 第十五章 分布式系统结构 15.1 背景 15.1.1 分布式系统的优点 15.1.2 分布式操作系统的类型 15.1.3 阶段性小结 15.2 拓扑结构 15.3 网络类型 15.3.1 局域网 15.3.2 广域网 15.4 通信 15.4.1 命名和名字解析 15.4.2 路由策略 15.4.3 分组策略 15.4.4 连接策略 15.4.5 竞争 15.5 通信协议 15.6 健壮性 15.6.1 故障检测 15.6.2 重构 15.6.3 故障恢复 15.7 设计事项 15.8 实例:连网 15.9 小结 习题十五 推荐读物 第十六章 分布式文件系统 16.1 背景 16.2 命名和透明性 16.2.1 命名结构 16.2.2 命名方案 16.2.3 实现技术 16.3 远程文件访问 16.3.1 基本的缓存设计 16.3.2 缓存位置 16.3.3 缓存更新策略 16.3.4 一致性 16.3.5 高速缓存和远程服务的对比 16.4 有状态服务和无状态服务 16.5 文件复制 16.6 一个实例:AFS 16.6.1 概述 16.6.2 共享名字空间 16.6.3 文件操作和一致性语义 16.6.4 实现 16.7 小结 习题十六 推荐读物 第十七章 分布式协调 17.1 事件排序 17.1.1 事前关系 17.1.2 实现 17.2 互斥 17.2.1 集中式算法 17.2.2 完全分布式的算法 17.2.3 令牌传递算法 17.3 原子性 17.3.1 两阶段提交协议 17.3.2 IPC中的错误处理 17.4 并发控制 17.4.1 加锁协议 17.4.2 时间戳 17.5 死锁处理 17.5.1 死锁预防 17.5.2 死锁检测 17.6 选举算法 17.6.1 Bully算法 17.6.2 环算法 17.7 达成一致 17.7.1 不可靠通信 17.7.2 故障处理 17.8 小结 习题十七 推荐读物第六部分 保护与安全 第十八章 保护 18.1 保护目标 18.2 保护域 18.2.1 域结构 18.2.2 举例:UNIX 18.2.3 举例:MULTICS 18.3 访问矩阵 18.4 访问矩阵的实现 18.4.1 全局表 18.4.2 对象的访问列表 18.4.3 域的权限列表 18.4.4 锁-钥匙机制 18.4.5 比较 18.5 访问权限的撤回 18.6 基于权限的系统 18.6.1 举例:Hydra 18.6.2 举例:剑桥CAP系统 18.7 基于语言的保护 18.7.1 基于编译程序的强制 18.7.2 Java 2的保护 18.8 小结 习题十八 推荐读物 第十九章 安全 19.1 安全问题 19.2 用户验证 19.2.1 密码 19.2.2 密码脆弱的一面 19.2.3 密码加密 19.2.4 一次性密码 19.2.5 生物测定学 19.3 程序威胁 19.3.1 特洛伊木马 19.3.2 后门 19.3.3 栈和缓冲区溢出 19.4 系统威胁 19.4.1 蠕虫 19.4.2 病毒 19.4.3 拒绝服务 19.5 保证系统与设备的安全 19.6 入侵检测 19.6.1 入侵的组成 19.6.2 审计和记录 19.6.3 Tripwire 19.6.4 系统调用监控 19.7 密码系统 19.7.1 验证 19.7.2 加密 19.7.3 举例:SSL 19.7.4 密码术的使用 19.8 计算机安全分类 19.9 例子:Windows NT 19.10 小结 习题十九 推荐读物第七部分 案例研究 第二十章 Linux系统 20.1 发展历程 20.1.1 Linux内核 20.1.2 Linux系统 20.1.3 Linux版本 20.1.4 Linux许可 20.2 设计原理 20.2.1 Linux系统的组件 20.3 内核模块 20.3.1 模块管理 20.3.2 驱动程序注册 20.3.3 冲突解决方案 20.4 进程管理 20.4.1 Fork/Exec进程模型 20.4.2 进程与线程 20.5 调度 20.5.1 内核同步 20.5.2 进程调度 20.5.3 对称多处理技术 20.6 内存管理 20.6.1 物理内存管理 20.6.2 虚拟内存 20.6.3 用户程序的执行与装载 20.7 文件系统 20.7.1 虚拟文件系统 20.7.2 Linux ext2fs文件系统 20.7.3 Linux Proc文件系统 20.8 输入与输出 20.8.1 块设备 20.8.2 字符设备 20.9 进程间通信 20.9.1 同步与信号 20.9.2 进程间数据传输 20.10 网络结构 20.11 安全 20.11.1 认证 20.11.2 访问控制 20.12 小结 习题二十 推荐读物 第二十一章 Windows 2000 21.1 历史 21.2 设计原则 21.3 系统组成 21.3.1 硬件抽象层 21.3.2 内核 21.3.3 执行体 21.4 环境子系统 21.4.1 MS-DOS 环境 21.4.2 16位Windows环境 21.4.3 Win32环境 21.4.4 POSIX子系统 21.4.5 OS/2子系统 21.4.6 登录和安全子系统 21.5 文件系统 21.5.1 内部布局 21.5.2 恢复 21.5.3 安全 21.5.4 卷管理及容错 21.5.5 压缩技术 21.5.6 再解析点 21.6 网络 21.6.1 协议 21.6.2 分布式处理机制 21.6.3 重定向器与服务器 21.6.4 域 21.6.5 TCP/IP网络中的名称解析 21.7 程序接口 21.7.1 访问内核对象 21.7.2 进程管理 21.7.3 进程间通信 21.7.4 内存管理 21.8 小结 习题二十一 推荐读物 第二十二章 Windows XP 22.1 历史 22.2 设计原则 22.2.1 安全性 22.2.2 可靠性 22.2.3 Windows和POSIX应用的兼容性 22.2.4 高性能 22.2.5 可扩展性 22.2.6 可移植性 22.2.7 国际支持 22.3 系统组成 22.3.1 硬件抽象层 22.3.2 内核 22.3.3 执行体 22.4 环境子系统 22.4.1 MS-DOS环境 22.4.2 16位Windows环境 22.4.3 IA64的32位Windows环境 22.4.4 Win32环境 22.4.5 POSIX子系统 22.4.6 登录与安全子系统 22.5 文件系统 22.5.1 NTFS内部布局 22.5.2 恢复 22.5.3 安全 22.5.4 卷管理和容错 22.5.5 压缩与加密 22.5.6 安装点 22.5.7 改变日志 22.5.8 卷影子拷贝 22.6 网络 22.6.1 网络接口 22.6.2 协议 22.6.3 分布式处理机制 22.6.4 重定向器与服务器 22.6.5 域 22.6.6 活动目录 22.6.7 TCP/IP网络的名称解析 22.7 程序接口 22.7.1 内核对象访问 22.7.2 进程间的对象共享 22.7.3 进程管理 22.7.4 进程间通信 22.7.5 内存管理 22.8 小结 习题二十二 推荐读物 第二十三章 历史纵览 23.1 早期系统 23.2 Atlas 23.3 XDS-940 23.4 THE 23.5 RC4000 23.6 CTSS 23.7 MULTICS 23.8 OS/360 23.9 Mach 23.10 其他系统

章节摘录

  第一部分 概述  第一章 导论  操作系统是管理计算机硬件的程序。它还为应用程序提供基础,并且充当计算机硬件和计算机用户的中介。令人惊奇的是操作系统完成这些任务的方式多种多样。大型机操作系统设计的主要目的是为了充分优化硬件的利用率。个人计算机的操作系统是为了能支持复杂游戏、商业应用或位于两者之间的事物。手持计算机的操作系统是为了给用户提供一个可以与计算机方便地交互并执行程序的环境。因此,有的操作系统设计是为了方便,有的设计是为了高效,而有的设计目标是这两者都有。  为了理解操作系统是什么,必须首先了解其发展过程。本章跟踪操作系统的发展:从最初手工系统,到多道程序设计和分时系统,再到个人计算机和手持计算机。也会讨论其他类型的操作系统,如并行的、实时的、嵌入式的系统。随着讨论的不断深入,会发现操作系统的各个部分是对早期计算机系统问题非常自然的解决方式。  1.1 操作系统是什么  操作系统是几乎所有计算机系统的一个重要组成部分。计算机系统可以粗分为四个部分:硬件、操作系统、应用程序和用户(图1.1)。  硬件,如中央处理单元(central processing unit,CPU)、内存(memory)、输入/输出设备(input/output device,I/O device),提供基本的计算资源。应用程序,如字处理程序、电子制表软件、编译器、网络浏览器,规定了按何种方式使用这些资源来解决用户的计算机问题。操作系统控制和协调各用户的应用程序对硬件的使用。  计算机系统的组成部分包括硬件、软件及数据。在计算机系统的操作过程中,操作系统提供了正确使用这些资源的方法。操作系统类似于政府。与政府一样,操作系统本身并不能实现任何有用的功能。它只不过提供了一个方便其他程序做有用工作的环境。可以从用户和系统两个观点来研究操作系统。  1.1.1 用户观点  ……

媒体关注与评论

  本套教学用书的特点:  权威性——教育部高等教育司推荐、教育部高等学校信息科学与技术引进教材专家组遴选。  系统性——覆盖计算机专业主干课程和非计算机专业计算机基础课程;  先进性——著名计算机专家近两年的最新著作,内容体系先进;  经济性——价格与国内自编教材相当,是国内引进教材价格最低的。


编辑推荐

  《操作系统概念》(第6版翻译版)是作为操作系统的入门教材,适合所有对操作系统这门学科感兴趣的读者参考,尤其适合高等院校计算机专业及相关专业的学生用做操作系统课程的教材或教学参考书。  本套教学用书的特点:  权威性——教育部高等教育司推荐、教育部高等学校信息科学与技术引进教材专家组遴选。  系统性——覆盖计算机专业主干课程和非计算机专业计算机基础课程;  先进性——著名计算机专家近两年的最新著作,内容体系先进;  经济性——价格与国内自编教材相当,是国内引进教材价格最低的。

图书封面

图书标签Tags

广告

下载页面


操作系统概念 PDF格式下载



英文翻译的教材,操作系统的经典教材


此书是操作系统经典之作,书本质量很好,送货也很快~


这本书很好,没有什么问题


什么时候买的。。。


讲的很清晰,不错


恩。。质量确实不错。。这本课本也很好!!


非常好的书讲的很详细很生动


经典的操作系统书籍


比较浅显易懂。。。比黑色的那本操作系统好


由于是我们的教材所以订了,知识挺全,但是缺乏实践指导。毕竟是讲概念的书。


是一本值得购买的一本好书,就是价格略贵些。


不错的入门书


呵呵,看了一下,还真是不错,理论性很强,不得不承认国外的同行前辈还真是强……偶尔翻译得偶尔也有些小失误^^,呵呵,不可深究,下个修订会更好吧!


要有一定基础的人才能看得懂。


本书太好了,很有必要看看


还没看完,不过个人觉得挺不错的。


这么书还可以,质量没有问题,不过如果要想学深还是不够的


上课用的英文版第七版中文的第六版和英文版第七版差别挺多的翻译也有一些错误


讲得很不错,很详细


有几页可以看到反页的字,看那几页的时候比较痛苦


相关图书