所有分类
  • 所有分类
  • 在线课堂
  • 精品课程
  • 课件资料
  • 标准资料
  • 资料手册
  • 图纸模型
文档家VIP会员升级

国外计算机科学教材系列 操作系统:精髓与设计原理 第9版 [美]斯托林斯 2020年版

国外计算机科学教材系列 操作系统:精髓与设计原理 第9版 

作者: [美]斯托林斯  

出版时间:2020年版 

丛编项:国外计算机科学教材系列 

内容简介 

  本书既是关于操作系统概念、结构和机制的教材,目的是尽可能清楚和全面地展示现代操作系统的本质和特点;也是讲解操作系统的经典教材,不仅系统地讲述了操作系统的基本概念、原理和方法,而且以当代***的操作系统Windows 10、UNIX、Android、Linux为例,展现了当代操作系统的本质和特点。全书共分背景知识、进程、内存、调度、输入/输出和文件、嵌入式系统六部分,内容包括计算机系统概述、操作系统概述、进程描述和控制、线程、并发性:互斥和同步、并发:死锁和饥饿、内存管理、虚拟内存、单处理器调度、多处理器和实时调度、I/O管理和磁盘调度、文件管理、嵌入式操作系统、虚拟机、计算机安全技术、云操作系统和IoT操作系统等。此外,本书配套网站提供了及时、生动的材料。 

目录 

第一部分 背景知识 

第1章 计算机系统概述\\t2 

1.1 基本构成\\t2 

1.2 微处理器的发展\\t3 

1.3 指令的执行\\t4 

1.4 中断\\t6 

1.4.1 中断和指令周期\\t7 

1.4.2 中断处理\\t8 

1.4.3 多个中断\\t10 

1.5 存储器的层次结构\\t11 

1.6 高速缓存\\t13 

1.6.1 动机\\t13 

1.6.2 高速缓存原理\\t13 

1.6.3 高速缓存设计\\t15 

1.7 直接内存存取\\t15 

1.8 多处理器和多核计算机组织结构\\t16 

1.8.1 对称多处理器\\t16 

1.8.2 多核计算机\\t17 

1.9 关键术语、复习题和习题\\t19 

1.9.1 关键术语\\t19 

1.9.2 复习题\\t19 

1.9.3 习题\\t19 

附录1A 两级存储器的性能特征\\t21 

第2章 操作系统概述\\t26 

2.1 操作系统的目标和功能\\t26 

2.1.1 作为用户/计算机接口的 

操作系统\\t26 

2.1.2 作为资源管理器的操作系统\\t27 

2.1.3 操作系统的易扩展性\\t28 

2.2 操作系统的演化\\t29 

2.2.1 串行处理\\t29 

2.2.2 简单批处理系统\\t29 

2.2.3 多道批处理系统\\t31 

2.2.4 分时系统\\t33 

2.3 主要成就\\t34 

2.3.1 进程\\t34 

2.3.2 内存管理\\t36 

2.3.3 信息保护和安全\\t37 

2.3.4 调度和资源管理\\t38 

2.4 现代操作系统的特征\\t39 

2.5 容错性\\t40 

2.5.1 基本概念\\t41 

2.5.2 错误\\t41 

2.5.3 操作系统机制\\t42 

2.6 多处理器和多核操作系统设计 

考虑因素\\t42 

2.6.1 对称多处理器操作系统设计 

考虑因素\\t42 

2.6.2 多核操作系统设计考虑因素\\t43 

2.7 微软Windows系统简介\\t44 

2.7.1 背景\\t44 

2.7.2 体系结构\\t44 

2.7.3 客户-服务器模型\\t46 

2.7.4 线程和SMP\\t47 

2.7.5 Windows对象\\t47 

2.8 传统的UNIX系统\\t48 

2.8.1 历史\\t48 

2.8.2 描述\\t49 

2.9 现代UNIX系统\\t50 

2.9.1 System V Release 4(SVR4)\\t51 

2.9.2 BSD\\t51 

2.9.3 Solaris 11\\t51 

2.10 Linux操作系统\\t51 

2.10.1 历史\\t51 

