购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 操作系统简介

1.1.1 计算机系统层次结构

只有硬件组成的计算机称为裸机。对于一台裸机,无论它在硬件配置上有多高,性能有多强,也很难被使用。这是因为在裸机上操作,必须用机器指令编制程序,去控制计算机上的部件,用户不仅要用机器代码编写自己的应用程序,而且还要编写控制使用硬件的程序,这种程序代码动辄数千条,十分不方便,而操作系统的出现使得这一切变得简单起来。

操作系统是软件系统中最重要、最基本的系统,它为系统中的其他一切软件提供了与硬件配合完成计算机各项任务的友好界面。如图1.1所示,可见操作系统在整个计算机系统中所处的地位非常重要。

图1.1 计算机系统的层次视图

由图1.1可以看出,其他软件(包括实用软件)以操作系统为支撑环境,换言之,操作系统为应用程序提供服务。操作系统紧贴裸机,把裸机改造成功能更强大、使用更方便的虚拟机器。操作系统本身又分为内核和外核两部分。操作系统本身的活动在外核是并发的,而在内核通常是顺序执行的。例如,UNIX的核心程序在执行期间,只要它自己不调用sleep原语就不会引起处理器的切换,这样做的好处是简化核心程序的编制。传统的内核包括中断处理、设备驱动、CPU切换以及实施进程控制与通信等功能,这些功能由原语实现,内核微型化既能提高操作系统的并发程度又能使操作系统方便地被移植到不同芯片的计算机系统上,这就是所谓的微核(Microkernel)技术。

近年来,大型软件都是采用层次式结构进行构建的,也就是将一个软件分成若干个层次。在此,同样可以用一个层次式的OS模型来描述操作系统,该模型分为3个层次(如图1.2所示),包括:用户接口(命令接口、程序接口、图形用户接口);对对象操纵和管理的软件集合(处理器管理软件、存储器管理软件、设备管理软件、文件管理软件);操作系统对象(处理器、存储器、设备、文件和作业)。

图1.2 OS层次模型

1.用户接口

为了方便用户使用OS,OS通常向用户提供以下3种类型的接口。

(1)命令接口,即用户与OS的接口。用户可以通过命令来取得OS的服务。

(2)程序接口,即应用程序与OS的接口。用户通过在程序中进行系统调用来取得OS的相关服务。

所谓系统调用是操作系统提供给编程人员的唯一接口。编程人员可以利用系统调用,在源程序一级动态请求和释放系统资源,并调用系统中已有的系统功能来完成那些与机器硬件部分相关的工作以及控制程序的执行速度等。因此,系统调用对于用户而言,就像一个黑箱子那样,屏蔽了操作系统的具体动作而只提供有关的功能。事实上,人们使用计算机时接触到的命令控制界面(如菜单、命令按钮等所对应的操作命令),也是在系统调用的基础上开发成的。

(3)图形用户接口。操作系统的设计者将系统常用的各项功能和应用程序,以各种直观的图形逼真地表示出来,方便用户操作。

2.对对象操纵和管理的软件集合

对对象操纵和管理的软件集合部分通常是操作系统的核心部分,它们集中了操作系统五大功能中的四大功能,分别用于对4类对象进行操控和管理。此外,还包括了一部分对作业进行管理的功能。

3.操作系统对象

操作系统对象是OS操纵和管理的对象。由于OS作为计算机硬件和软件间的界面,主要用于管理和调度各种系统资源,因此,OS的对象主要有以下几类:处理器、存储器、各种I/O设备、文件和作业。

其中,用户接口在最外层,是用户与计算机之间的桥梁,而控制和管理的软件集合是整个操作系统的核心部分,也称之为操作系统内核(Kernel)。

1.1.2 操作系统的定义

当前,任何一种计算机都装有操作系统(OS)。计算机系统主要由硬件和软件两部分组成,计算机硬件主要包括中央处理器、主存储器、外围设备等物理设备,系统中的硬件配置可以因为机器使用用途的不同而有所不同。但要使其高效、高速地运行,就要对有限的CPU及主存资源充分利用。图1.3是计算机系统结构图,操作系统及其他软件放在磁盘上,要运行的时候放到内存里。

图1.3 计算机系统结构图

