操作系统结构和程序设计

上传人:jian****019 文档编号:246625683 上传时间:2024-10-15 格式:PPT 页数:32 大小:210.49KB
返回 下载 相关 举报
操作系统结构和程序设计_第1页
第1页 / 共32页
操作系统结构和程序设计_第2页
第2页 / 共32页
操作系统结构和程序设计_第3页
第3页 / 共32页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,*,*,*,单击此处编辑母版文本样式,第二层,第三层,第四层,第五层,单击此处编辑母版标题样式,操作系统,结构和程序设计,数学与计算机学院,硬件教研室,操作系统编程的发展,在九十年代以前,程序员的精力集中于,完成任务,的过程,而不是用户与该过程的,交互方式,,过去评价一个软件的好坏往往是注意,源程序的短小精悍和执行的快速性,。快速的、清晰的编程是许多程序员努力要达到的理想境界。Windows操作系统将用户与计算机的交互方式的设计(即人机界面设计)放到了非常重要的位置。同时,Windows为不同形式的,高层次交互,提供了相应的机制:应用程序之间、操作系统和应用程序之间、公共的共享代码库和数据库之间。,编程语言简史,机器语言:,以二进制代码“0”、“1”组成的机器指令集合;,汇编(Assembler)语言:,以助记符表示机器指令功能,例如,JOVIAL、forth;,高级语言:,接近人类语言(英语)和数学语言的计算机语言,例如,BASIC、FORTRAN、Pascal、C、FoxBASE、ORACLE等;,进程(Process)概念,:例如,UNIX Shell、TCL、PERL和Marvel等;,面向对象的语言,:例如C+、Visual BASIC、java等;,新范例计算机语言,:例如ML、Smalltalk、Eiffel等;,不同应用领域的计算机语言,科学研究:,例如:FORTRAN、ALGOL、BASIC、APL、Pascal、C、C+、AUTOCAD等;,商业:,例如:COBOL、C、PL/I、4GLs、和spreadsheet等;,系统:,例如:Assembler、JOVIAL、Forth、C、C+、Ada、java等;,出版:,例如:TeX、Postscript、word、WPS、和processing等;,人工智能(AI,artificial intelligence):,例如:LISP、SNOBOL和Prolog等。,结构设计的目标,计算机操作系统一般都有两种运行状态,即,用户态(user mode),和,核心态(kernel mode),。计算机操作系统的结构设计一般包括,内结构,和,外结构,两种结构。传统操作系统内结构是指内部程序模块的层次结构,每一层由若干数量不等的程序模块组成。例如,早期的UNIX操作系统版本,如图所示。,结构设计的目标,作业管理,文件管理,设备管理,进程控制和通讯,存储管理,中断处理、进程调度和P、V操作等,图 传统计算机操作系统的内结构(层次结构),结构设计的目标,当计算机操作系统内的程序模块运行时,机器处于,核心态,,其它程序运行时,机器处于,用户态,,包括操作系统以外的其它系统程序与用户程序一样,都是运行在用户态下而不是运行在核心态下,而可以统称为,用户态程序,,因而用户程序仅是用户态程序中的一部分。,区分用户态和核心态两种运行状态,其目的是使操作系统有一定的特权,使系统运行比较安全可靠,。,设计目标,正确性:,实现功能的正确性;,安全可靠性:,系统工作稳定,不容易被破坏,特别是用户的不正常工作状态不致影响系统垮台;,可扩充性和可移植性:,能适应较大范围工作的运行环境、硬件平台的要求;,易维护性:,系统具有的自动修补能力强。,分层原则,1、层次设计方法从两个不同方向进行:,1),自底向上,:底层裸机经某种软件层的扩充形成最终目标系统即宿主系统(操作系统),由底层(0层)扩展到N层顶端。例如,早期是先有微机硬件,再设计合适的操作系统。,2),自顶向下,:已知目标N层用户要求,逐级向下进行设计。例如,Windows的图形控制界面。,分层原则,2、各层间仅有单向依赖关系,层间独立,结构清晰易懂。,一般是,有序分层法,,例如,上层能调用下层,下层不能调用上层;外层能调用内层,内层不能调用外层,避免产生环路等。其中又可分为:,1)半序:允许同一层互相调用。,2)全序:不允许同一层内互相调用。,分块原则,1、分块原则,一般按,功能,分块,形成简单的相对独立模块,所编写的程序模块接口应有比较明确的通讯规则,模块间形成转接、相互依赖甚至循环。,2、进程的观点,用,进程,的观点进行操作系统设计是继,中断,概念后的又一重大突破,也就是计算机在执行时不是以一条一条的指令为单元执行,而是以一组特殊指令执行。,分块原则,3、模块及模块化程序设计,1)模块及模块化,模块化是为了获得使用上的,灵活性,和,多样性,,是采用标准的可兼容的单元构成系统的一种方法。,2)模块化程序设计,模块化程序设计是把一个大的软件系统划分为若干部分,使各部分之间的交往最少,且各自成为具有一定独立功能的程序模块,然后可以对系统中每一部分单独进行设计。,分块原则,4、模块化程序设计的目的,1)使人们确信程序模块的,正确性,,才能保证所构成的大型软件系统的正确性;,2)各模块尽可能具有较大的,独立性,,以便能方便地把不同场合下写成的程序模块组合成软件系统。,5、模块的两个属性和概念,1)模块程序是相关过程的集合,通常可用树状控制流程来描述;,2)每个模块可以由它的,输入链路,接受数据,并以某种方式变换它,把所得的结果经由它的,输出链路,发送到其它模块。,模块接口法的设计步骤,1、按照结构设计的原则,把一个大型软件系统,分成若干个具有一定独立性和大小的模块,每个模块可以解决一部分问题或可实现某种功能,并规定好模块之间的接口。这一步称为系统总体设计。,2、进一步明确模块每个模块的内部功能。当模块较大时,同样又可将它进一步细分为若干个子模块。,3、当所有的子模块被设计出来后,按照它们的接口关系,把子模块链接在一起组成一个大模块,再链接这些大模块便构成软件系统。,模块接口法的优缺点,1、模块接口法的优点,模块接口法设计方法与非结构设计方法比较,有如下一些优点:,1)加速了操作系统的研制过程;,2)促进操作系统的日益完善;,3)增加操作系统的灵活性。,2、模块接口法的缺点,1,)很难保证模块设计的正确性;,2,)装配的困难性;,3,)模块相对独立性差。,层次模块化结构设计的必要性,1、结构程序设计的定义,所谓结构程序设计是指为了使程序具有一合理结构,以便于保证和验证其正确性而规定的一套程序设计方法,或者说是“,按照一组能增强程序的可阅读性与可维护性的规则而进行程序设计的方法,”。用这种方法所设计的程序称为结构化程序。,2、结构程序设计所包含的内容,1,)结构码;,2,)逐步求精的设计方法;,3,)模块接口法;,4,)有序分层法;,5,)基于进程和线程等的结构设计。,操作系统的结构模型,1、层次模型(layered modularization),层次模块模型包含,模块(相对独立)化,和,模块间接口定义,。系统通常按功能划分成一些模块,有时模块很小,进一步按由下而上的顺序从硬件层向上组织在若干层次上或自顶向下地组织。,操作系统的结构模型,2、整体内核模型(monolithic kernel),内核(,功能化的大模块,内部无进程层,)强调操作系统对外的整体性和友好界面。并不追求严格的模块化和层次化。通常内核在处理机的核心状态下运行,具备各种特权,而外层用户程序运行于用户状态。当用户程序请求操作系统服务时,必须通过相应的“访管”或“捕获”指令转入核心态,处理之后再返回用户态。,UNIX内核为无序模块结构,模块间无层次概念,允许任意调用,。核心虽无进程概念,但它负责中断处理、进程生灭、进程调度和进程通讯,从而在核心以上提供了进程的运行环境。,操作系统的结构模型,3、进程模型(process-model),系统的基本模块为进程(一个独立的控制流),进程这个概念是对控制流的一种抽象,因此,这种模型具有,良好的并发性,。除核心以外,操作系统的其它功能都是选择若干进程完成的。,操作系统的结构模型,4、对象模型(object model),面向对象范型(objectoriented paradigm)是以对客观世界自然的抽象为基础设计。,对象(object)是对客观事物的抽象,。每个对象由,界面,和,实体,两部分组成,,界面规定其引入引出部分,实体定义状态和操作的具体实现。,操作系统的结构设计,1)总体设计,设计人员要把注意力集中在全局性问题上,即系统的功能设计和结构设计。,功能设计是确定系统应具有的功能和实现该功能所采取的策略。,以前的操作系统大都采用传统的模块接口法,近年来有序分层法已开始流行起来,最近又提出具有吸引力的、基于线程的结构设计方法。,操作系统的结构设计,2)逐步求精,在确定操作系统的结构后,便可采用逐步求精的结构程序设计方法来进行程序设计。这方法要求从每个问题的全局出发,逐步精细化、具体化。直到成为一可在机器上执行的程序。具体地说,首先把程序在逻辑上分解为若干子结构,对子结构进行描述,并确定相应的数据基,然后再把子结构进行分为更小的结构,对它进行更细微的描述。该过程一直继续下去,直至构成我们所需要的程序。,操作系统的结构设计,3)结构码,在逐步求精时,应采用单一入口和单一出口的结构码来构成程序。事实上,只要有下述三种类型的结构码,即可构成任何程序的全部流程图。,(a)序列结构码,它是完全由序列语句串在一起构成的,一个复杂的序列结构可分解为多个较简单的序列结构,如:当过程A结束后,一定执行过程B。,(b)条件结构码(ifthenelse和ifthen),它是由一个判定语句和两个序列语句构成,其中“条件”是布尔表达式。,(c)重复性结构码(whiledo;repeatuntil等),用于循环控制,有序分层法的类型,有序分层法是在模块接口法的基础上,将模块安置在高低不同的层次中,自底向上或子顶向下进行设计和调试,从而把模块间复杂的依赖关系改为,单向依赖关系,,把设计决定的无序性该为,有序性,,从而使设计具有可靠的基础。有序分层结构可分为三种类型:,1,)线性有序分层结构;,2,)部分有序分层结构;,3,)树状分层结构。,操作系统的分层原则,1)按程序的嵌套情况排成有序的层次;,2)把活动频繁的模块和为很多模块所公用的模块放在最低软件层,存储器管理模块设置在较低软件层;,3)为获得可移植性和可适应性而设置的软件层,应分别放在较低的层次和最外层。,高层调用底层软件的方法,在严格的层次结构中,,只允许高层调用底层中的软件,决不允许底层调用高层的软件。,在高层调用底层软件的方法有:,1,)高层仅能调用它的下一层中的软件;,2,)高层能调用所有底层的软件;,3,)高层能部分地调用底层中的软件。,微内核(micro-kernel)结构的概念,在层次化结构中,大部分的功能在“内核”中执行。随着功能的扩展,内核逐渐扩大,层次间调用设计大大影响了操作系统设计,功能的扩充、移植、规模的伸缩和安全性等方面出现很多困难。因此产生了微内核结构,,只把最基本的操作系统核心功能放在内核中,而把不是最基本功能的服务放在微内核之上,,在用户模式中执行。层次内核和微内核的结构如图,微内核(micro-kernel)结构的概念,用户,文件系统,进程通信,设备管理,进程管理,硬件,微内核,硬件,客户端进程,设备驱动,文件服务,进程服务,虚拟存储,(A)层次内核,(B)微内核,图 内核结构示意图,微内核结构的特点,微内核技术在概念、结构、功能和实现等方面都与以往的操作系统实现有很大的区别。引入了许多成熟的技术,例如:客户/服务器(client/server)结构、面向对象技术、对称多处理(symmetric multiprocessing,SMP)等新技术日益实用化。一般地,内核分为,微内核,与,服务器,两个层次,微内核提供各种操作系统的公共基础,由服务器提供各种操作系统的子系统以及用户界面。,微内核的基本功能,微内核的基本功能又称为本质功能,这些基本功能包括内进程通讯(inter-process communination,IPC)、虚拟存储(virtual memory,VM)、任务(tasks)、线程(t
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!