2.10.2 模块结构\\t52 

2.10.3 内核组件\\t53 

2.11 Android\\t55 

2.11.1 Android软件体系结构\\t56 

2.11.2 Android运行时\\t57 

2.11.3 Android系统体系结构\\t59 

2.11.4 活动\\t60 

2.11.5 电源管理\\t60 

2.12 关键术语、复习题和习题\\t60 

2.12.1 关键术语\\t60 

2.12.2 复习题\\t61 

2.12.3 习题\\t61 

第二部分 进程 

第3章 进程描述和控制\\t64 

3.1 什么是进程\\t64 

3.1.1 背景\\t64 

3.1.2 进程和进程控制块\\t65 

3.2 进程状态\\t66 

3.2.1 两状态进程模型\\t67 

3.2.2 进程的创建和终止\\t68 

3.2.3 五状态模型\\t69 

3.2.4 被挂起的进程\\t71 

3.3 进程描述\\t74 

3.3.1 操作系统的控制结构\\t75 

3.3.2 进程控制结构\\t75 

3.4 进程控制\\t79 

3.4.1 执行模式\\t79 

3.4.2 进程创建\\t80 

3.4.3 进程切换\\t81 

3.5 操作系统的执行\\t82 

3.5.1 无进程内核\\t82 

3.5.2 在用户进程内运行\\t83 

3.5.3 基于进程的操作系统\\t84 

3.6 UNIX SVR4进程管理\\t84 

3.6.1 进程状态\\t84 

3.6.2 进程描述\\t85 

3.6.3 进程控制\\t87 

3.7 小结\\t87 

3.8 关键术语、复习题和习题\\t88 

3.8.1 关键术语\\t88 

3.8.2 复习题\\t88 

3.8.3 习题\\t88 

第4章 线程\\t91 

4.1 进程和线程\\t91 

4.1.1 多线程\\t91 

4.1.2 线程的功能\\t93 

4.2 线程分类\\t95 

4.2.1 用户级和内核级线程\\t95 

4.2.2 其他方案\\t97 

4.3 多核和多线程\\t99 

4.3.1 多核系统上的软件性能\\t99 

4.3.2 应用示例:Valve游戏软件\\t100 

4.4 Windows的进程和线程管理\\t101 

4.4.1 后台任务管理和应用生命 

周期\\t102 

4.4.2 Windows进程\\t103 

4.4.3 进程对象和线程对象\\t103 

4.4.4 多线程\\t104 

4.4.5 线程状态\\t104 

4.4.6 对操作系统子系统的支持\\t105 

4.5 Solaris的线程和SMP管理\\t106 

4.5.1 多线程体系结构\\t106 

4.5.2 动机\\t106 

4.5.3 进程结构\\t107 

4.5.4 线程的执行\\t108 

4.5.5 把中断当作线程\\t108 

4.6 Linux的进程和线程管理\\t109 

4.6.1 Linux任务\\t109 

4.6.2 Linux线程\\t110 

4.6.3 Linux命名空间\\t111 

4.7 Android的进程和线程管理\\t112 

4.7.1 安卓应用\\t112 

4.7.2 活动\\t113 

4.7.3 进程和线程\\t114 

4.8 Mac OS X的GCD技术\\t114 

4.9 小结\\t116 

4.10 关键术语、复习题和习题\\t116 

4.10.1 关键术语\\t116 

.10.2 复习题\\t116 

4.10.3 习题\\t117 

第5章 并发:互斥和同步\\t121 

5.1 互斥:软件解决方法\\t122 

5.1.1 Dekker算法\\t122 

5.1.2 Peterson算法\\t125 

5.2 并发的原理\\t126 

5.2.1 一个简单的例子\\t127 

5.2.2 竞争条件\\t128 

5.2.3 操作系统关注的问题\\t128 

5.2.4 进程的交互\\t128 

5.2.5 互斥的要求\\t131 

5.3 互斥:硬件的支持\\t131 

5.3.1 中断禁用\\t131 

5.3.2 专用机器指令\\t132 

5.4 信号量\\t133 

5.4.1 互斥\\t136 

5.4.2 生产者/消费者问题\\t137 

