操作系统

当前位置:首页 > 计算机网络 > 操作系统/系统开发 > 操作系统

出版社:电子工业出版社
出版日期:2012-9
ISBN:9787121185106
作者:[美] William Stallings
页数:541页

章节摘录

版权页:   插图:   在查看包含两个新挂起状态的状态转换图之前,必须提到另一点。到现在为止的论述都假设没有使用虚拟内存,进程或者都在内存中,或者都在内存之外。在虚拟内存方案中,可能会执行到只有一部分内容在内存中的进程,如果访问的进程地址不在内存中,则进程的相应部分可以被调入内存。虚拟内存的使用看上去会消除显式交换的需要,这是因为通过处理器中的存储管理硬件,任何期望的进程中的任何期望的地址都可以移入或移出内存。但是,正如在第8章中将会看到的,如果有足够多的活动进程,并且所有进程都有一部分在内存中,则有可能导致虚拟内存系统崩溃。因此,即使在虚拟存储系统中,操作系统也需要不时地根据执行情况,显式地、完全地换出进程。 现在来看图3.9(b)中我们已开发的状态变转换型(图中的虚线表示可能但并不是必需的转换)。比较重要的新转换如下: 阻塞→阻塞∕挂起:如果没有就绪进程,则至少—个阻塞进程被换出,为另—个没有阻塞的进程让出空间。如果操作系统确定当前正在运行的进程,或就绪进程为了维护基本的性能要求而需要更多的内存空间,那么,即使有可用的就绪态进程也可能出现这种转换。 阻塞∕挂起→就绪∕挂起:如果等待的事件发生了,则处于阻塞∕挂起状态的进程可转换到就绪/挂起态。注意,这要求操作系统必须能够得到挂起进程的状态信息。 就绪∕挂起→就绪:如果内存中没有就绪态进程,操作系统需要调入—个进程继续执行。此外,当处于就绪∕挂起态的进程比处于就绪态的任何进程的优先级都要高时,也可以进行这种转换。这种情况的产生是由于操作系统设计者规定,调入高优先级的进程比减少交换量更重要。 就绪→就绪/挂起:通常,操作系统更倾向于挂起阻塞态进程而不是就绪态进程,因为就绪态进程可以立即执行,而阻塞态进程占用了内存空间但不能执行。但如果释放内存以得到足够空间的唯一方法是挂起—个就绪态进程,那么这种转换也是必需的。并且,如果操作系统确信高优先级的阻塞态进程很快将会就绪,那么它可能选择挂起—个低优先级的就绪态进程,而不是—个高优先级的阻塞态进程。 还需要考虑的几种其他转换有: 新建→就绪∕挂起及新建→就绪:当创建一个新进程时,该进程或者加入就绪队列,或者加入就绪∕挂起队列。不论哪种情况,操作系统都必须建立一些表以管理进程,并为进程分配地址空间。操作系统可能更倾向于在初期执行这些辅助工作,这使得它可以维护大量的未阻塞的进程。通过这一策略,内存中经常会没有足够的空间分配给新进程,因此使用了(新建→就绪/挂起)转换。另一方面,我们可以证明创建进程的适时(just-in-time)原理,即尽可能推迟创建进程以减少操作系统的开销,并在系统被阻塞态进程阻塞时允许操作系统执行进程创建任务。 阻塞∕挂起→阻塞:这种转换在设计中比较少见,如果一个进程没有准备好执行,并且不在内存中,调入它又有什么意义?但是考虑到下面的情况:—个进程终止,释放了一些内存空间,阻塞∕挂起队列中有—个进程比就绪∕挂队列中任何进程的优先级都要高,并且操作系统有理由相信阻塞进程的事件很快就会发生,这时,把阻塞进程而不是就绪进程调入内存是合理的。 运行→就绪∕挂起:通常当分配给一个运行进程的时间期满时,它将转换到就绪态。

