ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:26KB ,
资源ID:14306700      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14306700.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统之哲学原理.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

操作系统之哲学原理.docx

1、操作系统之哲学原理操作系统之哲学原理“这是一个瞬息万变的时代。分布式计算的脚步渐行渐远 网格计算的热潮逐步退却,云计算和云存储正慢慢揭开面纱 在所有的变化中 , 不变的是这些计算的支柱 :操作系统 ! 能否深刻 理解它也许会决定云时代的浮沉。” 由上海交通大学邹恒明著的计算机的心智 : 操作系统之哲 学原理 (以下简称操作系统之哲学原理 )别开生面 ,以生活 哲学的视角对操作系统原理进行阐述 , 通过逻辑推理来演绎操作 系统核心技术的奥秘 , 其讨论范围包括操作系统的所有基础内容 背景与历史、进程与线程、通信与同步、调度与死锁、分页与分 段、磁盘与文件、输入与输出等。此外 , 作者还以新颖的组

2、织方 式讲解了锁的实现、同步机制的发展逻辑、从分段到段页式的演 变、多核环境下的同步与调度、操作系统设计的原则等内容。1操作系统是计算机的心智操作系统之哲学原理 , 作者在“第一章操作系统导论” 的一开始就指出 : “一个人觉得操作系统没用 , 那是因为他不知 道怎么用 , 或者他没有用操作系统的意愿。说明白一点 , 你如果认 为操作系统没用 , 那是因为你的编程开发处在一个低级的水平 上。如果你掌握了操作系统 , 你的编程水平将显著提高。” 作者指出:要想学好操作系统 ,具有恰当的思维模式是十分必要的。这个思维模式就是本书所强调的“哲学”计算机程序的运行至少需要如下 4个因素 :程序设计语言

3、 ;编译系统 ;操作系统 ;指令集结构 ( 计算机硬件系统 ) 。其中, 操作系统在程序的执行过程中具有关键的作用。由于 计算机的功能和复杂性不断发生变化 ( 趋向更加复杂 ), 操作系统 所掌控的事情越来越多 , 越来越复杂。同时, 操作系统本身能够使 用的资源也不断增多。操作系统是一个软件系统 , 它使计算机变 得好用 (将人类从繁琐、复杂的对机器掌控的任务中解脱 ), 使计 算机运作变得有序 (操作系统掌控计算机上所有事情 )。因此 ,操 作系统的功能一般包括 :替用户及其应用管理计算机上的软、硬件资源 ; 保证计算机资源的公平竞争和使用 ;防止对计算机资源的非法侵占和使用 ; 保证操作

4、系统自身正常运转。作者进一步指出 :将操作系统功能进行提升 , 就可以得出操 作系统所扮演的两个根本角色管理者和魔术师。本书集中精力对操作系统的核心内容进行分析 , 用大量的生 活实例,生动地解释了操作系统中的主要难点和模糊点 , 包括锁 的实现、同步机制的发展轴线、纯粹分段到段页式的演变、多核 环境下的进程同步与调度和操作系统设计等内容 , 而放弃了操作 系统核心以外的内容 , 如安全、多媒体系统、虚拟机技术、光盘 技术等的论述。全书重点突出、逻辑清晰、内容连贯 , 便于学生 顺利掌握操作系统的核心内容 , 是了解计算机操作系统原理不可 多得的教学参考书。本书对操作系统原理的讨论充满趣味性

5、: 每一章都力求细致 地阐明一个主题 , 将通俗的哲学原理和逻辑推理贯穿于每一个主 题, 构成全书的有机整体 , 并适当地引入计算机组成和编译器知 识, 揭示操作系统在程序运行中发挥的作用 , 把读者对操作系统 的理解带到一个崭新的境界。2操作系统的哲学原理 在详细论述了操作系统的基本概念和各种机制之后 , 作者认 为: 首先, 操作系统作为计算机的管理者 , 需要对计算机的各个组 成部分进行管理,这就导致了 CPU管理、内存管理、磁盘管理、 输入输出管理等操作系统功能的出现和相互关联 ; 其次 , 操作系 统作为魔术师 , 需要对计算机的各种硬件进行抽象和装扮 , 以使 其显得更大、 更快、