5.4.3 信号量的实现\\t142 

5.5 管程\\t142 

5.5.1 使用信号的管程\\t142 

5.5.2 使用通知和广播的管程\\t145 

5.6 消息传递\\t146 

5.6.1 同步\\t147 

5.6.2 寻址\\t148 

5.6.3 消息格式\\t149 

5.6.4 排队原则\\t149 

5.6.5 互斥\\t149 

5.7 读者/写者问题\\t150 

5.7.1 读者优先\\t151 

5.7.2 写者优先\\t152 

5.8 小结\\t154 

5.9 关键术语、复习题和习题\\t154 

5.9.1 关键术语\\t154 

5.9.2 复习题\\t154 

5.9.3 习题\\t155 

第6章 并发:死锁和饥饿\\t164 

6.1 死锁原理\\t164 

6.1.1 可重用资源\\t167 

6.1.2 可消耗资源\\t167 

6.1.3 资源分配图\\t168 

6.1.4 死锁的条件\\t169 

6.2 死锁预防\\t169 

6.2.1 互斥\\t170 

6.2.2 占有且等待\\t170 

6.2.3 不可抢占\\t170 

6.2.4 循环等待\\t170 

6.3 死锁避免\\t170 

6.3.1 进程启动拒绝\\t171 

6.3.2 资源分配拒绝\\t171 

6.4 死锁检测\\t174 

6.4.1 死锁检测算法\\t174 

6.4.2 恢复\\t175 

6.5 一种综合的死锁策略\\t175 

6.6 哲学家就餐问题\\t176 

6.6.1 基于信号量的解决方案\\t177 

6.6.2 基于管程的解决方案\\t178 

6.7 UNIX并发机制\\t178 

6.7.1 管道\\t179 

6.7.2 消息\\t179 

6.7.3 共享内存\\t179 

6.7.4 信号量\\t179 

6.7.5 信号\\t180 

6.8 Linux内核并发机制\\t180 

6.8.1 原子操作\\t181 

6.8.2 自旋锁\\t182 

6.8.3 信号量\\t183 

6.8.4 屏障\\t184 

6.9 Solaris线程同步原语\\t185 

6.9.1 互斥锁\\t186 

6.9.2 信号量\\t186 

6.9.3 多读者/单写者锁\\t186 

6.9.4 条件变量\\t187 

6.10 Windows的并发机制\\t187 

6.10.1 等待函数\\t187 

6.10.2 分派器对象\\t187 

6.10.3 临界区\\t188 

6.10.4 轻量级读写锁和条件变量\\t188 

6.10.5 锁无关同步机制\\t189 

6.11 Android进程间通信\\t189 

6.12 小结\\t190 

6.13 关键术语、复习题和习题\\t190 

6.13.1 关键术语\\t190 

6.13.2 复习题\\t190 

6.13.3 习题\\t191 

第三部分 内存 

第7章 内存管理\\t196 

7.1 内存管理的需求\\t196 

7.1.1 重定位\\t196 

7.1.2 保护\\t197 

7.1.3 共享\\t197 

7.1.4 逻辑组织\\t197 

7.1.5 物理组织\\t198 

7.2 内存分区\\t198 

7.2.1 固定分区\\t198 

7.2.2 动态分区\\t200 

7.2.3 伙伴系统\\t202 

7.2.4 重定位\\t203 

7.3 分页\\t204 

7.4 分段\\t206 

7.5 小结\\t207 

7.6 关键术语、复习题和习题\\t207 

7.6.1 关键术语\\t207 

7.6.2 复习题\\t208 

7.6.3 习题\\t208 

附录7A 加载和链接\\t210 

第8章 虚拟内存\\t214 

8.1 硬件和控制结构\\t214 

8.1.1 局部性和虚拟内存\\t215 

8.1.2 分页\\t216 

8.1.3 分段\\t222 

8.1.4 段页式\\t223 

8.1.5 保护和共享\\t224 

8.2 操作系统软件\\t224 

8.2.1 读取策略\\t225 

8.2.2 放置策略\\t226 

8.2.3 置换策略\\t226 

8.2.4 驻留集管理\\t230 