前言

  译者序  操作系统在计算机系统中占据重要的地位,是计算机系统的核心和灵魂,是构建在计算机硬件之上的第一层软件,也是基础软件运行平台的主要成分。“操作系统”是计算机科学与技术专业的一门非常重要的专业基础课,一本好的教材可以使学生通过仔细阅读、深入思考、不断练习,循序渐进地提高自己的专业知识和技能水平。  一本教材,承载着什么?学生和教师对它的期望又是什么?WilliamStallings博士编写的《操作系统——精髓与设计原理》第七版给出了完美的答案。WilliamStallings博士在教材的修订过程中,将第六版交给了一批从事相关教学和研究的教授们审阅,使新一版的叙述更加清晰、紧凑,说明文字也进行了修正,使本书在教育学及用户友善性方面有了新的改进。作为一本经典的教材,在美国,多所大学采用本书的前几个版本作为教材或参考书目;在中国,讲授操作系统课程的教师和学习操作系统课程的学生对“精髓”一书也是非常熟悉。  我们真诚地向广大读者推荐WilliamStallings博士的这本教材。本教材提供了操作系统原理的全景图,对操作系统的概念、结构和机制,进行了系统、全面的阐述,并清晰地展示了当代操作系统的本质和特点。特别是,由于本教材已经出到第七版,每一版本都在多位教师使用、反馈建议的基础上,对不足进行了更新,并结合新技术的发展,增加了新内容以反映操作系统的新进展。  教材第七版主要内容分为八个部分。第一部分综述了计算机组织与系统结构,重点讲述与操作系统设计相关的主题。第二部分详细分析了进程、多线程、对称多处理(SMP)和微内核,以及单一系统中的并发机制,重点讲述互斥和死锁。第三部分全面介绍了内存管理技术,包括虚拟存储器。第四部分讨论了线程调度、SMP调度和实时调度,分析比较了多种进程调度方法。第五部分主要分析了操作系统中对I/O功能的控制,特别是磁盘I/O,给出了关于文件管理的综述。第六部分讨论了嵌入式操作系统的一般性原理,并介绍了两个实例系统:TinyOS和eCos。第七部分概述了涉及计算机和网络安全的威胁与机制。第八部分围绕分布式系统,分析了计算机系统网络化技术的主要趋势,同时还介绍了分布式系统开发中的一些主要设计领域。  本书依然选择最流行、应用最广泛的Windows(Windows7)和Linux作为实例操作系统,并增补了多核操作系统、虚拟机、新的调度程序实例、面向服务的架构(SOA)、概率、统计和排队分析、B树等反映操作系统领域进展变化的新内容。在讲解操作系统每一功能的过程中,引入了实例操作系统,以加深读者对原理的理解。本书配备有相应的网站,包括一系列相关链接,包括作业题目和解答、编程项目、重要论文、支持文档、在线章节、在线附录等,并补充了大量的“现场测试”型作业练习。本书在每一章开始给出了学习目标,还按章节给出了学生应该在本章关注的主要概念。本书给教师提供了几个教学大纲样例,允许教师在有限的时间(如16周或12周)内完成教学任务。这些样例是在一些教师们在第六版的真实教学经验的基础上形成的。上述内容为学生和教师提供丰富的辅助材料。  为了配合基于本书的操作系统教学,我们参照本书的重要知识点实现了一个教学用uCore操作系统,并基于uCore操作系统设计了8个增量式的操作系统实验。有兴趣的学生可在了解基本的操作系统概念和原理的基础上,通过阅读实验指导书,分析uCore操作系统源码,完成实验中的练习,扩展uCore操作系统功能,来逐步体会一个操作系统是如何实现的,以及操作系统的概念原理和实际实现之间的紧密联系与巨大差异。相关实验指导书文档和实验代码放在https://github.com/chyyuu/ucore_pub上,且会持续更新。  参加本书翻译、审阅和校对的还有刘伟、杜圆圆、阎梵茜、徐淑琪、孔俊俊、闫林、张琳、冯涛、刘晗、王浩宇、周欣、陈刚、李小奇、刘梦馨、闫丰润、袁鹏飞、陈昕、吕骁博等人,在此对他(她)们的贡献表示诚挚的谢意。  由于译者水平有限,本书的译文中必定会存在一些不足或错误之处,欢迎各位专家和广大读者批评指正。  译者  2012年8月

内容概要

作者:(美)William Stallings(威廉.斯托林斯) 译者:陈向群