6、更好和更容易使用。 这些抽象就形成了进程、 线程、虚拟内存、文件系统、各种 I/O 模式等操作系统构造的出 现, 而这些构造之间也因操作系统魔术师的角色而互相联结起 来。作者认为 , 除了管理和魔幻这两条共同的纽带外 , 操作系统各 个部分还有一个联结纽带 , 即其设计上所遵循的哲学原理。作者 认为 : 最为重要的核心是不同的生活哲学将导致不同的操作系统 设计与构造。在本书的第七篇 (第 22章), 作者概括性地介绍了操作系统 设计的 10条哲学原理 , 它们是:第 1 条哲学原理 : 层次架构。 操作系统的功能分为多个模块 , 并按层次分解。下面一层向上面一层提供功能 , 而上面一层只能 对

7、直接下属进行控制。 采用层次结构不仅使得操作系统的构造过 程容易 , 也因为符合人类的习惯而更加易于理解 , 从而使操作系 统结构清晰 , 节省开发操作系统的成本。第 2 条哲学原理 : 没有对错。 作者认为 : 操作系统本身并无对 错之分,只有好坏之分。就像我们不能说 Windows是对的,Unix是错的。我们只能说 ,Windows 更容易使用 , 而 Unix 不太好使用 而已。因此 , 在设计操作系统时 , 只要达到功能、效率、公平、正 确的平衡即可。 例如, 操作系统进程调度策略有很多 , 而每种调度 策略有其适用的场景。我们不能说“时间片轮转是对的 , 而优先 级调度是错误的”。第

8、 3 条哲学原理 : 懒人哲学。以 Unix 操作系统里面 fork 系 统调用的实现为例 , 作者介绍了在操作系统设计中懒人哲学的应 用:fork系统调用中有时需要进行父子进程地址空间的复制 ,但在设计中“不到万不得已不复制”。 这在计算机术语中称为懒惰 或延迟的复制。 懒人哲学的合理性在于提前将事情做掉也许是一 种浪费。第 4 条哲学原理 : 让困于人。以文件系统为例 , 作者指出 : 对 于操作系统来说 , 它需要保证自己的正确性 , 而文件夹对于操作 系统文件系统的正常运转至关重要 , 因此, 文件夹必须保持不能 出现问题 , 操作系统会使用各种原语操作保证文件系统的一致 性。而用户文

9、件的一致与否并不影响操作系统本身的运行。 虽然 用户文件的毁坏有可能激怒用户 , 但这不是操作系统有义务管的 事情。这种哲学就是“让困于人”。第 5 条哲学原理 : 留有余地。例如, 文件系统目录夹的记录里 面通常都有一部分所谓的保留空间,如DOS目录夹记录里面就有 10 个字节的保留空间 , 而事实上 , 这 10 个保留字在 Windows 98 的文件系统里面就得到了利用。如果没有这些保留字 , 将不得不 设计全新的系统而导致无法兼容。第 6 条哲学原理 : 子虚乌有。操作系统的目的是服务上层的 应用程序和用户 , 用户要什么就提供什么。而提供的这种东西虽 然在用户看来实实在在 , 但实

10、际上都是子虚乌有。 例如 , 在操作系 统里面 , 用户看到的内存非常大 ( 其实是与磁盘一样大 ), 速度无 限快(其实是与缓存一样快 ) 。但实际上 , 我们的物理内存可能只 不过4G,速度也只有缓存的十分之一。第 7 条哲学原理 : 时空转换。以页表的实现为例。由于页表 的尺寸通常太大 , 占用内存过多 , 便将页表分级 , 只保留一部分页 表在内存 , 而其他部分放置于磁盘上。 这样, 页表所占空间大为减 少, 但付出的代价就是时间成本。第 8 条哲学原理 : 策机分离。 立法就是策略 , 执法就是实现机 制。立法和执法的分离就是所谓的“策机分离”哲学。 作者认为 , 操作系统里面的策

11、机分离主要是为了实现的灵活性。 比如“调度 算法参数化” ,算法在内核里 ,参数可以由用户指定。又例如 , 在 程序设计领域 ,对界面的设计和对界面的实现是分开的 ; 在计算 机安全领域 , 对安全标准的设计和安全设计的实现是分开的。第 9 条哲学原理 : 简单为美。作者指出 , 在数学领域有个不成 文的共识 : “如果一个问题有多个数字表示 ,那么最简单的表示 通常是正确的。”在操作系统设计中 , 文件存储的方式有网状组 织、树状组织、记录流、数据块流和字节流等各种选择 , 而现代 操作系统选择的都是最简单的字节流。第10条哲学原理 :适可而止。作者认为 ,第 10条哲学原理是 用来修正前面