为此,就需要协调、分配这些资源,所有这些问题的解决就构成了对计算机系统的管理、控制工程(在管理学上,就是追求1+1>2)。这些都是通过操作系统来实现的。

下面举个例子:一个学校的食堂相当于一台计算机,里面的所有物品相当于计算机的硬件,食堂中存在的人员相当于软件(食堂的自有人员为系统软件,其中的管理人员为操作系统,来食堂吃饭的人为应用软件)。原来可以负担100人午餐的食堂,通过加强管理,如科学的管理所有工作流程,尽量满足就餐人员的各项需求,缩短工作时间,减少空闲时间,加大各类资源利用率,提高并发性和共享性等,可以达到负担200人甚至更多人午餐。在此,操作系统起到了决定性的作用。

可见操作系统是计算机系统中的一个系统软件,是一些程序模块的集合,它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源,为用户提供各种服务功能,使用户能够灵活、方便有效地使用计算机,使整个计算机系统能高效地运行。

狭义操作系统包含的程序有:核心态运行程序,用户态运行的命令解释器和系统调用库。

广义操作系统包含的程序有:除上述外,许多提供系统常用功能的实用程序,库程序。

因此,操作系统可以被定义为集如下三方面功能为一体的程序集合。

(1)控制和管理计算机系统的硬件与软件资源。

(2)合理地组织计算机的工作流程。

(3)方便用户使用。

管理目标:使硬件、软件资源的利用率最高。

服务宗旨:给用户尽可能多的服务和最大的方便。

服务项目:程序界面——由系统调用命令组成,给用户编程提供方便;联机用户界面——由键盘命令、屏幕命令组成;脱机用户界面——由作业控制命令实现。

1.1.3 操作系统的发展

伴随着计算机技术的发展,操作系统的功能也在不断地变化和完善。从计算机体系结构的观点上讲,计算机的某项功能既可以用硬件实现,也可以用软件实现(用硬件实现的特点是速度快、价格高、可维护性差;用软件实现的特点是速度慢、价格低、可维护性高,因此,某项功能采用何种方式实现由性价比等因素决定)。随着计算机体系结构的发展,软硬件技术的变革,操作系统也在发生着日新月异的变革。具体地讲操作系统的发展经历了人工操作阶段、批处理阶段和操作系统的形成阶段。伴随着不断出现的实际功能需求的增长,操作系统还处于动态发展过程中。

1.人工操作阶段

在第一代计算机时期,构成计算机的主要元件是电子管。计算机运行速度很慢,资源管理是用户自己编制的管理程序完成的,不能被称为操作系统(没有实现并发性和共享性,见1.2节)。用户都是直接用汇编语言编制程序,并在上机时独自占用全部系统资源,用户既是程序员,又是操作员,上机完全是手工操作,整个过程漫长,十分不便。

到了20世纪50年代后期,计算机运行速度有了明显的提高,手工操作方式严重降低了计算机资源的利用率,手工操作的慢速度和计算机的高速度之间形成了矛盾,即所谓的手工操作方式与机器利用率的矛盾,简称人机矛盾。随着CPU速度的提高、系统规模的扩大,人机矛盾也就变得日趋严重,只有摆脱人的手工操作,实现作业的自动过渡,才能解决此矛盾,这样就出现了批处理。

2.早期的批处理

计算机发展的早期阶段,由于没有任何管理软件,所有的运行管理和具体操作都由用户自己来做,任何一步错误的操作都有可能造成任务的从头开始,当时的计算机价格又是非常的昂贵,尽可能提高CPU的利用率变得十分迫切。

为了解决上述的问题,批处理出现于20世纪50年代末到60年代初,它是为了提高主机的使用效率,在解决人机矛盾的过程中发展起来的。但是这时计算机系统运行的特征是单道顺序地处理作业(计算机一次只能为一个用户的一次计算任务服务),这样就会使计算机的资源利用率仍然不高,为了提高计算机性能,操作系统进入了多道程序阶段,多道程序合理搭配交替运行,充分利用资源,从而提高了效率。

3.多道程序系统

在单道批处理系统中,内存中仅有一道作业,它无法充分利用系统中所有的资源(CPU和内存、I/O设备不可能同时都工作),致使系统性能较差,为了进一步提高系统吞吐量和资源的利用率,引入了多道程序设计技术。