书籍目录

第0章 读者与教师指南
0.1 本书概述
0.2 实例系统
0.3 读者和教师的学习路线图
0.4 互联网和网站资源
第一部分 背景知识
第1章 计算机系统概述
1.1 基本构成
1.2 微处理器的发展演化
1.3 指令的执行
1.4 中断
1.4.1 中断和指令周期
1.4.2 中断处理
1.4.3 多个中断
1.5 存储器的层次结构
1.6 高速缓存
1.6.1 动机
1.6.2 高速缓存原理
1.6.3 高速缓存设计
1.7 直接内存存取
1.8 多处理器和多核计算机组织结构
1.8.1 对称多处理器
1.8.2 多核计算机
1.9 推荐读物和网站
1.10 关键术语、复习题和习题
1.10.1 关键术语
1.10.2 复习题
1.10.3 习题
附录1A 两级存储器的性能特征
第2章 操作系统概述
2.1 操作系统的目标和功能
2.1.1 作为用户/计算机接口的操作系统
2.1.2 作为资源管理器的操作系统
2.1.3 操作系统的易扩展性
2.2 操作系统的发展
2.2.1 串行处理
2.2.2 简单批处理系统
2.2.3 多道批处理系统
2.2.4 分时系统
2.3 主要的成就
2.3.1 进程
2.3.2 内存管理
2.3.3 信息保护和安全
2.3.4 调度和资源管理
2.4 现代操作系统的特征
2.5 虚拟机
2.5.1 虚拟机和虚拟化
2.5.2 虚拟机架构
2.6 针对多处理器和多核的操作系统设计考虑因素
2.6.1 对称多处理器计算机的操作系统设计考虑因素
2.6.2 多核计算机的操作系统设计考虑因素
2.7 微软Windows系统简介
2.7.1 历史
2.7.2 现代操作系统
2.7.3 体系结构
2.7.4 客户/服务器模型
2.7.5 线程和SMP
2.7.6 Windows对象
2.7.7 Windows 7中的新特性
2.8 传统的UNIX系统
2.8.1 历史
2.8.2 描述
2.9 现代UNIX系统
2.9.1 System V版本4(简称SVR4)
2.9.2 BSD
2.9.3 Solaris 10
2.10 Linux操作系统
2.10.1 历史
2.10.2 模块结构
2.10.3 内核组件
2.11 Linux Vserver虚机器结构
2.12 推荐读物和网站
2.13 关键术语、复习题和习题
2.13.1 关键术语
2.13.2 复习题
2.13.3 习题
第二部分 进程
第3章 进程描述和控制
3.1 什么是进程
3.1.1 背景
3.1.2 进程和进程控制块
3.2 进程状态
3.2.1 两状态进程模型
3.2.2 进程的创建和终止
3.2.3 五状态模型
3.2.4 被挂起的进程
3.3 进程描述
3.3.1 操作系统的控制结构
3.3.2 进程控制结构
3.4 进程控制
3.4.1 执行模式
3.4.2 进程创建
3.4.3 进程切换
3.5 操作系统的执行
3.5.1 无进程的内核
3.5.2 在用户进程中执行
3.5.3 基于进程的操作系统
3.6 安全问题
3.6.1 系统访问威胁
3.6.2 对抗措施
3.7 UNIX SVR4进程管理
3.7.1 进程状态
3.7.2 进程描述
3.7.3 进程控制
3.8 小结
3.9 推荐读物
3.10 关键术语、复习题和习题
3.10.1 关键术语
3.10.2 复习题
3.10.3 习题
第4章 线程
4.1 进程和线程
4.1.1 多线程
4.1.2 线程功能特性
4.2 线程分类
4.2.1 用户级和内核级线程
4.2.2 其他方案
4.3 多核和多线程
4.3.1 多核系统上的软件性能
4.3.2 应用示例:Valve游戏软件
4.4 Windows 7线程和SMP管理
4.4.1 进程对象和线程对象
4.4.2 多线程
4.4.3 线程状态
4.4.4 对OS子系统的支持
4.4.5 对称多处理的支持
4.5 Solaris的线程和SMP管理
4.5.1 多线程体系结构
4.5.2 动机
4.5.3 进程结构
4.5.4 线程的执行
4.5.5 把中断当做线程
4.6 Linux的进程和线程管理
4.6.1 Linux任务
4.6.2 Linux线程
4.7 Mac OS X的GCD技术
4.8 小结
4.9 推荐读物
4.10 关键术语、复习题和习题
4.10.1 关键术语
4.10.2 复习题
4.10.3 习题
第5章 并发性:互斥和同步
5.1 并发的原理
5.1.1 一个简单的例子
5.1.2 竞争条件
5.1.3 操作系统关注的问题
5.1.4 进程的交互
5.1.5 互斥的要求
5.2 互斥:硬件的支持
5.2.1 中断禁用
5.2.2 专用机器指令
5.3 信号量
5.3.1 互斥
5.3.2 生产者/消费者问题
5.3.3 信号量的实现
5.4 管程
5.4.1 使用信号的管程
5.4.2 使用通知和广播的管程
5.5 消息传递
5.5.1 同步
5.5.2 寻址
5.5.3 消息格式
5.5.4 排队原则
5.5.5 互斥
5.6 读者/写者问题
5.6.1 读者优先
5.6.2 写者优先
5.7 小结
5.8 推荐读物
5.9 关键术语、复习题和习题
5.9.1 关键术语
5.9.2 复习题
5.9.3 习题
第6章 并发:死锁和饥饿
6.1 死锁原理
6.1.1 可重用资源
6.1.2 可消耗资源
6.1.3 资源分配图
6.1.4 死锁的条件
6.2 死锁预防
6.2.1 互斥
6.2.2 占有且等待
6.2.3 不可抢占
6.2.4 循环等待
6.3 死锁避免
6.3.1 进程启动拒绝
6.3.2 资源分配拒绝
6.4 死锁检测
6.4.1 死锁检测算法
6.4.2 恢复
6.5 一种综合的死锁策略
6.6 哲学家就餐问题
6.6.1 基于信号量解决方案
6.6.2 基于管程解决方案
6.7 UNIX的并发机制
6.7.1 管道
6.7.2 消息
6.7.3 共享内存
6.7.4 信号量
6.7.5 信号
6.8 Linux内核并发机制
6.8.1 原子操作
6.8.2 自旋锁
6.8.3 信号量
6.8.4 屏障
6.9 Solaris线程同步原语
6.9.1 互斥锁
6.9.2 信号量
6.9.3 多读者/单写者锁
6.9.4 条件变量
6.10 Windows 7并发机制
6.10.1 等待函数
6.10.2 分派器对象
6.10.3 临界区
6.10.4 轻量级读者-写者锁和条件变量
6.10.5 锁无关同步机制
6.11 小结
6.12 推荐读物
6.13 关键术语、复习题和习题
6.13.1 关键术语
6.13.2 复习题
6.13.3 习题
第三部分 内存
第7章 内存管理
7.1 内存管理的需求
7.1.1 重定位
7.1.2 保护
7.1.3 共享
7.1.4 逻辑组织
7.1.5 物理组织
7.2 内存分区
7.2.1 固定分区
7.2.2 动态分区
7.2.3 伙伴系统
7.2.4 重定位
7.3 分页
7.4 分段
7.5 安全问题
7.5.1 缓冲区溢出攻击
……
第四部分 调度
第五部分 输入/输出和文件
第六部分 嵌入式系统
第七部分 计算机安全
第八部分 分布式系统
附录A 并发主题
附录B 编程和操作系统项目
术语表
参考书目