12、 9条原理的。即在前面 9条原理的贯彻过程中 , 要 保持一个度 ,适可而止。例如, “简单为美”但不能过于简单。 正 如爱因斯坦所言 : “一切都应该尽可能简单 , 但没有更简单”。3网络书评操作系统之哲学原理一书出版时间不长 , 但网络上好评 如潮。有人说: “读了本书 ,感觉比起一般讲解操作系统的书来说 , 更加清晰透彻 , 生动有趣。书中的一些原理讲解让人茅塞顿开 , 认真看完本书后 , 操作系统也就掌握得差不多了 ! ”有人说: “读这本书 ,用爱不释手也许有些夸张 , 但不管 是熟悉操作系统还是一点不懂 ,从中得到的启迪 , 不仅仅是操作系统的原理 , 还有深藏在背后的哲理至真。”

13、有读者指出:本书是“打着哲学旗号的新颖的 OS教材”。1评论说:“神学 ,哲学, 科学,作者似乎想把三者结合为一体 , 但从每章开头好像和本章内容无甚联系的小故事来看 , 恐怕还没 有做到这一点 ,每章的技术性讲解还是没有脱离科学而上升 到哲学 ,所以想要从所谓哲学的高度 (就像作者在序中 说的那样 )来理解操作系统的朋友们可能要失望了。但是抛开 哲学这个词 ,单纯从技术上来讲 , 我很欣赏作者的讲述方式。 一改往日教材知其然不知其所以然 ,甚至连知其然都不 太能做到的国内出版教科书的风格,作者用类似OS开发人员视 角的方式,从问题一解决方案一优缺点一改进方案一优缺点一再 改进方案这样带领我们

14、一路走来 ,让我们更加深刻地认识到 OS 的一些本质和原理 ,以及许多流行的设计为什么是这样。” 一位操作系统老师点评说 :“自己多年讲授操作系统 , 虽然 感觉每一次的讲授都会有不同的视角 ,自认为对 Linux 内核源代 码的阅读有助于原理的讲述 ,但为什么总有那么一些概念 , 比如 同步、死锁、虚拟内存等像从天空飘然而下 ,那么硬生生地扔给 学生,学生在茫然中不得已地伸手接住 ,消化与否,无暇顾及,因 为还有不少重头炮弹等着学生接呢。 听了作者对锁这样一种 看似易于理解的概念一步步的演绎过程 ,似乎明白了操作系统教 材(或其他工科书 )枯燥之源。计算机世界中的大部分概念本来自 于生活 ,

15、 但现有的教材割舍了其源本 , 把抽象出来的概念悬挂在空中,让大家望其项背而无法落地 ,于是, 计算机科学的趣味性和 逻辑性也零落在书本的边边角角了。”中国互动出版网的书评1说:“读了计算机的心智一一操 作系统之哲学原理 , 这本书确实使得我对之前理解得较为生硬 的部分操作系统原理豁然开朗了 , 这种大白话的风格虽有失教材 的严谨 , 但作为灵活生动的学习参考资料的确是不可多得的。然 而,贯穿此书的一个细节问题也在阅读过程中逐渐呈现 , 作者多次引用圣经故事 , 经常使用基督教中的概念做比喻。尽管书 中也有一些儒、释、道的理念 , 但从不少行文表达中都可以看出 其暗含的对基督教、神创论的认可。

16、不过作为一个不信神的 读者,我虽然也读过圣经的主要篇章 , 但对作者给出的部分引 言或比喻还是难以理解的 , 例如为什么巴别塔与进程调度问题相 关?我也曾试图挑刺似的来找这本书中各处看似不恰当的比喻 ,包括宗教的和非宗教的。但读着读着 , 慢慢感觉到自己也没必要 和那些文字作对。原因正如宋朝的佛印禅师所说 : 心中有佛 , 所见万物皆是佛。作者写出这些比喻 ,是因为作为一个基督徒 , 在其信仰的指导下使用其独到的神学观点来思考人造事物 , 就其个人而言是相当自然的。而我要是有准备挑刺的潜意识 , 那无论从中看到什么略显玄乎的文字 ,都会不自觉地将其认定为有失恰 当的主观内容。”但也有不同意见的

17、。有评论说 : “我觉得作为一本入门级的 书内容还是不错的 ,有其新颖独到的地方 , 而且介绍了一些多核 的东西,比较不错。但是作者在每章前面非加上一段欧洲历史等 东西,搞得太过牵强 ,不这样不足以显示哲学原理的地位 ?再说这 个书名,我感觉有点太大了 , 其实整本书没几处上升到哲学的高 度进行总结归纳 ,绝大部分都是介绍现有技术。尽管其介绍哲学 原理的部分有画龙点睛的作用 ,但是总感觉这样的命名有点 虚。”4图书相关信息书名: 计算机的心智 : 操作系统之哲学管理 作者:邹恒明著ISBN:978-7-111-26642-6 页数:309定价:38.0 元 出版社:机械工业出版社 北京市西城区

