操作系统结构设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《操作系统结构设计课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 结构设计 课件
- 资源描述:
-
1、第十四章操作系统结构设计第十四章操作系统结构设计14.1 14.1 操作系统设计概述操作系统设计概述14.2 14.2 传统结构的操作系统传统结构的操作系统14.3 14.3 面向对象的程序设计面向对象的程序设计 14.4 14.4 微内核微内核OSOS结构结构14.5 Windows 200014.5 Windows 2000的体系结构的体系结构14.1 14.1 操作系统设计操作系统设计概述概述第十四章操作系统结构设计第十四章操作系统结构设计14.1 操作系统设计概述 1. 1.操作系统设计面临的困难操作系统设计面临的困难 系统庞大:系统庞大:难于理解,无法保证OS是最优化的。 系统存在并
2、发情况:系统存在并发情况:多个进程(含线程)的并发执行,提高了系统的效率,但给OS的设计带来许多困难。 能在不同的硬件平台上运行:能在不同的硬件平台上运行:OS应具有很好的可移植性,但其解决会涉及到因机器的不同而异的硬件情况。 能适应计算机硬件不断地更新换代:能适应计算机硬件不断地更新换代:OS必须具有很好的可适应性,以适应新产品和更新换代产品不断地推出、应用的需求的迅速变化。 防止用户的不当行为:防止用户的不当行为: OS必须能防范怀有敌意用户的破坏和盗窃系统中的文件和数据,防止他们有意干扰系统中其他用户的正常运行。 兼容以前的操作系统兼容以前的操作系统: :为了保证在老版本环境下开发出的软
3、件,在新OS环境下也能很好地运行,新的OS版本也应当具有很好的对老版本的兼容性。 2.OS 2.OS的设计目标的设计目标 完善的功能完善的功能:OS所具备的功能,取决于其运行的平台和环境,以及应用的需求。 高效性:高效性:OS的高效性:在OS中引入多道程序运行机制,提高系统中各种资源的利用率;在运行时间的分配方面,应该是用于运行用户程序的时间尽可能多,而用于系统管理的时间尽可能地减少。 可靠性:可靠性:能保证处理结果的正确性;OS的运行的可靠性。 安全性:安全性:OS的安全性是整个系统的基础。在设计OS时,应设置多道防线,以确保OS的安全性能达到“可信任计算机系统评价标准(TCSEC)”的C2
4、级或更高。 “可移植性可移植性”和和“可适应性可适应性”:为了使OS能方便的运行在各种硬件平台上,应使OS具有可移植性。在设计OS时,应使与硬件有关的部分相对独立,并放在紧靠近硬件的位置。 14.1 操作系统设计概述 3 3. OS. OS结构设计简介结构设计简介 用工程化的方法对操作系统进行开发用工程化的方法对操作系统进行开发 早期OS的规模很小,OS是否是有结构的并不那么重要。 但随着OS规模的愈来愈大,应采用工程化的开发方法来进行开发。 软件工程的目标:所开发出的软件产品应具有良好的软件质量和合理的费用。 软件质量的评价指标:功能性、有效性、可靠性、易使用性、可维护性和易移植性等。 软件
5、开发方法:模块化、结构化、面向数据结构、面向对象的方法等。 利用不同的开发方法,所开发出的操作系统将具有不同的操作系统结构。14.1 操作系统设计概述 几种主要的操作系统结构几种主要的操作系统结构 OSOS结构:结构:系统中各部分程序的存在方式及其相互联系; 当前主要存在的操作系统结构:当前主要存在的操作系统结构: 无结构:无结构:如果OS中各部分,是以最基本的过程形式存在,而且,每个过程都可随意地调用其它过程; 模块化:模块化:对OS中各部分经过精心的划分和组合,形成若干个相对独立的模块,并为模块间定义了良好的接口; 分层式:分层式:按模块间的调用顺序,对模块进行分层,在各层之间只存在单向的
6、依赖关系; 微内核:微内核:人们集模块化结构、层次式结构、客户/服务器模式和面向对象技术之长,推出的一种崭新的OS结构。该OS结构已成为现代OS的主要结构。14.1 操作系统设计概述 结构设计的作用结构设计的作用 为了实现OS的正确性、可维护性、可适应性、可移植性等设计目标,必须经过功能设计、算法设计和结构设计三个阶段。 结构设计具有独特的不可被替代的作用; 模块化结构能较好地保证正确性; 具有模块化结构的OS,有助于提高系统的“可适应性”和“可移植性”; 分层式结构比模块化结构能更好的保证操作系统设计目标的实现; 微内核OS结构,又比分层式结构能更好,也更容易地保证操作系统设计目标的实现;
7、返回14.1 操作系统设计概述14.2 14.2 传统结构的操作系统传统结构的操作系统第十四章操作系统结构设计第十四章操作系统结构设计14.2 传统结构的操作系统传统结构的操作系统传统结构的操作系统第一代:早期的无结构操作系统第二代:模块化结构的操作系统第三代:分层式结构的操作系统现代结构的现代结构的OSOS微内核结构的OS 1. 1.无结构操作系统(整体系统结构)无结构操作系统(整体系统结构) OS并不存在任何结构,只是庞大的一组过程的集合,每个过程可以任意地相互调用其它过程,致使操作系统内部既复杂又混乱。 设计者注重实现功能和高效率,缺乏首尾一致的设计思想。 程序设计的技巧,表现在如何编制
8、紧凑的程序,以便于有效地利用内存。 随着系统的不断扩大,由于缺乏清晰的程序结构,一方面会使所编制出的程序错误很多,给调试工作带来很多困难,另一方面也使程序难以阅读和理解,增加了维护人员的负担。14.2 传统结构的操作系统 2. 2. 模块化结构模块化结构OSOS 模块化程序设计技术的基本概念 基于“分解”和“模块化”原则,对大型软件的复杂度进行控制。 将OS按其功能,精心地划分为若干个具有一定独立性和大小的模块,每个模块具有某方面的管理功能,并仔细地规定好各模块间的接口,使各模块之间能通过该接口实现交互,然后再进一步多次细分各模块为子模块,孙模块,。 这种设计方法称为模块-接口法,由此所构成的
9、就是具有模块化结构的操作系统。14.2 传统结构的操作系统2. 模块化结构OS 模块独立性模块独立性 在模块接口法设计方法中,关键问题在于模块的划分和模块之间接口的规定。 模块内部的复杂性,以及模块间交互的复杂性,决定了操作系统的复杂性。 在划分模块时: 模块划分的过小,虽然可以降低模块本身的复杂性,但会引起模块之间的联系过多,从而造成系统比较混乱; 模块划分的过大,会增加模块内部的复杂性,使内部的联系增加。 在划分模块时,应在两者间进行权衡。2. 模块化结构OS 衡量模块的独立性有以下两个标准: 内聚性内聚性 指模块内部各部分间联系的紧密程度。内聚性越高,模块独立性越强。 根据模块的内聚性,
10、又可把模块分为五类: 逻辑内聚模块:由若干个相关或相似的“处理”聚合成一个模块,即该模块实现一组逻辑相关的任务; 时间内聚模块:由若干个“处理”时间相同的任务,聚合成一个模块; 过程内聚模块:由若干个相关,且必须按一定逻辑顺序处理的任务,聚合成一个模块; 数据内聚模块:由若干个具有基于相同数据结构的“处理”聚合成一个模块; 功能内聚模块:为实现特定单一任务而构成的模块。 以按功能内聚所形成模块的内聚性为最好,数据内聚模块次之。2. 模块化结构OS 耦合度耦合度 指模块间相互联系和相互影响的程度。 耦合可分为以下三种: 数据耦合:模块间只存在明显的数据传送关系,即模块之间是通过调用关系传递被处理
11、的数据; 控制耦合:模块之间通过调用关系不仅传递被处理的数据,而且还传递对运行有影响的控制信息; 非法耦合:模块间彼此直接使用或修改对方的数据。 上述中的第一种的耦合度较低,应减少第二种耦合,而不允许出现第三种耦合。 模块接口法的优缺点模块接口法的优缺点 模块接口法的优点:模块接口法的优点: 提高OS设计的正确性、可理解性和可维护性。 增强OS的可适应性。 加速OS的开发过程。 模块化结构设计存在的问题:模块化结构设计存在的问题: 接口规定困难。 无序性。14.2 传统结构的操作系统 3. 3.分层式结构分层式结构OS OS 为了将模块接口法中“决定顺序”的无序性变为有序性,引入了有序分层法。
12、 分层法的设计任务是,在裸机系统(又称宿主系统)A0和目标系统An和之间,铺设若干个层次A1,A2,A3,An-1,使An通过A1,A2,A3,.层,最终能在A0上运行。14.2 传统结构的操作系统3.分层式结构OS 铺设这些中间层的方法有以下两种: 自底向上的分层自底向上的分层 基本原则:每一步设计都是建立在可靠的基础上。 基本概念:在用这种方法构成的操作系统时,将一个操作系统分为若干个层次,每层又由若干个模块组成,各层之间只存在着单向的依赖关系,即高层仅依赖于紧邻它的低层。例如: 在调试第一层软件A1时,由于它使用的是一个完全确定的物理机器(宿主系统)所提供的功能,在对第1层A1软件经过精
13、心设计和几乎是穷尽无遗的测试后,可以认为A1是正确的,而且它将与其所有的高层软件A2,.,An无关; 在调试第二层软件A2时,它也只使用了软件A1和物理机器所提供的功能,而与其高层软件A3,.,An无关,如此一层一层地自底向上增添软件层,每一层都实现若干功能,最后总能构成一个能满足需要的OS。 3.分层式结构OS 自顶向下的分层自顶向下的分层 基本概念:基本概念: 从顶层的目标系统An(总体功能模块)出发,向下通过若干层,最后过渡到宿主系统A0。 为实现An,对An进行第一次细化,由此形成虚机器An-1; 由于An-1只是关于模块的描述,它无法在物理机器上运行,故需对An_1的功能进一步细化,
14、利用更多的子模块来实现An_1功能,由此形成虚机器An-2; An-2仍然只是有关子模块的描述而无法运行,需再对An-2进行细化,如此形成An-3,An-4,.,直至产生能在物理机器上运行的程序,即虚机器A1。 自顶向下分层法的实质是,对目标系统的逐步求精。3.分层式结构OS 层次的设置层次的设置 一个操作系统应分为几个层次,每个层次具有什么功能,各层间的顺序应如何确定,是层次式结构设计的关键问题。下面列出了在对OS做分层结构设计时,应如何进行分层所必须考虑的几个因素: 程序嵌套:OS层次时,首先需要考虑,将在实现OS每个功能时所形成的程序嵌套模块,排成有序层次;或者按进程间单向发送信息的顺序
15、来分层。 可移植性:将那些与硬件紧密相关的软件,放在最低层,使其紧靠着硬件。 运行频率;将那些经常活跃的模块放在最接近硬件的A1层。 公用模块:把供多种管理程序调用的公用模块,设置在最低层或次低层。 用户接口:用户与OS的接口都应设置在操作系统的最高层,直接提供给用户使用。 在虚拟存储器环境下,应将存储器管理模块设置在较低的层次中,如A2层。 在一般情况下,一个操作系统按照层次结构的原则,从底向上可以被安排为:裸机、与硬件紧密相关的功能、进程和线程的管理、内存管理、设备管理、文裸机、与硬件紧密相关的功能、进程和线程的管理、内存管理、设备管理、文件管理、作业管理和命令管理,最上面是用户。件管理、
16、作业管理和命令管理,最上面是用户。 3.分层式结构OS 分层结构的优缺点分层结构的优缺点 易保证系统的正确性。易保证系统的正确性。由于把一个大型操作系统,按照一定的原则,分为若干个功能较为单一的模块,再进一步将这些模块,按一定的规则,组织成层次结构,并使之具有单向依赖关系,这样就形成了上一层功能是下一层功能的扩充或延伸,下一层功能为上一层功能提供了支撑和基础,使整个系统中的接口少而清晰。采取自下而上的设计方式,使所有设计中的决定都是有序的,或者说是建立在较为可靠基础上的,这样,就比较容易保证整个系统的正确性。 易扩充和易维护性。易扩充和易维护性。在系统中增加、修改或替换一个层次中的模块或整个层
17、次,只要不改变相应层次间的接口,就不会影响其他层次,这必将使系统维护和扩充变得更加容易。 系统效率降低。系统效率降低。分层结构也存在某些问题,由于层次结构是分层单向依赖的,必须在每层之间都要建立层次间的通信机制,特别是当系统较大、所设层次较多时,OS每执行一个功能,通常要自上而下地穿越多个层次,这无疑会增加系统的通信开销,从而导致系统效率的降低。3.分层式结构OS 层次间的调用方式层次间的调用方式 在严格的层次结构中,只允许高层中的程序调用低层中的程序,其调用方式可有以下三种: AiAi层次仅能调用层次仅能调用Ai-1Ai-1层中的程序。层中的程序。由Ai-1层提供的功能将形成Ai层的全部基础
18、。Ai层只能调用Ai-1层中的程序,而不能调用Ai-2,Ai-3,A1层中的程序。 AiAi层能调用所有低层中的程序。层能调用所有低层中的程序。Ai层能直接调用其下面各层所提供的命令,无须逐层传送。 AiAi层能调用部分低层中的程序层能调用部分低层中的程序。这是上述两种方法的一种折衷。例如,除允许Ai层调用Ai-1层中的程序外,还允许它调用A1层中的许多公用程序,这样,Ai层仍是与Ai-2,A2层隔离的。14.3 14.3 面向对象的程序设计面向对象的程序设计 第十四章操作系统结构设计第十四章操作系统结构设计14.3 面向对象的程序设计 1.1.面向对象技术的引入面向对象技术的引入 传统的设计
19、方式的缺陷传统的设计方式的缺陷 在利用面向过程的程序设计技术设计操作系统时,首先要为系统中各种硬件和软件资源,设计出相应的数据结构和一组程序。对于系统中的共享资源,会有许多程序访问用以描述该资源的数据结构。在这些程序中,如果任何一个程序操作出现了错误,就可能造成该数据结构出错,此错误将会影响到另一个访问它的程序,并会在系统中不断扩大,直至整个系统。 采用模块化结构和层次化结构技术设计操作系统时,虽可使发生错误的机会减少,但终难避免。一旦发生错误,该错误会通过模块以及层次之间数据的流动,从而进一步影响到其它模块和层次,同样可能导致整个系统的破坏。 在系统中采用了大量的全局性变量,会很容易被人查看
20、和修改,使系统的安全性受到威胁。 解决方法解决方法 引入类和对象的概念。在操作系统中,所谓“类”是指,为一个非共享资源定义一个数据结构,以及作用在该数据结构上的一组操作等,并将它们封装起来,称之为“类程”。并规定,在类程中的数据结构,只能被该类程内的一组过程访问,其它进程要想访问该类程中的数据,必需通过该类程方能进行。这样,在类程中的数据,也就能得到很好的保护。 2.2.面向对象技术的基本概念面向对象技术的基本概念 对象对象 在面向对象的技术中,是利用被封装的数据结构(变量),和一组对它进行操作的过程(方法),来表示系统中的某个对象的。 对象类对象类 对一组大体相似的对象进行定义。一个类,定义
21、了一组变量和针对该变量的一组方法,用它们来描述一组对象的共同属性和行为。在一般情况下,类中的变量没有具体的值,而只是一个数据结构框架。类是在对象上的抽象,对象则是类的实例。对象类中所定义的变量在实例中均有具体的值。 继承继承 可以根据已有类,定义一个新的类。新类被称为子类,原来的类被称为父类。子类自动继承父类中定义的变量和方法,并允许子类再增加新的内容。 一个父类可以定义多个子类,一个子类有两个父类或多个父类,它可以从多个父类获得继承,此时称为“多重继承”。 多态性多态性 不同对象在收到同一消息后,可以产生完全不同的结果。多态性是一个非常有用的特性,它允许用户发送一通用的消息,而消息的实现细节
22、,则由接收对象自己决定。这样,同一消息就可以调用不同的方法;或者说,多态性可使不同的实现细节,隐藏在不同的接口之下。14.3 面向对象的程序设计 3.3.面向对象技术的优点面向对象技术的优点 通过通过“重用重用”提高产品质量和生产率提高产品质量和生产率 通过“重用”的方法,利用以前项目中经过精心测试的对象,或由其他人编写、测试和维护的对象类,来构建新的系统,这不仅可大大降低开发成本,而且能获得更好的系统质量。 使系统具有更好的易修改性和易扩展性使系统具有更好的易修改性和易扩展性 通过封装,可隐蔽对象中的变量和方法,当改变对象中的变量和方法时,不会影响到其它部分,从而可方便地修改老的对象类。 通
23、过利用继承特性, 在创建一个新对象类时,可显著减少开发的时空开销,使系统具有更好的易扩展性和灵活性。 更易于保证系统的更易于保证系统的“正确性正确性”和和“可靠性可靠性” 对象是构成操作系统的基本单元,由于可以独立地对其进行测试,易于保证每个对象的正确性和可靠性,比较容易保证整个系统的正确性和可靠性。 封装对对象类中的信息进行了隐蔽,这样又可有效地防止未经授权者的访问和用户不正确的使用,有助于构建更为安全的系统。返回14.3 面向对象的程序设计 14.4 14.4 微内核微内核OSOS结构结构第十四章操作系统结构设计第十四章操作系统结构设计14.4 微内核OS结构 1. 1.微内核微内核OSO
24、S的基本概念的基本概念 足够小的内核足够小的内核 微内核并非是一个完整的OS,而只是放入操作系统中最基本的部分,是经过精心设计的、能实现现代OS最基本核心功能的小型内核。 它与一般的OS(程序)不同,它更小更精炼,不仅运行在核心态,而且开机后常驻内存,它不会因内存紧张而被换出内存。 基于客户基于客户/ /服务器模式服务器模式 将操作系统中最基本的部分,放入微内核中,而把操作系统的绝大部分功能,都放在微内核外面的一组服务器(进程)中实现,所有这些服务器,都属于操作系统的一部分,并作为进程来实现的,但它们都运行在用户态。 应用应用“机制和策略分离机制和策略分离”原理原理 在现在操作系统的结构设计中
25、,经常利用“机制与策略”分离的原理,来构造OS结构。 机制:机制:是指在实现某一功能时的具体规定或说原则。 策略:策略:是在机制的基础上,借助于某些参数和算法,用以实现该功能的优化,或达到不同的功能目标。 在传统的OS中,将机制放在OS的内核的较低层,把策略放在内核的较高层次中。 在微内操作系统中,通常将机制放在OS的微内核中。正因如此,才有可能将内核做的很小。 采用面向对象技术采用面向对象技术 操作系统是一个极其复杂的大型软件系统,我们不仅可以通过结构设计,分解操作系统的复杂度;还可以基于面向对象技术中的“抽象”和“隐蔽”原则,控制系统的复杂性;再进一步利用“对象”、“封装”和“继承”等概念
展开阅读全文