CoderMrWu

生活诚可期,爱情价更高!

操作系统的设计过程以及设计目标!

该文章转载于自考库,如有侵权,请联系删除!

一、操作系统的设计过程

操作系统的设计过程一般可分为三个部分:功能设计、算法设计和结构设计操作系统的三方面设计是互相渗透的,不能截然分开。在任何一个方面中,其总的目标是不变的,即要求能够设计出一个具有好结构、高功效,又具有所需要功能的操作系统。

1、功能设计

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

2、算法设计

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

3、结构设计

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

二、操作系统的设计目标

操作系统是计算机系统的重要组成部分,是计算机系统工作时经常起作用的程序。同时,它又是一种复杂程度高的大型程序,为使计算机系统可靠而有效地工作,必须配置一个高质量的操作系统。

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

1、可靠性

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

操作系统是计算机系统中最基本、最重要的软件。随着计算机应用范围的日益扩大,对操作系统的可靠性要求也越来越高。可靠性差的操作系统将严重影响使用效果。例如,用于导弹控制的操作系统必须绝对可靠,否则所造成的后果将不堪设想影响操作系统正确性的因素有很多,最主要的是并发、共享以及随之带来的不确定性并发使得系统中各条指令流的执行次序可以任意交叉;而共享导致进程对系统资源的竞争,使不同的指令执行序列之间产生直接和间接的相互制约;以上两点原因又会引起系统的不确定。这种不确定性要求系统能动态地应付随时发生的各种内部和外部事件。因此,研究操作系统的结构是相当必要的。

可靠性除了正确性这一基本要求外,还应包括能在预期的环境条件下完成所期望的功能的能力。在发生硬件故障或某种意外的环境下,操作系统应该仍能做岀适当的处理,避免造成严重损失,这就是对操作系统健壮性或鲁棒性的要求。

2、高效性

操作系统的一个重要目标,是提高系统中各种资源的利用率,即提高系统的运行效率。一个计算机系统在其运行过程中或者处于目态,或者处于管态。处于目态的时候为用户服务,处于管态时既可能为用户服务(如为进程打开文件或完成打印工作),也可能做系统维护工作(如进程切换、调度页面、检测死锁等)。

假定一个计算机系统,在一段时间T之内,在目态下运行程序所用的时间为T,管态下运行程序为用户服务所用的时间为T,管态下运行程序做系统管理工作所用的时间为m,则可定义系统运行效率η为:

显然,η越大,系统运行效率越高。为了提高系统运行效率,应当尽量减少用于系统管理所需要的时间T。我们亦把T称为系统开销(时间开销)。

3、易维护性

易维护性包括易读性、易扩充性、易剪裁性、易修改性等含义。一个操作系统投人实际运行后,有时会希望增加新的功能,删去不需要的功能,或修改在运行过程中所发现的错误。为了对操作系统实施增、删、改等维护操作,必须首先了解系统,为此要求操作系统具有良好的可读性。其他有关易扩充性、易剪裁性、易修改性的必要性,是显而易见的。

4、可移植性

可移植性是指,把一个程序系统从一个计算机系统环境中移到另一个计算机系统环境中并能正常运行的特性。操作系统的设计开发是一项庞大的工程,人们为了更好地利用研制成果,避免重复性的工作,都将可移植性作为操作系统一个重要的设计目标。

在操作系统的设计中,影响可移植性的最大因素就是系统和计算机硬件有关部分的处理。为了提高设计完成的操作系统的可移植性,应当在设计时就考虑把操作系统程序中与硬件相关的部分与操作系统的其他部分相对独立。通常操作系统与硬件有关的部分被设计在操作系统程序的底层,在进行操作系统的移植时,只需修改操作系统的底层这一部分。

5、安全性

操作系统的安全性是整个计算机系统安全性的基础,它为保护用户的程序和数据提供了最基本的安全机制。在网络环境中,操作系统的安全性更为重要。如果操作系统发生了安全漏洞,那么整个计算机系统的安全性就不存在了。

6、简明性

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

在大型程序系统的设计中,参加设计和开发的人员比较多,人员变动状况大。系统设计完成之后,运行寿命一般也比较长,相关的系统维护人员随着时间的流逝,也在不断的变动中。有经验的大型程序系统设计人员都知道,尽管有程序的源代码,有各种程序文档,但是最忌讳的是,某个程序设计人员为了显示他的聪明才智,绞尽脑汁编写了一段具有某种高超技巧的程序代码。在一段时间之后,这段程序代码的设计人员自己对照源代码,翻看着当时的程序文档,也无法理解代码的实际含义,更不用说其他的程序维护人员了。

点赞