操作系统的设计目标

操作系统是计算机系统的重要组成部分,是计算机系统工作时经常起作用的程序。同时,它又是一种复杂程度高的大型程序,为使计算机系统可靠而有效地工作,必须配置一个高质量的操作系统。 一个高质量的操作系统应具有可靠性、高效性、易维护性、易移植性、安全性和简明性等特征。

可靠性

可靠性包含了正确性和健壮性两个方面的含义。 操作系统是计算机系统中最基本、最重要的软件。随着计算机应用范围的日益扩大,对操作系统的可靠性要求也越来越高。可靠性差的操作系统将严重影响使用效果。例如,用于导弹控制的操作系统必须绝对可靠,否则所造成的后果将不堪设想。 影响操作系统正确性的因素有很多,最主要的是并发、共享以及随之带来的不确定性。 并发使得系统中各条指令流的执行次序可以任意交叉;而共享导致进程对系统资源的竞争,使不同的指令执行序列之间产生直接和间接的相互制约;以上两点原因又会引起系统的不确定。这种不确定性要求系统能动态地应付随时发生的各种内部和外部事件。因此,研究操作系统的结构是相当必要的。 可靠性除了正确性这一基本要求外,还应包括能在预期的环境条件下完成所期望的功能的能力。在发生硬件故障或某种意外的环境下,操作系统应该仍能做出适当的处理,避免造成严重损失,这就是对操作系统健壮性或鲁棒性的要求。

高效性

操作系统的一个重要目标,是提高系统中各种资源的利用率,即提高系统的运行效率。 一个计算机系统在其运行过程中或者处于目态,或者处于管态。处于目态的时候为用户服务,处于管态时既可能为用户服务(如为进程打开文件或完成打印工作),也可能做系统维 护工作(如进程切换、调度页面、检测死锁等)。假定一个计算机系统,在一段时间T之内,在目态下运行程序所用的时间为Tu,管态下运行程序为用户服务所用的时间为Tsu,管态下运行程序做系统管理工作所用的时间为则可定义系统运行效率η为: `η=(T_u+T_su)/(T_u+T_su+T_(sm))*100%` 显然,η越大,系统运行效率越高。为了提高系统运行效率,应当尽量减少用于系统管理所需要的时间Tsm。我们亦把Tsm称为系统开销(时间开销)。

易维护性

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

可移植性

可移植性是指,把一个程序系统从一个计算机系统环境中移到另一个计算机系统环境中并能正常运行的特性。操作系统的设计开发是一项庞大的工程,人们为了更好地利用研制成果,避免重复性的工作,都将可移植性作为操作系统一个重要的设计目标。 在操作系统的设计中,影响可移植性的最大因素就是系统和计算机硬件有关部分的处理。为了提高设计完成的操作系统的可移植性,应当在设计时就考虑把操作系统程序中与硬性件相关的部分与操作系统的其他部分相对独立。通常操作系统与硬件有关的部分被设计在操作系统程序的底层,在进行操作系统的移植时,只需修改操作系统的底层这一部分。单。

安全性

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

简明性

如果一个操作系统没有简明性,那么该操作系统的设计和开发人员在工作中就很难清晰地了解和掌握该操作系统的设计。而如果一个操作系统缺乏简明性,那么在系统的修改和维护过程中,将会产生许多意想不到的困难。 在大型程序系统的设计中,参加设计和开发的人员比较多,人员变动状况大。系统设计完成之后,运行寿命一般也比较长,相关的系统维护人员随着时间的流逝,也在不断的变动中。有经验的大型程序系统设计人员都知道,尽管有程序的源代码,有各种程序文档,但是最忌讳的是,某个程序设计人员为了显示他的聪明才智,绞尽脑汁编写了一段具有某种高超技巧的程序代码。在一段时间之后,这段程序代码的设计人员自己对照源代码,翻看着当时的程序文档,也无法理解代码的实际含义,更不用说其他的程序维护人员了。