18、百万庄大街 22号 邮编:100037装帧:平装出版年:2009-45主要内容 (目录) 本书的内容结构如图 1所示。 本书的主要目录如下 : 第一篇基础原理篇 第 1章操作系统导论引子: 智者的挑战1.1人造学科1.2程序是如何运行的1.3什么是操作系统1.4魔幻与管理1.5用户程序与操作系统1.6操作系统的范畴1.7为什么学习操作系统 思考题(以下各章均有 , 下略) 第 2 章操作系统历史 引子: 操作系统进化的推动因素2.1第一阶段 : 状态机操作系统 (1940 年以前 )2.2第二阶段 : 单一操作员、单一控制端操作系统 (20 世纪 40 年代)2.3第三阶段 : 批处理操作系统

19、 (20 世纪 50 年代)2.4第四代 : 多道批处理操作系统 (20 世纪 60 年代)2.5第五代之一 : 分时操作系统 (20 世纪 70 年代)2.6第五代之二 : 实时操作系统2.7第六代 : 现代操作系统 (1980 年以后 )2.8操作系统的演变过程2.9操作系统的未来发展趋势 第 3 章操作系统基本概念引子: “差不多”精神3.1计算机硬件基本知识3.2抽象3.3内核态和用户态3.4操作系统结构3.5进程、内存和文件3.6系统调用3.7壳第二篇进程原理篇第 4 章进程引子 ( 以下各章均有 , 下略)4.1进程概论4.2进程模型4.3多道编程的效率4.4进程的产生与消失4.5

20、进程的层次结构4.6进程的状态4.7进程创立4.8进程与地址空间4.9进程管理4.10进程的缺陷第 5 章线程5.1进程的分身术线程5.2线程管理5.3线程的实现方式5.4现代操作系统的线程实现模型5.5多线程的关系5.6讨论: 从用户态进入内核态5.7讨论 : 线程的困惑确定性与非确定性 第 6 章线程通信6.1为什么要通信6.2线程对白 : 管道、记名管道、套接字6.3线程电报 : 信号6.4线程旗语 : 信号量6.5线程拥抱 : 共享内存6.6信件发送 : 消息队列6.7其他通信机制第 7 章进程同步7.1为什么要同步7.2线程同步的目的7.3锁的进化7.4睡觉与叫醒 : 生产者与消费者

21、问题7.5信号量7.6锁、睡觉与叫醒、信号量7.7管程7.8消息传递7.9栅栏第 8 章进程调度8.1调度的目标8.2处理器调度的总体目标8.3先来先服务调度算法8.4时间片轮转8.5短任务优先8.6优先级调度8.7混合调度算法8.8其他调度算法8.9实时调度算法8.10高级议题 : 调度异常之优先级倒挂第 9 章锁的实现引子: 锁的实现哲学9.1以中断启用与禁止来实现锁9.2以测试与设置指令来实现锁9.3以非繁忙等待、中断启用与禁止来实现锁9.4以最少繁忙等待、测试与设置来实现锁9.5中断禁止、测试与设置 第 10 章死锁应对10.1发生死锁的原因10.2死锁的描述10.3死锁的 4 个必要

22、条件10.4哲学家就餐问题10.5死锁的应对10.6消除死锁的必要条件10.7银行家算法 : 冒险的代价10.8哲学家就餐问题之解10.9讨论 : 死锁的思考综合治理10.10讨论 : 死锁、活锁与饥饿 第三篇内存原理篇 第 11 章基本内存管理11.1内存管理的环境11.2内存管理的目标11.3虚拟内存的概念11.4操作系统在内存的位置11.5单道编程的内存管理11.6多道编程的内存管理11.7闲置空间管理 第 12 章页式内存管理12.1基址极限管理模式的问题12.2分页内存管理12.3分页系统的优缺点12.4翻译速度12.5缺页中断处理12.6锁住页面12.7页面尺寸12.8内存抖动 第

23、 13 章页面更换算法13.1页面需要更换13.2页面更换的目标13.3随机更换算法13.4先进先出算法13.5第二次机会算法13.6时钟算法13.7最优更换算法13.8NRU 算法13.9LRU 算法13.10工作集算法13.11工作集时钟算法13.12页面替换策略 第 14 章段式内存管理14.1分页系统的缺点14.2分段管理系统14.3分段的优缺点14.4段页式内存管理14.5段号是否占用寻址字位14.6讨论:否定之否定的嵌套一一纯粹分段与逻辑分段、分 页与段页第四篇文件原理篇第 15 章磁盘操作15.1磁盘组织与管理15.2磁盘的结构15.3盘面的结构15.4磁盘驱动器的访问速度15.

