失效链接处理 |
操作系统概念精要(原书第2版) PDF 下载
本站整理下载:
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/25328549.html
相关截图:
资料简介: 本书是经典教材《操作系统概念》的精简版,强调基础概念,更适合本科阶段的教学。全书共六部分,不仅详细讲解了进程管理、内存管理、存储管理、保护与安全等概念,而且涵盖重要的理论结果和案例研究,并且给出了供读者深入学习的推荐读物。这一版新增了多核系统和移动计算的内容,每一章都融入了新的技术进展,并且更新了习题和编程项目。本书既适合高等院校计算机相关专业的学生学习,也是专业技术人员的有益参考。 资料目录: 出版者的话 译者序 前言 第一部分 概论 第1章 导论 2 1.1 操作系统的功能 2 1.1.1 用户视角 2 1.1.2 系统视角 3 1.1.3 操作系统的定义 4 1.2 计算机系统的组成 4 1.2.1 计算机系统的运行 5 1.2.2 存储结构 6 1.2.3 I/O结构 8 1.3 计算机系统的体系结构 9 1.3.1 单处理器系统 9 1.3.2 多处理器系统 10 1.3.3 集群系统 12 1.4 操作系统的结构 13 1.5 操作系统的执行 14 1.5.1 双重模式与多重模式的执行 15 1.5.2 定时器 16 1.6 进程管理 17 1.7 内存管理 17 1.8 存储管理 18 1.8.1 文件系统管理 18 1.8.2 大容量存储器管理 19 1.8.3 高速缓存 19 1.8.4 I/O系统 21 1.9 保护与安全 21 1.10 内核数据结构 22 1.10.1 列表、堆栈及队列 22 1.10.2 树 23 1.10.3 哈希函数与哈希表 23 1.10.4 位图 24 1.11 计算环境 24 1.11.1 传统计算 24 1.11.2 移动计算 25 1.11.3 分布计算 26 1.11.4 客户机-服务器计算 26 1.11.5 对等计算 27 1.11.6 虚拟化 28 1.11.7 云计算 29 1.11.8 实时嵌入式系统 29 1.12 开源操作系统 30 1.12.1 历史 31 1.12.2 Linux 31 1.12.3 BSD UNIX 32 1.12.4 Solaris 32 1.12.5 用作学习的开源操作系统 33 1.13 小结 33 复习题 35 实践题 35 习题 35 推荐读物 36 参考文献 37 第2章 操作系统结构 38 2.1 操作系统的服务 38 2.2 用户与操作系统的界面 40 2.2.1 命令解释程序 40 2.2.2 图形用户界面 41 2.2.3 界面的选择 42 2.3 系统调用 43 2.4 系统调用的类型 46 2.4.1 进程控制 46 2.4.2 文件管理 49 2.4.3 设备管理 50 2.4.4 信息维护 50 2.4.5 通信 50 2.4.6 保护 51 2.5 系统程序 51 2.6 操作系统的设计与实现 52 2.6.1 设计目标 52 2.6.2 机制与策略 53 2.6.3 实现 53 2.7 操作系统的结构 54 2.7.1 简单结构 54 2.7.2 分层方法 55 2.7.3 微内核 56 2.7.4 模块 57 2.7.5 混合系统 58 2.8 操作系统的调试 60 2.8.1 故障分析 60 2.8.2 性能优化 60 2.8.3 DTrace 61 2.9 操作系统的生成 63 2.10 系统引导 64 2.11 小结 64 复习题 65 实践题 65 习题 65 编程题 66 编程项目 66 推荐读物 69 参考文献 70 第二部分 进程管理 第3章 进程 72 3.1 进程概念 72 3.1.1 进程 72 3.1.2 进程状态 73 3.1.3 进程控制块 73 3.1.4 线程 74 3.2 进程调度 75 3.2.1 调度队列 75 3.2.2 调度程序 77 3.2.3 上下文切换 78 3.3 进程运行 79 3.3.1 进程创建 79 3.3.2 进程终止 82 3.4 进程间通信 83 3.4.1 共享内存系统 85 3.4.2 消息传递系统 86 3.5 IPC系统例子 89 3.5.1 例子:POSIX共享内存 89 3.5.2 例子:Mach 91 3.5.3 例子:Windows 92 3.6 客户机/服务器通信 93 3.6.1 套接字 93 3.6.2 远程过程调用 96 3.6.3 管道 98 3.7 小结 102 复习题 103 实践题 103 习题 104 编程题 105 编程项目 107 推荐读物 110 参考文献 111 第4章 线程 112 4.1 概述 112 4.1.1 动机 112 4.1.2 优点 113 4.2 多核编程 114 4.2.1 编程挑战 115 4.2.2 并行类型 115 4.3 多线程模型 116 4.3.1 多对一模型 116 4.3.2 一对一模型 116 4.3.3 多对多模型 116 4.4 线程库 117 4.4.1 Pthreads 118 4.4.2 Windows线程 119 4.4.3 Java线程 121 4.5 隐式多线程 122 4.5.1 线程池 123 4.5.2 OpenMP 124 4.5.3 大中央调度 125 4.5.4 其他方法 125 4.6 多线程问题 125 4.6.1 系统调用fork()和exec() 125 4.6.2 信号处理 126 4.6.3 线程撤销 127 4.6.4 线程本地存储 128 4.6.5 调度程序激活 128 4.7 操作系统例子 129 4.7.1 Windows线程 129 4.7.2 Linux线程 130 4.8 小结 131 复习题 131 实践题 131 习题 131 编程题 133 编程项目 135 推荐读物 136 参考文献 136 第5章 进程同步 138 5.1 背景 138 5.2 临界区问题 140 5.3 Peterson解决方案 141 5.4 硬件同步 142 5.5 互斥锁 144 5.6 信号量 144 5.6.1 信号量的使用 145 5.6.2 信号量的实现 145 5.6.3 死锁与饥饿 147 5.6.4 优先级的反转 147 5.7 经典同步问题 148 5.7.1 有界缓冲问题 148 5.7.2 读者-作者问题 149 5.7.3 哲学家就餐问题 150 5.8 管程 151 5.8.1 使用方法 152 5.8.2 哲学家就餐问题的管程解决方案 153 5.8.3 采用信号量的管程实现 154 5.8.4 管程内的进程重启 155 5.9 同步例子 156 5.9.1 Windows同步 156 5.9.2 Linux同步 157 5.9.3 Solaris同步 158 5.9.4 Pthreads同步 159 5.10 替代方法 160 5.10.1 事务内存 161 5.10.2 OpenMP 162 |