设计操作系统以及结构化操作系统需要克服哪些难题呢?

第五节 操作系统设计

操作系统设计过程中,主要遇到的问题是: 设计复杂程度高、正确性难以保证和研发周期长等问题

1、复杂程度高

复杂程度主要表现在程序长,有的功能模块包含数百万条指令;接口信息多,各个组成部分之间的信息交换很多,而且错综复杂;动态性强,程序本身包含较多动态部分;并行性强,不同部分之间可以同时操作。

2、正确性难以保证

操作系统包含的功能成分很多,各种外部设备的接口复杂,导致操作系统源代码的正确性难以保证

操作系统是大型软件,参与开发的人员的基数也较大,这样也加大了保证整个软件的正确性的难度

解决这一问题的途径就是发展良好的操作系统结构,采用先进的开发技术、工程化的管理方法,并使用高效的开发工具

3、研发周期长

软件开发周期一般包括: 需求分析, 用户提供软件需求,并根据需求制作软件规格说明书;软件设计者根据软件规格说明书进行软件设计;实现者编写程序、调试、测试并整理各种开发文档,然后提交给用户使用。

一、操作系统的设计过程

操作系统的设计过程分为三个部分:功能设计、算法设计和结构设计

1、功能设计

功能设计指的是根据系统的设计目标和使用要求,确定所设计的操作系统应具备哪些功能以及操作系统的类型

2、算法设计

算法设计是根据计算机的性能和操作系统的功能,来选择和设计满足系统功能的算法和策略,并分析和估算其效能。

3、结构设计

结构设计则是按照系统的功能和特性要求,选择合适的结构,使用相应的结构设计方法将系统逐步地分解、抽象和综合,使操作系统结构清晰、简明、可靠、易读、易修改,而且使用方便,适应性强。

二、操作系统的设计目标

一个高质量的操作系统应该具备可靠性、高效性、易维护性、易移植性、安全性和简明性等特征。

1、可靠性

可靠性包括正确性和健壮性两个方面的含义。

影响操作系统可靠性的因素: 并发、共享以及随之而来的不确定性。并发使得系统中的各条指令流的执行次序可以任意交叉;而共享导致进程对系统资源的竞争,使得不同指令执行序列之间产生直接或者间接的相互制约。所以操作系统要求正确性。

在发生硬件故障或某种意外的环境下,操作系统应该仍然可以做出适当的处理,避免严重损失,这就是对操作系统的健壮性或鲁棒性的要求。

2、高效性

操作系统的重要目标是提高操作系统中各个资源的利用率,即提高系统的运行效率

3、易维护性

易维护性包括易读性、易扩充性、易剪裁性、易修改性等含义。为了方便对操作系统实施增删改查等维护操作,这要求操作系统具有良好的可读性,其他的有关的性能也是显而易见的。

4、可移植性

可移植性是指,把一个程序系统从一个计算机系统环境中移到另一个计算机科学与技术的系统环境中,并能够正常运行的特性

5、安全性

操作系统的安全性是整个计算机系统安全性的基础,它为保护用户的程序和数据提供了最基本的安全机制。

6、简明性

如果一个操作系统没有简明性,那么该操作系统的设计和开发人员在工作中就很难清晰地了解和掌握该操作系统的设计。而如果一个操作系统缺乏简明性,那么在系统的修改和维护过程中,将会产生许多意想不到的困难。

三、操作系统的结构设计

结构是构成一个事务内部的各种基本成份以及这些基本成份之间的关系。

软件结构研究的对象主要是组成软件的各个部分划分的原则以及他们之间的关系。

1、操作系统结构设计的重要性

2、操作系统结构研究的目标

(1)系统模块化

模块可以看作一组数据结构以及定义在这组数据结构上的一组操作。对模块的操作只能通过这些操作来完成,这称之为信息隐蔽。模块具有并发性,这些操作也将要互斥地来执行。

具体来讲,模块内的操作的对象就是模块内的数据结构。

