操作系统的概念

一、操作系统的目标和作用 

       在计算机系统上配置操作系统的主要目标,首先与计算机系统的规模有关。通常对配 置在大、中型计算机系统中的 OS,由于计算机价格昂贵,因此都比较看重机器使用的有效 性,而且还希望 OS(operating system) 具有非常强的功能;但对于配置在微机中的操作系统,由于微机价格相 对较便宜,此时机器使用的有效性也就显得不那么重要了,而人们更关注的是使用的方 便性。 影响操作系统的主要目标的另一个重要因素是操作系统的应用环境。例如,对于应用 在查询系统中的操作系统,应满足用户对响应时间的要求;又如对应用在实时工业控制和 武器控制环境下的 OS,则要求其 OS 具有实时性和高度可靠性。

1.有效性

在早期(20 世纪 50~60 年代),由于计算机系统非常昂贵,操作系统最重要的目标无疑 是有效性。事实上,那时有效性是推动操作系统发展最主要的动力。正因如此,现在的大 多数操作系统书籍,都着重于介绍如何提高计算机系统的资源利用率和系统的吞吐量问题。 操作系统的有效性可包含如下两方面的含意: (1) 提高系统资源利用率。在未配置 OS 的计算机系统中,诸如 CPU、I/O 设备等各种 资源,都会因它们经常处于空闲状态而得不到充分利用;内存及外存中所存放的数据太少 或者无序而浪费了大量的存储空间。配置了 OS 之后,可使 CPU 和 I/O 设备由于能保持忙 碌状态而得到有效的利用,且可使内存和外存中存放的数据因有序而节省了存储空间。 (2) 提高系统的吞吐量。操作系统还可以通过合理地组织计算机的工作流程,而进一步 改善资源的利用率,加速程序的运行,缩短程序的运行周期,从而提高系统的吞吐量。 

   

2 .方便性

配置 OS 后可使计算机系统更容易使用。一个未配置 OS 的计算机系统是极难使用的, 因为计算机硬件只能识别 0 和 1 这样的机器代码。用户要直接在计算机硬件上运行自己所 编写的程序,就必须用机器语言书写程序;用户要想输入数据或打印数据,也都必须自己 用机器语言书写相应的输入程序或打印程序。如果我们在计算机硬件上配置了 OS,用户便 可通过 OS 所提供的各种命令来使用计算机系统。比如,用编译命令可方便地把用户用高级 语言书写的程序翻译成机器代码,大大地方便了用户,从而使计算机变得易学易用。 方便性和有效性是设计操作系统时最重要的两个目标。在过去的很长一段时间内,由 于计算机系统非常昂贵,因而其有效性显得比较重要。但是,近十多年来,随着硬件越来 越便宜,在设计配置在微机上的 OS 时,人们似乎更重视如何使用户能更为方便地使用计算 机,故在微机操作系统中都配置了受到用户广泛欢迎的图形用户界面,提供了大量的供程 序员使用的系统调用。

3.可扩充性

随着 VLSI 技术和计算机技术的迅速发展,计算机硬件和体系结构也随之得到迅速发 展,相应地,它们也对 OS 提出了更高的功能和性能要求。此外,多处理机系统、计算机网 络,特别是 Internet 的发展,又对 OS 提出了一系列更新的要求。因此,OS 必须具有很好的 可扩充性,方能适应计算机硬件、体系结构以及应用发展的要求。这就是说,现代 OS 应采 用新的 OS 结构,如微内核结构和客户服务器模式,以便于方便地增加新的功能和模块,并 能修改老的功能和模块。关于新的 OS 结构将在本章最后一节中介绍。

4.开放性

自 20 世纪 80 年代以来,由于计算机网络的迅速发展,特别是 Internet 的应用的日益普 及,使计算机操作系统的应用环境已由单机封闭环境转向开放的网络环境。为使来自不同 厂家的计算机和设备能通过网络加以集成化,并能正确、有效地协同工作,实现应用的可 移植性和互操作性,要求操作系统必须提供统一的开放环境,进而要求 OS 具有开放性。 开放性是指系统能遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。凡遵 循国际标准所开发的硬件和软件,均能彼此兼容,可方便地实现互连。开放性已成为 20 世 纪 90 年代以后计算机技术的一个核心问题,也是一个新推出的系统或软件能否被广泛应用 的至关重要的因素。 


二、操作系统的作用 

1.OS 作为用户与计算机硬件系统之间的接口 

  • (1) 命令方式。这是指由 OS 提供了一组联机 命令接口,以允许用户通过键盘输入有关命令来 取得操作系统的服务,并控制用户程序的运行。
  • (2) 系统调用方式。OS提供了一组系统调用, 用户可在自己的应用程序中通过相应的系统调 用,来实现与操作系统的通信,并取得它的服务。
  •  (3) 图形、窗口方式。这是当前使用最为方便、最为广泛的接口,它允许用户通过屏幕 上的窗口和图标来实现与操作系统的通信,并取得它的服务。 

操作系统的概念

2.OS 作为计算机系统资源的管理者 

3.OS 实现了对计算机资源的抽象 

操作系统的概念

 

三、推动操作系统发展的主要动力 

  • 1.不断提高计算机资源的利用率 
  • 2.方便用户 当资源利用率不高的问题得到基本解决后,用户在上机、调试程序时的不方便性便又 成为主要矛盾。
  • 3.器件的不断更新换代 
  • 4.计算机体系结构的不断发展 