编辑推荐

《国外计算机科学教材系列•操作系统:精髓与设计原理(第7版)》既注重对操作系统经典知识的讲解,又紧密结合当代最新的操作系统发展趋势,全面清楚地展现了当代操作系统的本质和特点。可作为大学计算机专业学生的教材和参考书,也可供从事计算机专业研究方向的专业技术人员参考。

作者简介

《国外计算机科学教材系列•操作系统:精髓与设计原理(第7版)》是一本关于操作系统的概念、结构和机制的教材,其目的是尽可能清楚和全面地展示现代操作系统的本质和特点;同时,《国外计算机科学教材系列•操作系统:精髓与设计原理(第7版)》也是讲解操作系统的经典教材,不仅系统地讲述了操作系统的基本概念、原理和方法,而且以当代最流行的操作系统——Windows 7、UNIX和Linux为例,全面清楚地展现了当代操作系统的本质和特点。与《国外计算机科学教材系列•操作系统:精髓与设计原理(第7版)》配套的专用网站,为帮助教师和学生理解书中内容,提供了及时、生动的材料。

图书封面


 操作系统下载 更多精彩书评



发布书评

 
 


精彩书评 (总计2条)

  •     读完了英文版,老师拿英文版授课。不得不说这本书的英文版让人读了想死。我觉得极其难懂,极其枯燥。我读过Hyde的《the art of assembly language》,读起来一目十行,从来没觉得哪个句子难懂,行文相当流畅。我读过Silberschatz的《operating system concepts》,行文也是很流畅,几乎没有什么很长很难理解的句子,而且没有废话,关注的方面并没有stalling的书多而杂。而且结构合理。读staling的这本书原版,真是*****。真的是感觉天书啊。我一直在怀疑作者是不是美国的,能够把英语写成这样也是够了。期末复习,这么厚的英文书写成这个样子,还能不能看了。劳资花了四天狂读第3、4、5、7、8这五章,虽然读完了,但是感觉写的真是******。从此之后只要是此人写的书,我躲着走。PS:我很敬佩本书译者能翻译完这本天书。——————————————————————————一年后我又来了,比起一年前我的英语阅读水平又上升了,现在每天扫读Fox新闻,计算机技术类图书英文版可以很容易的读下去,英文原版小说查查电子词典读的很欢快。前几天要考嵌入式,我又借鉴了此书的“哲学家就餐问题”这个算法,时隔一年我再来读,我感觉——不是英语水平的问题,这书写的就是太绕,太复杂,太难懂,不易读。你能读懂,但是读得很缓慢,句子太复杂。想一脚踹死作者,你到底是不是美国人,写的什么东西,简直可以被Tanenbaum的书轰杀至渣。
  •     本书最大的特点就是对操作系统的基本概念解释的很清楚;对操作系统的原理和内容都做了清晰的阐述。同时,还通过列举实际的操作系统(如windows和linux),对某些问题来进一步说明,使得原理和概念性的东西不再那么枯燥。最后,这本书比Andrew S.Tanenbaum的那本经典的《现代操作系统》还要更加深入一些,不仅可以让读者入门,还可以让读者对操作系统的理解更加的深刻。