8.2.5 清除策略\\t234 

8.2.6 加载控制\\t234 

8.3 UNIX和Solaris内存管理\\t235 

8.3.1 分页系统\\t235 

8.3.2 内核内存分配器\\t237 

8.4 Linux内存管理\\t238 

8.4.1 虚拟内存\\t239 

8.4.2 内核内存分配\\t240 

8.5 Windows内存管理\\t240 

8.5.1 Windows虚拟地址映射\\t241 

8.5.2 Windows分页\\t241 

8.5.3 Windows交换\\t242 

8.6 Android内存管理\\t242 

8.7 小结\\t242 

8.8 关键术语、复习题和习题\\t243 

8.8.1 关键术语\\t243 

8.8.2 复习题\\t243 

8.8.3 习题\\t243 

第四部分 调度 

第9章 单处理器调度\\t248 

9.1 处理器调度的类型\\t248 

9.1.1 长程调度\\t249 

9.1.2 中程调度\\t250 

9.1.3 短程调度\\t250 

9.2 调度算法\\t250 

9.2.1 短程调度规则\\t250 

9.2.2 优先级的使用\\t251 

9.2.3 选择调度策略\\t252 

9.2.4 性能比较\\t258 

9.2.5 公平共享调度\\t261 

9.3 传统的UNIX调度\\t263 

9.4 小结\\t264 

9.5 关键术语、复习题和习题\\t264 

9.5.1 关键术语\\t264 

9.5.2 复习题\\t264 

9.5.3 习题\\t265 

第10章 多处理器、多核和实时调度\\t268 

10.1 多处理器和多核调度\\t268 

10.1.1 粒度\\t268 

10.1.2 设计问题\\t269 

10.1.3 进程调度\\t270 

10.1.4 线程调度\\t271 

10.1.5 多核线程调度\\t275 

10.2 实时调度\\t276 

10.2.1 背景\\t276 

10.2.2 实时操作系统的特点\\t276 

10.2.3 实时调度\\t278 

10.2.4 限期调度\\t279 

10.2.5 速率单调调度\\t282 

10.2.6 优先级反转\\t284 

10.3 Linux调度\\t285 

10.3.1 实时调度\\t285 

10.3.2 非实时调度\\t286 

10.4 UNIX SVR4调度\\t287 

10.5 FreeBSD调度程序\\t288 

10.5.1 优先级\\t288 

10.5.2 对称多处理器与多核支持\\t289 

10.6 Windows调度\\t290 

10.6.1 进程和线程优先级\\t290 

10.6.2 多处理器调度\\t291 

10.7 小结\\t291 

10.8 关键术语、复习题和习题\\t292 

10.8.1 关键术语\\t292 

10.8.2 复习题\\t292 

10.8.3 习题\\t292 

第五部分 输入/输出和文件 

第11章 I/O管理和磁盘调度\\t296 

11.1 I/O设备\\t296 

11.2 I/O功能的组织\\t297 

11.2.1 I/O功能的发展\\t297 

11.2.2 直接内存访问\\t298 

11.3 操作系统设计问题\\t299 

11.3.1 设计目标\\t299 

11.3.2 I/O功能的逻辑结构\\t300 

11.4 I/O缓冲\\t301 

11.4.1 单缓冲\\t301 

11.4.2 双缓冲\\t302 

11.4.3 循环缓冲\\t302 

11.4.4 缓冲的作用\\t302 

11.5 磁盘调度\\t303 

11.5.1 磁盘性能参数\\t303 

11.5.2 磁盘调度策略\\t304 

11.6 RAID\\t307 

11.6.1 RAID级别0\\t310 

11.6.2 RAID级别1\\t310 

11.6.3 RAID级别2\\t311 

11.6.4 RAID级别3\\t311 

11.6.5 RAID级别4\\t312 

11.6.6 RAID级别5\\t312 

11.6.7 RAID级别6\\t312 

11.7 磁盘高速缓存\\t313 

11.7.1 设计考虑因素\\t313 

11.7.2 性能考虑因素\\t314 

11.8 UNIX SVR 4 I/O\\t315 