三、操作系统的发展过程

 

无操作系统的计算机系统 

  • 1.人工操作方式

从第一台计算机诞生(1945 年)到 20 世纪 50 年代中期的计算机,属于第一代计算机。此 时的计算机是利用成千上万个真空管做成的,它的运行速度仅为每秒数千次,但体积却十 分庞大,且功耗也非常高。这时还未出现 OS。

  • 2 .脱机输入/输出方式

为了解决人机矛盾及 CPU 和 I/O 设备之间速度不匹配的矛盾,20 世纪 50 年代末出现 了脱机输入/输出(Off-Line I/O)技术。该技术是事先将装有用户程序和数据的纸带(或卡片) 装入纸带输入机(或卡片机),在一台外围机的控制下,把纸带(卡片)上的数据(程序)输入到 磁带上。当 CPU 需要这些程序和数据时,再从磁带上将其高速地调入内存。

操作系统的概念

 

 

单道批处理系统 
 

1.单道批处理系统的处理过程

上世纪 50 年代中期发明了晶体管,人们开始用晶体管替代真空管来制作计算机,从而 出现了第二代计算机。

操作系统的概念
 
 2.单道批处理系统的特征

单道批处理系统是最早出现的一种 OS。严格地说,它只能算作是 OS 的前身而并非是 现在人们所理解的 OS/

该系统 的主要特征如下:

(1) 自动性。在顺利情况下,在磁带上的一批作业能自动地逐个地依次运行,而无需人 工干预。

(2) 顺序性。磁带上的各道作业是顺序地进入内存,各道作业的完成顺序与它们进入内 存的顺序,在正常情况下应完全相同,亦即先调入内存的作业先完成。

(3) 单道性。内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入 内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。 

 

多道批处理系统 


1.多道程序设计的基本概念

在单道批处理系统中,内存中仅有一道作业,它无法充分利用系统中的所有资源,致 使系统性能较差。为了进一步提高资源的利用率和系统吞吐量,在 20 世纪 60 年代中期又 引入了多道程序设计技术,由此而形成了多道批处理系统(Multiprogrammed Batch Processing System)。在该系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备 队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们 共享 CPU 和系统中的各种资源。

具体地说,在 OS 中引入多道程序设计技术可带来以下 好处:

(1) 提高 CPU 的利用率。当内存中仅有一道程序时,每逢该程序在运行中发出 I/O 请 求后,CPU 空闲,必须在其 I/O 完成后 CPU 才继续运行;尤其因 I/O 设备的低速性,更使 CPU 的利用率显著降低。

操作系统的概念

 

(2) 可提高内存和 I/O 设备利用率。

(3) 增加系统吞吐量。

 

2.多道批处理系统的优缺点 

(1) 资源利用率高。由于在内存中驻留了多道程序,它们共享资源,可保持资源处于忙 碌状态,从而使各种资源得以充分利用。

(2) 系统吞吐量大。系统吞吐量是指系统在单位时间内所完成的总工作量。能提高系统 吞吐量的主要原因可归结为:第一,CPU 和其它资源保持“忙碌”状态; 第二,仅当作业 完成时或运行不下去时才进行切换,系统开销小。

(3) 平均周转时间长。作业的周转时间是指从作业进入系统开始,直至其完成并退出系 统为止所经历的时间。在批处理系统中,由于作业要排队,依次进行处理,因而作业的周 转时间较长,通常需几个小时,甚至几天。

(4) 无交互能力。用户一旦把作业提交给系统后,直至作业完成,用户都不能与自己的 作业进行交互,这对修改和调试程序是极不方便的。 

 

3.  多道批处理系统需要解决的问题 

(1) 处理机管理问题。在多道程序之间,应如何分配被它们共享的处理机,使 CPU 既 能满足各程序运行的需要,又能提高处理机的利用率,以及一旦把处理机分配给某程序后, 又应在何时收回等一系列问题,属于处理机管理问题。

(2) 内存管理问题。应如何为每道程序分配必要的内存空间,使它们“各得其所”且不 致因相互重叠而丢失信息,以及应如何防止因某道程序出现异常情况而破坏其它程序等问 题,就是内存管理问题。

(3)  I/O 设备管理问题。系统中可能具有多种类型的 I/O 设备供多道程序所共享,应如 何分配这些 I/O 设备,如何做到既方便用户对设备的使用,又能提高设备的利用率,这就是 I/O 设备管理问题。

(4) 文件管理问题。在现代计算机系统中,通常都存放着大量的程序和数据(以文件形 式存在),应如何组织这些程序和数据,才能使它们既便于用户使用,又能保证数据的安全 性和一致性,这些属于文件管理问题。

(5) 作业管理问题。对于系统中的各种应用程序,其中有的属于计算型,即以计算为主 的程序;有的属于 I/O 型,即以 I/O 为主的程序;又有些作业既重要又紧迫;而有的作业则 要求系统能及时响应,这时应如何组织这些作业,这便是作业管理问题。 为此,应在计算机系统中增加一组软件,用以对上述问题进行妥善、有效的处理。这 组软件应包括:能控制和管理四大资源的软件,合理地对各类作业进行调度的软件,以及 方便用户使用计算机的软件。正是这样一组软件构成了操作系统。

 

据此,我们可把操作系 统定义为:

         操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调 度,以及方便用户使用的程序的集合。