目前的计算机语言大都是模块化,它们反映了程序和数据的局部化,强调了功能对实现的抽象,模块的调用者只需要知道模块的功能,而不需要知道模块的实现细节

(2)模块标准化

模块标准化指两方面的内容:一是标准设计,做到模块规格划一,遵循相同的模块构造准则符合一定的模块标准;二是需要总结、提炼操作系统的基本成份,然后把这些基本成份定型化,模块化,即把反应操作系统本质的一些程序成份固定下来变成“标准件”、“构件”或者说构件操作系统的“积木”。

(3)通信规范化

通讯规范化主要是指模块之间的接口应该清晰划一,模块的联系方式要统一,这是标准化的一种方式

通信的规范化表明系统各个并行的模块之间的通讯联系只通过数目有限的原语来实现。

四 、操作系统的结构

常见的操作系统有整体式结构、层次性结构、微内核(客户/服务器)结构

1、整体式结构

首先确定操作系统的总体功能,然后将总功能分解为若干个子功能,实现每个子功能的程序称之为模块。再按照功能将上述每个大模块分为若干个小模块,如此下去,直到每个模块仅包含单一功能或紧密联系的小功能为止,即分解为最基本的模块为止。最后通过接口将所有模块连接起来形成一个整体。

整体式结构的优点: 结构紧密、接口简单直接,系统效率较高

模块组合法中,系统中的模块不是根据程序和数据本身的特性而是根据它们完成的功能来划分,数据基本上作为全程量来使用。在系统内不同模块之间可以不加控制地互相调用和转移,信息的传递方式也可以根据需要随意约定,因而可能造成模块间的循环调用

模块组合法的缺点:

(1)模块间转接随意,各模块间相互牵连,独立性差,系统结构不清晰

(2)数据基本上作为全程量处理,系统内的所有模块的任一程序均可对其进行存取和修改,从而造成各模块间有着更隐蔽的关系。更换或修改一个模块比较复杂

(3)由于模块组合结构常以大型表格为中心,为保证数据完整性,往往采用全局封中断办法,从而限制系统的并发性

2、层次式结构

层次式结构,减少各个模块之间毫无规格地互相调用、相互依赖的关系,特别是循环调用现象。层次式结构使模块间的调用从无序性变成有序性。

在层次结构的操作系统中,若各层之间的调用都是单向调用,而且每一层中的同层模块之间不存在相互调用的关系,则称这种层次结构关系为全序的层次关系。

层次结构法的优点:

(1)把复杂的整体问题分解成若干个比较简单的相对独立的成份。,即把整体问题局部化

(2)各个模块之间的组织结构和依赖关系清晰明了,增加了系统的可读性和可适应性。

(3)对操作系统增加或者替换掉一层而不影响其他层次,层次结构法具有易于调试、易于修改、易于扩充、易于维护、易于保证正确性。

层次结构法的分层的原则:

(1)为了增加操作系统的可适应性,并方便于将操作系统移植到其他机器上,必须把与机器特点紧密联系的软件(中断处理、输入输出处理)放在紧靠硬件的最底层。

(2)计算机系统往往具有多种操作方式,为了便于操作系统从一种操作方式转变到另外一种操作方式,通常把三种方式共同要使用的基本部分放在内层,而把随三种操作方式而改变的部分放在外层。

(3)进程是操作系统的基本成份,为了给进程活动提供必要的环境和条件,因此必须要一部分软件来为进程提供服务,通常这些功能模块构成操作系统的内核,放在系统的内层。

3、微内核(客户/服务器)结构

微内核体系结构: 采用客户/服务器结构的操作系统就适应于应用在网络环境下分布式处理的计算环境中

特点:

(1)运行在核心态的内核:内核提供所有操作系统基本都具有的操作,如线程调用、虚拟存储、消息传递、设备驱动以及内核的原语操作集和中断处理等。

(2)运行在用户态的并以客户/服务器方式运行的进程层:除内核部分外,操作系统所有的其他部分被分成若干个相对独立的进程,每一个进程实现一组服务,成为服务进程。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值