11.8.1 缓冲区高速缓冲\\t315 

11.8.2 字符队列\\t316 

11.8.3 无缓冲I/O\\t316 

11.8.4 UNIX设备\\t316 

11.9 Linux I/O\\t317 

11.9.1 磁盘调度\\t317 

11.9.2 Linux页面缓存\\t319 

11.10 Windows I/O\\t320 

11.10.1 基本I/O机制\\t320 

11.10.2 异步I/O和同步I/O\\t320 

11.10.3 软件RAID\\t321 

11.10.4 卷影复制\\t321 

11.10.5 卷加密\\t321 

11.11 小结\\t321 

11.12 关键术语、复习题和习题\\t322 

11.12.1 关键术语\\t322 

11.12.2 复习题\\t322 

11.12.3 习题\\t322 

第12章 文件管理\\t324 

12.1 概述\\t324 

12.1.1 文件和文件系统\\t324 

12.1.2 文件结构\\t325 

12.1.3 文件管理系统\\t326 

12.2 文件组织和访问\\t327 

12.2.1 堆\\t328 

12.2.2 顺序文件\\t328 

12.2.3 索引顺序文件\\t329 

12.2.4 索引文件\\t329 

12.2.5 直接文件或散列文件\\t330 

12.3 B树\\t330 

12.4 文件目录\\t332 

12.4.1 内容\\t332 

12.4.2 结构\\t333 

12.4.3 命名\\t334 

12.5 文件共享\\t335 

12.5.1 访问权限\\t335 

12.5.2 同时访问\\t335 

12.6 记录组块\\t336 

12.7 辅存管理\\t337 

12.7.1 文件分配\\t337 

12.7.2 空闲空间管理\\t339 

12.7.3 卷\\t341 

12.7.4 可靠性\\t341 

12.8 UNIX文件管理\\t341 

12.8.1 索引节点\\t342 

12.8.2 文件分配\\t343 

12.8.3 目录\\t344 

12.8.4 卷结构\\t344 

12.9 Linux虚拟文件系统\\t344 

12.9.1 超级块对象\\t345 

12.9.2 索引节点对象\\t346 

12.9.3 目录项对象\\t346 

12.9.4 文件对象\\t346 

12.9.5 缓存\\t346 

12.10 Windows文件系统\\t347 

12.10.1 NTFS的重要特征\\t347 

12.10.2 NTFS卷和文件结构\\t347 

12.10.3 可恢复性\\t349 

12.11 Android文件系统\\t350 

12.11.1 文件系统\\t350 

12.11.2 SQLite\\t350 

12.12 小结\\t351 

12.13 关键术语、复习题和习题\\t351 

12.13.1 关键术语\\t351 

12.13.2 复习题\\t351 

12.13.3 习题\\t352 

第六部分 嵌入式系统 

第13章 嵌入式操作系统\\t354 

13.1 嵌入式系统\\t354 

13.1.1 嵌入式系统概念\\t354 

13.1.2 通用处理器和专用处理器\\t355 

13.1.3 微处理器\\t355 

13.1.4 微控制器\\t356 

13.1.5 深度嵌入式系统\\t357 

13.2 嵌入式操作系统的特性\\t357 

13.2.1 主环境和目标环境\\t358 

13.2.2 开发方法\\t359 

13.2.3 适配现有的操作系统\\t359 

13.2.4 根据目标建立的嵌入式 

操作系统\\t359 

13.3 嵌入式Linux\\t360 

13.3.1 嵌入式Linux系统的特性\\t360 

13.3.2 嵌入式Linux文件系统\\t361 

13.3.3 嵌入式Linux的优势\\t361 

13.3.4 μClinux\\t362 

13.3.5 Android\\t363 

13.4 TinyOS\\t364 

13.4.1 无线传感器网络\\t364 

13.4.2 TinyOS的目标\\t365 

13.4.3 TinyOS的组件\\t365 

13.4.4 TinyOS的调度程序\\t367 

13.4.5 配置示例\\t367 

13.4.6 TinyOS的资源接口\\t369 

13.5 关键术语、复习题和习题\\t370 

13.5.1 关键术语\\t370 