精彩短评 (总计68条)

  •     替别人买的,应该是还不错的
  •     只是我有点笨,不好理解
  •     外国教材就是不一样,介绍得比较独到~
  •     书本身还不错,深入浅出贴合实际,但是各种翻译错误太讨厌了...
  •     正在看 很不错 金典
  •     很不错的一本教材,可以用来仔细研习一下。
  •     还不错,内容尚可。
  •     good good !!
  •     相当不错的一本书,学习中
  •     操作系统果然精神
  •     可以 自己能看懂
  •     快递不给力,书是好的
  •     为考研买的,33岁了,再考研,没想到还挺有精力的。
  •     书还没有看,但是书的质量非常不错哦
  •     内容比较全面,其中还讲了许多经典的例子来说明操作系统设计领域所要面对的基础知识。总体来说还不错,但一遍看下来之后令人印象深刻的内容较少,未满足期望。
  •     等我看了再写心得吧
  •     好,还没有看,如果有需要下次再来
  •     很喜欢各种操作系统的内核知识,即便我已经很了解。买经典的,仅仅为了收藏。
  •     之前已购买了第五版,再次购买第七版,理解操作系统方面经典的好书,值得推荐!
  •     很不错的书,好好学习,定能从中学到很多东西
  •     操作系统的经典教材,但是现在很少有书讲云和虚拟化计算的很少
  •     不错很好学习
  •     买了三本书,2本有污损,且没有按要求附上发票。
  •     操蛋的当当,送货速度超慢,21号下单,说好26号到,结果1号才到,以后还是上亚马逊买吧!!
  •     还不错,没有什么质量问题,送货也比较快
  •     东西比较正规,有发票,好评
  •     没有一定基础,这本书怕是看不了,介绍的东西比较深,比较详细。
  •     国外计算机科学教材系列:
  •     擅长抽象。
  •     教材。但这本翻译得不是很顺,看起来有点费劲。
  •     一搬一般啦啦
  •     对初入门的人来说当然是不错的选择,但是学多了以后再看这本书就会觉得这种系统设计的方法很幼稚
  •     内容不错,但是书的质量?书皮破了很多
  •     正在阅读,经理让学习的 我是准备搞Windows核心编程的额
  •     书是老师推荐的,学习软件应该掌握的知识,还没有读
  •     帮别人买的,朋友说不错
  •     书很好 价钱很合适 但是纸张略薄 这没办法
  •     适合喜欢操作系统的人,用这本书学操作系统,没有什么诙谐的语言,只有严谨的理论,自己取舍吧
  •     直接印出来就行啦还搞个什么联机章节和联机附录,还要向出版社申请才能下载,真是麻烦,而且还不知道能不能申请到;虽然书中写的网站中有很多在线资源,但都是英文的,看不懂。不过嘛书是很值得一看。但这个价钱,还是有点仰望呀。
  •     五星好评,看过这本书,再看汤小丹西电的那本感觉,西电的那本只是简单的把计算机的知识作了总结,而William则是很负责的从各个方面来分析,引用和推荐了大量与操作系统资料,读完几遍仍感觉自己不能完全掌握,可读性很强,给人以整体性概念,值得一读,我跨专业考计算机就是用的这本书
  •     操作系统的书这本是很不错的了,挺好
  •     要理解C语言,底层操作系统必须熟悉,好的教材
  •     没啥有用的。。。。。
  •     理论性非常强的书,从底层开始讲起!
  •     该书系统全面地介绍了操作系统相关的知识
  •     好,就是里面的附加内容没有用户名去网上看
  •     这本书没有好好学。只着重看了对于进程和线程的分析。
  •     学长推荐的经典书~不错~
  •     这本书对操作系统的介绍也就是一般,和普通的操作 系统书籍讲解差不多
  •     很好的书,深入浅出,对操作系统原理和设计思想说得很好。貌似听说《现代操作系统》更好,我没看过也不知道,权当推荐。
  •     为什么我觉得翻译的这么垃圾?这是学计算机的人翻译的吗?读起来好难受啊!
  •     介绍操作系统设计原理的权威经典,同时介绍了windows7和Linux系统,值得一读。
  •     这本书讲的很深,需要仔细理解。
  •     这本书清晰易懂。好好学的孩子是会有很大的收获的。
  •     很久之前买的,现在还没看完,不过很不错,经典
  •     全新正版,价格也还不错,书是一本好书,推荐购买
  •     有点生涩难懂生涩难懂
  •     翻译是几个人翻的,有的章节翻译得一般,有的章节翻译得要好些
  •     注重底层 从下向上构建 很不错的一本书
  •     本书内容不错,不过印刷校对的有点错误,不知道是校对的人对计算机不熟还是量大了有漏点。另外就是纸张两面印刷有点透页,影响阅读。总体还算可以。
  •     书相当完美,翻译很好,送货速度GOOD
  •     OS课本,上课讲了前面12章,为了应付考试也仔细读了第3~8章。内容还算充实,有些地方很磨叽,比如缓冲区溢出的这个问题,不断重复出现挺烦人的;中文翻译有几个细节怎么看都觉得别扭,而且有错误比如第7章有个插图的title翻译错了,这种情况下需要结合原版的电子书阅读。
  •     这本是我们上课的教材
  •     听人说挺好的,买来学习下
  •     如果热爱计算机技术,这个还是看下吧!
  •     这本书更适合教学使用,自学也还不错,但是把好多内容放到了网上,还得自己去找,有点小麻烦。内容比较难,不适合入门来读。
  •     经典之作,书的质量也挺好的,好好学习
  •     收到书有段时间了,看了几章了,感觉挺好的,不错,不过适合有一定基础的人看,刚开始会有点模糊。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024