2.1.1 操作系统概念

2.1.1 操作系统概念

1.裸机与虚拟机

计算机已经是21世纪人们经常使用的工具,每一个使用过计算机的人,都以用户的身份使用过操作系统。因为用户使用的计算机是计算机硬件之上装配了操作系统等软件的计算机系统。计算机本身是硬件设备的组装,包括主机、键盘、显示器、鼠标、导线、网络接口卡等。这些配件装配好,通上电,是无法工作的,它既不能从键盘接收字符,也不能在屏幕上显示数据,更不用说执行程序了,人们很难与这些电子元件直接通信,我们把这种计算机叫作裸机,一个裸机的功能即使很强,往往也是不方便用户使用的,功能上也是有局限的。

用户如果想方便地使用计算机,就必须在裸机之上配装相关的软件,软件在硬件基础之上对硬件的性能加以扩充和完善,使之成为一台完整的计算机,我们称为虚拟机,如图2-1所示。

图2-1 虚拟机

2.系统软件与应用软件

现在一个完整的计算机系统,不论是大型机、小型机或微型机,都由两大部分组成:计算机的硬件部分和计算机的软件部分。通常硬件部分指计算机物理装置本身,它可以是电子的、电的、磁的、机械的、光的元件或装置,上面说的裸机即指这些物理装置构成的硬件。按照计算机的功能,计算机的基本硬件系统由控制器、运算器、存储器、输入设备和输出设备组成,如图2-2所示;而软件是针对硬件而言的,它是指计算机硬件完成一定任务的所有程序及数据。

计算机软件又分为两大类,即系统软件和应用软件(图2-3),系统软件为计算机使用提供最基本的功能,用于计算机的管理、维护、控制和运行,以及对运行的程序进行翻译、装入、多媒体服务、网络通信等服务工作,是计算机运行所必需的,并不针对某一特定应用领域。而应用软件则恰好相反,是指那些为了某一类的应用需要而设计的程序,不同的应用软件根据用户和所服务的领域提供不同的功能。

图2-2 计算机基本硬件系统

图2-3 计算机软件构成

系统软件本身又包含三部分,即操作系统、语言处理系统和常用服务程序。操作系统是最接近硬件的部分,负责管理计算机资源,是计算机裸机与其他软件的接口;语言处理系统包括各种语言的编译程序、解释程序和汇编程序;常用服务程序的种类很多,通常包括数据库管理系统、存储介质间的复制程序等。

软件之间的关系是层次结构的关系,一部分软件的运行要以另一部分软件的存在为基础,并为其提供一定的运行条件,而新添加的软件可以看作在原来那部分软件基础上的扩充与完善,如图2-4所示。

3.操作系统概念及目标

在计算机领域中,从裸机到用户之间有多层软件,通常将接近设备的软件称为底层软件,将接近用户的软件称为上层软件。操作系统是最接近硬件的、最底层的系统软件。

操作系统是系统软件的基本部分,它统一管理计算机资源,协调系统各部分之间、系统与使用者之间、使用者与使用者之间的关系,以利于发挥系统的效率,使系统方便使用。

从定义可见,操作系统充当两个角色,一个是计算机资源的管理者,一个是用户与计算机硬件的连接者。

作为计算机资源的管理者,操作系统是与硬件最为密切的程序,可以说操作系统是一个资源分配器。在现代计算机系统中,硬件资源包括CPU、内存空间、文件存储空间、I/O设备;软件资源包括存在于计算机系统中的所有程序和各种类型的数据,在操作系统中统称为文件。操作系统管理这些资源,面对许多冲突的资源请求,操作系统必须决定如何为各个程序和用户分配资源,以便计算机系统能有效运行,并且最有效和最公平地利用资源。例如,用户在一台计算机上(单CPU)正在浏览网页,又开了一个窗口运行程序,还有一个窗口进行QQ聊天,每一项工作都是在CPU上运行的一段程序,一个CPU如何分配给3个程序运行使用?这就需要操作系统发挥计算机资源管理功能。

图2-4 计算机软件层次结构

作为用户与计算机硬件的连接者,操作系统为用户提供使用系统硬、软件资源的良好接口。用户对操作系统的内部结构并没有多大的兴趣,他们最关心的是如何利用操作系统提供的服务来有效地使用计算机。在用户眼里,它应能为用户提供比裸机功能更强、服务质量更高、更方便灵活的虚拟机器。举一个程序员通过计算机运行程序的例子,程序员要完成编辑、编译、运行程序等多个工作步骤,如图2-5所示。

如果将这些事情交给每个用户自己完成,不仅大大增加了用户的工作量,而且还会产生各种各样的错误,使计算机系统的可靠性和效率大大降低,甚至导致整个系统无法使用。因此操作系统将这些功能集中起来,统一编写、统一管理,提供给所有用户使用。

其中,1、2、3、5步都由操作系统提供接口工具完成相应工作。现以磁盘操作系统(DOS,Disk Operation System)完成第1步为例,分析操作系统完成的工作。在用户输入程序编辑器的名字时,操作系统将其作为命令接收后进行判断,之后转入相应的处理程序,操作过程如图2-6所示。

图2-5 编辑、编译、运行程序的工作步骤

图2-6 DOS操作系统的命令管理

操作系统的设计目标如下。

·有效性:提高资源利用率。操作系统充分合理地管理和分配系统内的各种软硬件资源,提高整个系统的使用效率和经济效益。

·方便性:方便用户使用。操作系统将裸机转变成一台用户易于使用的、功能更强的、服务质量更高的、更灵活安全可靠的虚拟机。

·可扩充性:能适应硬件的发展,容易升级。便于增加新的功能层次和模块,并能修改老的功能层次和模块。

·开放性:使应用程序具备可移植性和互操作性。为使来自不同厂家的计算机和设备能通过网络加以集成化,并能正确、有效地协同工作,必须具有统一的开放环境,进而要求操作系统具有开放性。