多道程序设计技术是指在内存中同时存放若干个作业(系统吞吐率增大),使它们共享系统资源并同时运行(系统资源利用率提高)的技术。在单处理器环境下,这些作业在宏观上同时运行(并行),而在微观上交替运行(并发)。

多道程序系统的出现标志着操作系统逐渐趋向成熟的阶段,先后出现了作业调度管理、处理器管理、存储器管理、外部设备管理、文件系统管理等功能。至此,操作系统的管理结构相对完整了,操作系统概念形成。

4.分时操作系统

为了解决批处理系统无法进行人机交互的问题,并使多个用户能同时使用主机资源,又引入了分时操作系统。

在批处理方式下,用户以脱机操作方式使用计算机,用户在提交作业以后就完全脱离了自己的作业,在作业运行过程中,只有等该批作业处理结束,用户才能得到计算结果,如果结果有错,还得继续计算后,再做下一步处理。这种方式的优点是计算机效率高,但用户又对手工操作阶段的联机工作方式很喜欢。这种联机方式可以独占计算机、控制程序运行,但这种方式会造成资源效率低及出现错误修改不及时的问题。为了既能保证计算机效率,又能方便用户使用,20世纪60年代中期,由于CPU速度的提高和分时技术的发展,使得分时交互成为可能。

所谓分时操作系统,就是使一台计算机同时为几个、几十个甚至几百个用户服务的一种操作系统。把计算机与许多终端用户连接起来,分时操作系统将系统处理器时间与内存空间按一定的时间间隔,轮流地切换给各终端用户的程序使用,由于时间间隔很短,每个用户的感觉就像他独占计算机一样。分时操作系统的特点是可有效增加资源的使用率,例如,UNIX系统就采用剥夺式动态优先的CPU调度,有力地支持分时操作。分时系统一般不考虑作业的概念。

产生分时操作系统是为了满足用户需求所形成的一种新型操作系统。它与多道程序系统之间,有着截然不同的性能差别,具体表现在以下几个方面:人—机交互、共享主机、便于用户上机。分时系统实现中的关键问题为:及时接收,及时处理。

5.实时操作系统

20世纪60年代中期计算机进入第三代,计算机的性能和可靠性有了很大的提高,计算机的应用十分广泛,用于工业生产的过程控制、军事实时控制等领域的计算机由于采用多道程序系统和分时操作系统不能满足实时控制、实时信息处理的需求而引入实时操作系统,形成了各种实时处理系统。

实时操作系统是一种能在限定时间内对输入数据进行快速处理并做出响应的计算机处理系统。根据响应时间限定的严格程度,实时系统又可分为硬实时系统和软实时系统。硬实时系统又称实时控制系统,主要用于工业生产的过程控制、航天系统的跟踪及控制、武器的制导等。这类系统要求响应时间快,工作要求极其安全可靠。软实时系统又称实时处理系统,主要用于响应速度在秒以上数量级的系统中,常见的有订票系统,情报、资料检索系统,银行、财务处理系统,信用卡记账、取款系统以及仓库管理系统等。这些系统一般配有大型数据库,对系统安全性、可靠性和保密性要求较高。

6.通用操作系统

多道程序系统和分时操作系统的不断改进、实时操作系统的出现以及其应用日益广泛,致使操作系统日益完善。在此基础上,出现了通用操作系统,它可以同时兼有多道批处理、分时、实时处理的功能,或其中两种以上的功能。例如,当对于某一计算机系统采用实时+批处理操作系统时,把实时处理作为前台作业,批处理作为后台作业。前、后台作业的区别在于:只有前台作业不需要使用CPU时,后台作业才能得到CPU的控制权,一旦前台作业可以开始工作时,后台作业就需立即让出CPU供其使用。在此种情况下,批处理作业往往作为后台作业。

以上介绍的批处理、分时、实时操作系统被称为传统操作系统。至此,操作系统的基本概念、功能、基本结构和组成都已形成并逐渐趋于完善。关于现代操作系统将在1.3节介绍。 uZKRfMZ5UXd2q92SA2kwLR1V6oNknfNFpyT0bBYk0zwxUNgkIF1c2NWp79IYdQQZ

点击中间区域
呼出菜单
上一章
目录
下一章
×