24、5操作系统界面15.6磁盘调度算法第 16 章文件基础16.1为什么需要文件系统16.2什么是文件系统16.3文件系统的目标16.4文件的基本知识16.5从用户角度看文件系统16.6地址独立的实现机制 : 文件夹16.7文件系统调用16.8内存映射的文件访问第 17 章文件系统实现17.1文件系统的布局17.2文件的实现17.3目录实现 : 地址独立的实现17.4闲置空间管理 第 18 章文件系统18.1文件系统访问控制18.2主动控制 : 访问控制表18.3能力表18.4访问控制的实施18.5文件系统性能18.6提高系统性能的方法18.7文件系统设计分析 : 日志结构的文件系统18.8海量数

25、据文件系统 第五篇 I/O 原理篇 第 19 章输入输出19.1什么是输入输出19.2输入输出的目的19.3输入输出硬件19.4输入输出软件19.5I/O 软件分层第六篇多核原理篇第 20 章多核结构与内存20.1以量取胜20.2多核基本概念20.3多核的内存结构20.4对称多处理器计算机的启动过程20.5多处理器之间的通信20.6SMP缓存一致性20.7多处理器、超线程和多核的比较 第 21 章多核环境下的进程同步与调度21.1多核环境下操作系统的修正21.2多核环境下的进程同步与调度21.3多核进程同步21.4硬件原子操作21.5总线锁21.6多核环境下的软件同步原语21.7旋锁21.8其

26、他同步原语21.9多核环境下的进程调度21.10多核环境下的能耗管理21.11讨论: 多核系统的性能第七篇操作系统设计原理篇 第 22 章操作系统设计之原理122.1 操作系统设计的追求22.2 操作系统设计的第22.3 操作系统设计的第22.4 操作系统设计的第22.5 操作系统设计的第22.6 操作系统设计的第22.7 操作系统设计的第 楼之美22.8 操作系统设计的第 田之变22.9 操作系统设计的第22.10 操作系统设计的第 至简、归于永恒22.11 操作系统设计的第条哲学原理 : 层次架构2条哲学原理 : 没有对错3条哲学原理 : 懒人哲学4条哲学原理 : 让困于人5条哲学原理 :

27、 留有余地6条哲学原理 : 子虚乌有海市蜃7条哲学原理 : 时空转换沧海桑8条哲学原理 : 策机分离与权利分离9条哲学原理 : 简单为美求于10条哲学原理 : 适可而止结语6推荐指数推荐同行阅读指数:(注:以为最高。)邹恒明博士 ( 图 2), 美国密歇根大学 (University ofMichigan-Ann Arbor) 计算机科学与工程博士、中国科学院计算 技术研究所计算机科学硕士、 华中科技大学计算机科学与工程学 士。曾先后在美国IBM、美国国家数据公司、美国朗讯、美国AT&T 贝尔实验室、美国EMC公司工作8年多。参与了 EMC公司的 Engenity存储操作系统和IBM的AIX操

28、作系统的设计与开发,并 为多家跨国公司设计过 (信息)灾难恢复解决方案。 2003 年归 国 ,2003 年 10 月加入上海交通大学 , 为学科带头人和高可靠软件 实验室负责人。 研究领域为高可靠软件设计理论、 高可用信息系 统理论、安全存储技术。 目前开设的课程有操作系统、 数据结构、 计算机组成与系统、数据库系统、算法设计与分析、高可靠软件 工程、信息灾难及灾难应对和科技英语。 专注于高可靠软件设计 基准模型、 安全自备份数据存储系统、 虚拟机信息攻防战和信息 盾技术的研究。邹恒明8 后记笔者认为 , 对一般人来说 , 操作系统之哲学原理 这本书读 起来还是很累的 , 作者在书中处处彰显其丰富的知识和跳跃的思 维, 牵动或者说拖拽着读者。 有能力的甚至会“爱不释手” ; 不喜 欢的则会感觉到“疲于奔命”。毫无疑问 , 对操作系统原理的认识和理解程度 , 是计算机专 业人士和计算机应用人员之间的一道分水岭。因此 , 对于希望更 为生动地教授本课程的教师 , 对于正在学习并希望真正掌握操作 系统原理的学生来说 , 认真阅读本书无疑是十分有益的。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2