13.5.2 复习题\\t370 

13.5.3 习题\\t370 

第14章 虚拟机\\t372 

14.1 虚拟机概念\\t372 

14.2 虚拟机管理程序\\t374 

14.2.1 虚拟机管理程序\\t374 

14.2.2 半虚拟化\\t375 

14.2.3 硬件辅助虚拟化\\t376 

14.2.4 虚拟设备\\t376 

14.3 容器虚拟化\\t377 

14.3.1 内核控制组\\t377 

14.3.2 容器的概念\\t377 

14.3.3 容器文件系统\\t379 

14.3.4 微服务\\t380 

14.3.5 Docker\\t380 

14.4 处理器问题\\t381 

14.5 内存管理\\t382 

14.6 输入/输出管理\\t383 

14.7 VMware ESXi\\t384 

14.8 微软Hyper-V与Xen系列\\t385 

14.9 Java虚拟机\\t386 

14.10 Linux VServer虚拟机架构\\t386 

14.10.1 架构\\t387 

14.10.2 进程调度\\t387 

14.11 小结\\t388 

14.12 关键术语、复习题和习题\\t388 

14.12.1 关键术语\\t388 

14.12.2 复习题\\t389 

14.12.3 习题\\t389 

第15章 操作系统安全技术\\t390 

15.1 入侵者与恶意软件\\t390 

15.1.1 系统访问威胁\\t390 

15.1.2 应对措施\\t391 

15.2 缓冲区溢出\\t392 

15.2.1 缓冲区溢出攻击\\t392 

15.2.2 编译时防御\\t394 

15.2.3 运行时防御\\t396 

15.3 访问控制\\t397 

15.3.1 文件系统访问控制\\t397 

15.3.2 访问控制策略\\t399 

15.4 UNIX访问控制\\t402 

15.4.1 传统UNIX文件访问控制\\t402 

15.4.2 UNIX中的访问控制列表\\t403 

15.5 操作系统加固\\t404 

15.5.1 操作系统安装:初始安装 

与后续更新\\t404 

15.5.2 删除不必要的服务、应用 

与协议\\t405 

15.5.3 对用户、组和认证过程 

进行配置\\t405 

15.5.4 对资源控制进行配置\\t405 

15.5.5 安装额外的安全控制工具\\t406 

15.5.6 对系统安全进行测试\\t406 

15.6 安全性维护\\t406 

15.6.1 记录日志\\t406 

15.6.2 数据备份和存档\\t407 

15.7 Windows安全性\\t407 

15.7.1 访问控制方案\\t407 

15.7.2 访问令牌\\t408 

15.7.3 安全描述符\\t408 

15.8 小结\\t410 

15.9 关键术语、复习题和习题\\t411 

15.9.1 关键术语\\t411 

15.9.2 复习题\\t411 

15.9.3 习题\\t411 

第16章 云与物联网操作系统\\t413 

16.1 云计算\\t413 

16.1.1 云计算要素\\t413 

16.1.2 云服务模型\\t414 

16.1.3 云部署模型\\t415 

16.1.4 云计算参考架构\\t416 

16.2 云操作系统\\t418 

16.2.1 基础设施即服务\\t419 

16.2.2 云操作系统的需求\\t420 

16.2.3 云操作系统的基本架构\\t420 

16.2.4 OpenStack\\t424 

16.3 物联网\\t428 

16.3.1 物联网中的物\\t429 

16.3.2 升级换代\\t429 

16.3.3 物联网支持设备的组件\\t429 

16.3.4 物联网和云环境\\t429 

16.4 物联网操作系统\\t431 

16.4.1 受限设备\\t431 

16.4.2 物联网操作系统的要求\\t432 

16.4.3 物联网操作系统架构\\t433 

16.4.4 RIOT\\t434 

16.5 关键术语和复习题\\t435 

16.5.1 关键术语\\t435 

16.5.2 复习题\\t436 

附录A 并发主题\\t437 

附录B 编程和操作系统项目\\t446 

参考文献 \\t450 

书籍下载:

资源下载
资源下载
0
文档家VIP会员升级
没有账号?注册  忘记密码?

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录