第一章 操作系统引论

来源:互联网 发布:软件项目安排日程表 编辑:程序博客网 时间:2024/06/07 20:46

计算机系统由硬件和软件两部分组成。操作系统(OS,Operating System)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。


1.1 操作系统的目标和作用

影响操作系统的主要目标的另一个重要因素是操作系统的应用环境。例如,对于应用在查询系统中的操作系统,应满足用户对响应时间的要求;又如对应用在实时工业控制和
武器控制环境下的OS,则要求其OS具有实时性和高度可靠性。


1.1.1 操作系统的目标

目前存在着多种类型的OS,不同类型的OS,其目标各有所侧重。一般地说,在计算机硬件上配置的OS,其目标有以下几点。

1.有效性

早期 有效性是推动操作系统发展最主要的动力。操作系统的有效性可包含如下两方面的含意:

(1) 提高系统资源利用率。在未配置OS 的计算机系统中,诸如CPU、I/O 设备等各种资源,都会因它们经常处于空闲状态而得不到充分利用;内存及外存中所存放的数据太 少或者无序而浪费了大量的存储空间。配置了OS 之后,可使CPU 和I/O 设备由于能保持忙碌状态而得到有效的利用,且可使内存和外存中存放的数据因有序而节省了存储间。
(2) 提高系统的吞吐量。操作系统还可以通过合理地组织计算机的工作流程,而进一步改善资源的利用率,加速程序的运行,缩短程序的运行周期,从而提高系统的吞吐量

2.方便性

配置 OS后可使计算机系统更容易使用。一个未配置OS的计算机系统是极难使用的,计算机硬件只能识别0 和1 这样的机器代码

方便性和有效性是设计操作系统时最重要的两个目标。

3.可扩充性
4.开放性

开放性是指系统能遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。凡遵循国际标准所开发的硬件和软件,均能彼此兼容,可方便地实现互连。


1.1.2 操作系统的作用

从一般用户的观点可把OS 看做是用户与计算机硬件系统之间的接口;从资源管理的观点看,则可把OS视为计算机系统资源的管理者。另外,OS实现了对计算机资源的抽象,隐藏了对硬件操作的细节,使用户能更方便地使用机器。

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

OS 作为用户与计算机硬件系统之间接口的含义是:OS 处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。或者说,用户在OS帮助下,能够方便、快捷、安全、可靠地操纵计算机硬件和运行自己的程序。应注意,OS是一个系统软件,因而这种接口是软件接口

用户可以通过如下三种方式使用计算机:

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

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

一个计算机系统中,通常都含有各种各样的硬件和软件资源。归纳起来可将资源分为四类:处理器、存储器、I/O 设备以及信息(数据和程序)。相应地,OS的主要功能也是针对这四类资源进行有效的管理,即:处理机管理,用于分配和控制处理机;存储器管理,主要负责内存的分配与回收; I/O 设备管理,负责I/O 设备的分配与操纵;文件管理,负责文件的存取、共享和保护。

注意:当一个计算机系统同时供多个用户使用时,用户对系统中共享资源的需求(包括数量和时间)可能发生冲突,为了管理好这些共享资源(包括硬件和信息)的
使用,操作系统必须记录下各种资源的使用情况,对使用资源的请求进行授权,协调诸用户对共享资源的使用,避免发生冲突,并计算使用资源的费用等。

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

对于一个完全无软件的计算机系统(即裸机),它向用户提供的是实际硬件接口(物理接口),用户必须对物理接口的实现细节有充分的了解,并利用机器指令进行编程,因此该物理机器必定是难以使用的。为了方便用户使用I/O设备,人们在裸机上覆盖上一层I/O 设备管理软件,如图1-2所示,由它来实现对I/O 设备操作的细节,并向上提供一组I/O 操作命令,如Read 和Write 命令,用户可利用它来进行数据输入或输出,而无需关心I/O 是如何实现的。此时用户所看到的机器将是一台比裸机功能更强、使用更方便的机器。这就是说,在裸机上铺设的I/O软件隐藏了对I/O设备操作的具体细节,向上提供了一组抽象的I/O设备。


通常把覆盖了上述软件的机器称为扩充机器或虚机器。它向用户(进程)提供了一个对硬件操作的抽象模型,用户可利用抽象模型提供的接口使用计算机,而无需了解物理接口实现的细节,从而使用户更容易地使用计算机硬件资源。由该层软件实现了对计算机硬件操作的第一个层次的抽象。

OS是铺设在计算机硬件上的多层系统软件,它们不仅增强了系统的功能,而且还隐藏了对硬件操作的细节,由它们实现了对计算机硬件操作的多个层次的抽象。值得说明的是,对一个硬件在底层进行抽象后,在高层还可再次对该资源进行抽象,成为更高层的抽象模型。


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

1.不断提高计算机资源的利用率(多道批处理系统、提高I/O设备和CPU利用率的SPOOLing系统和改善存储器系统利用率的虚拟存储器技术)

2.方便用户(人机交互的分时系统,或称为多用户系统)

3.器件的不断更新换代
4.计算机体系结构的不断发展

1.2 操作系统的发展过程

1.2.1 无操作系统的计算机系统

1.人工操作方式

计算机操作是由用户(即程序员)采用人工操作方式直接使用计算机硬件系统,即由程序员将事先已穿孔(对应于程序和数据)的纸带(或卡片)装入纸带输入机(或卡片输入机),再启动它们将程序和数据输入计算机,然后启动计算机运行。当程序运行完毕并取走计算结果之后,才让下一个用户上机。

缺点:
(1) 用户独占全机。此时,计算机及其全部资源只能由上机用户独占。
(2) CPU 等待人工操作。当用户进行装带(卡)、卸带(卡)等人工操作时,CPU 及内存等资源是空闲的。

人工操作方式严重降低了计算机资源的利用率,此即所谓的人机矛盾。随着CPU速度的提高和系统规模的扩大,人机矛盾变得日趋严重。

2.脱机输入/输出方式

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


由于程序和数据的输入和输出都是在外围机的控制下完成的,或者说,它们是在脱离主机的情况下进行的,故称为脱机输入/输出方式;反之,在主机的直接控制下进行输入/输出的方式称为联机输入/输出(On-Line I/O)方式。

优点:

(1) 减少了CPU的空闲时间。装带(卡)、卸带(卡)以及将数据从低速I/O 设备送到高速磁带(或盘)上,都是在脱机情况下进行的,并不占用主机时间,从而有效地减少了CPU的空闲时间,缓和了人机矛盾。
(2) 提高了I/O 速度。当CPU 在运行中需要数据时,是直接从高速的磁带或磁盘上将数据调入内存的,不再是从低速I/O 设备上输入,极大地提高了I/O 速度,从而缓和了CPU和I/O 设备速度不匹配的矛盾,进一步减少了CPU的空闲时间。


1.2.2 单道批处理系统

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


单道批处理系统是在解决人机矛盾以及CPU 与I/O 设备速度不匹配问题的过程中形成的。换言之,批处理系统旨在提高系统资源的利用率和系统吞吐量。


2.单道批处理系统的特征

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

(1) 自动性。在顺利情况下,在磁带上的一批作业能自动地逐个地依次运行,而无需人工干预。
(2) 顺序性。磁带上的各道作业是顺序地进入内存,各道作业的完成顺序与它们进入内存的顺序,在正常情况下应完全相同,亦即先调入内存的作业先完成。
(3) 单道性。内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。


1.2.3 多道批处理系统

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

在该系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU 和系统中的各种资源。具体地说,在OS 中引入多道程序设计技术可带来以下好处:

(1) 提高CPU 的利用率。

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

(3) 增加系统吞吐量。

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

(1) 资源利用率高。由于在内存中驻留了多道程序,它们共享资源,可保持资源处于忙碌状态,从而使各种资源得以充分利用。
(2) 系统吞吐量大。系统吞吐量是指系统在单位时间内所完成的总工作量。能提高系统吞吐量的主要原因可归结为:第一,CPU和其它资源保持“忙碌”状态; 第二,仅当作
      业完成时或运行不下去时才进行切换,系统开销小。
(3) 平均周转时间长。作业的周转时间是指从作业进入系统开始,直至其完成并退出系统为止所经历的时间。在批处理系统中,由于作业要排队,依次进行处理,因而作业
      的周转时间较长,通常需几个小时,甚至几天。
(4) 无交互能力。用户一旦把作业提交给系统后,直至作业完成,用户都不能与自己的作业进行交互,这对修改和调试程序是极不方便的。


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

(1) 处理机管理问题。

(2) 内存管理问题。

(3) I/O 设备管理问题。

(4) 文件管理问题。

(5) 作业管理问题。


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


1.2.4 分时系统

1.分时系统的产生

分时系统(Time Sharing System)与多道批处理系统之间有着截然不同的性能差别,它能很好地将一台计算机提供给多个用户同时使用,提高计算机的利用率。它被经常应用于查
询系统中,满足许多查询用户的需要。用户的需求具体表现在以下几个方面:

(1) 人-机交互。

(2) 共享主机。

(3) 便于用户上机。

分时系统是指,在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。

2.分时系统实现中的关键问题

关键的问题是如何使用户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回给用户。此后,用户可继续键入下一条命令,此即人-机交互。应强调指出,即使有多个用户同时通过自己的键盘键入命令,系统也应能全部地及时接收并处理这些命令。


3.分时系统的特征

(1) 多路性。允许在一台主机上同时联接多台联机终端,系统按分时原则为每个用户服务。宏观上,是多个用户同时工作,共享系统资源;而微观上,则是每个用户作业轮流运
行一个时间片。多路性即同时性,它提高了资源利用率,降低了使用费用,从而促进了计算机更广泛的应用。
(2) 独立性。每个用户各占一个终端,彼此独立操作,互不干扰。因此,用户所感觉到的,就像是他一人独占主机。
(3) 及时性。用户的请求能在很短的时间内获得响应。此时间间隔是以人们所能接受的等待时间来确定的,通常仅为1~3 秒钟。
(4) 交互性。用户可通过终端与系统进行广泛的人机对话。其广泛性表现在:用户可以请求系统提供多方面的服务,如文件编辑、数据处理和资源共享等。


1.2.5 实时系统

所谓“实时”,是表示“及时”,而实时系统(Real Time System)是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。

1.应用需求

(1) 实时控制。(2) 实时信息处理。

2.实时任务

1) 按任务执行时是否呈现周期性来划分

(1) 周期性实时任务。外部设备周期性地发出激励信号给计算机,要求它按指定周期循环执行,以便周期性地控制某外部设备。
(2) 非周期性实时任务。外部设备所发出的激励信号并无明显的周期性,但都必须联系着一个截止时间(Deadline)。它又可分为开始截止时间(某任务在某时间以前必须开始执行和完成截止时间(某任务在某时间以前必须完成)两部分。

2) 根据对截止时间的要求来划分

(1) 硬实时任务(Hard real-time Task)。系统必须满足任务对截止时间的要求,否则可能出现难以预测的结果。
(2) 软实时任务(Soft real-time Task)。它也联系着一个截止时间,但并不严格,若偶尔错过了任务的截止时间,对系统产生的影响也不会太大。


3.实时系统与分时系统特征的比较

实时系统有着与分时系统相似但并不完全相同的特点,下面从五个方面对这两种系统加以比较。
(1) 多路性。实时信息处理系统也按分时原则为多个终端用户服务。实时控制系统的多路性则主要表现在系统周期性地对多路现场信息进行采集,以及对多个对象或多个执行机
构进行控制。而分时系统中的多路性则与用户情况有关,时多时少。
(2) 独立性。实时信息处理系统中的每个终端用户在向实时系统提出服务请求时,是彼此独立地操作,互不干扰;而实时控制系统中,对信息的采集和对对象的控制也都是彼此
互不干扰。
(3) 及时性。实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定的;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或
完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微秒。
(4) 交互性。实时信息处理系统虽然也具有交互性,但这里人与系统的交互仅限于访问系统中某些特定的专用服务程序。它不像分时系统那样能向终端用户提供数据处理和资源
共享等服务。
(5) 可靠性。分时系统虽然也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任何差错都可能带来巨大的经济损失,甚至是无法预料的灾难性后果,所以在实时系统中,往往都采取了多级容错措施来保障系统的安全性及数据的安全性。


1.2.6 微机操作系统的发展

1.单用户单任务操作系统

单用户单任务操作系统的含义是,只允许一个用户上机,且只允许用户程序作为一个任务运行。这是最简单的微机操作系统,主要配置在8 位和16 位微机上。最有代表性的单
用户单任务微机操作系统是CP/M和MS-DOS。

2.单用户多任务操作系统

单用户多任务操作系统的含义是,只允许一个用户上机,但允许用户把程序分为若干个任务,使它们并发执行,从而有效地改善了系统的性能。

3.多用户多任务操作系统

多用户多任务操作系统的含义是,允许多个用户通过各自的终端使用同一台机器,共享主机系统中的各种资源,而每个用户程序又可进一步分为几个任务,使它们能并发执行,
从而可进一步提高资源利用率和系统吞吐量。在大、中和小型机中所配置的大多是多用户多任务操作系统,而在32 位微机上也有不少是配置的多用户多任务操作系统,其中最有代表性的是UNIX OS。


1.3 操作系统的基本特性

具有并发、共享、虚拟和异步这四个基本特征。其中,并发特征是操作系统最重要的特征,其它三个特征都是以并发特征为前提的。

1.3.1 并发性

1.并行与并发

并行性和并发性(Concurrence)是既相似又有区别的两个概念,并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。

 

2.引入进程

通常的程序是静态实体(Passive Entity),在多道程序系统中,它们是不能独立运行的,更不能和其它程序并发执行。在操作系统中引入进程的目的,就是为了使多个程序能并发执行

例如,在一个未引入进程的系统中,在属于同一个应用程序的计算程序和I/O 程序之间,两者只能是顺序执行,即只有在计算程序执行告一段落后,才允许I/O 程序执行;反之,在程序执行I/O 操作时,计算程序也不能执行,这意味着处理机处于空闲状态。但在引入进程后,若分别为计算程序和I/O 程序各建立一个进程,则这两个进程便可并发执行。由于在系统中具备使计算程序和I/O 程序同时运行的硬件条件,因而可将系统中的CPU 和I/O 设备同时开动起来,实现并行工作,从而有效地提高了系统资源的利用率和系统吞吐量,并改善了系统的性能。

为使多个程序能并发执行,系统必须分别为每个程序建立进程(Process)。简单说来,进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。多个进程之间可以并发执行和交换信息。一个进程在运行时需要一定的资源,如CPU、存储空间及I/O 设备等。

 

3.引入线程

通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的OS中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度

的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效地提高系统内多个程序间并发执行的程度。

 

1.3.2 共享性

在操作系统环境下,所谓共享(Sharing),是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用,相应地,把这种资源共同使用称为资源共享,或称为资源复用。

1 互斥共享方式

当一个进程A 要访问某资源时,必须先提出请求。如果此时该资源空闲,系统便可将之分配给请求进程A 使用。此后若再有其它进程也要访问该资源时(只要A 未用完),则必须等待。仅当A 进程访问完并释放该资源后,才允许另一进程对该资源进行访问。我们把这种资源共享方式称为互斥式共享,而把在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。

 

2 同时访问方式

系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”,在单处理机环境下往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问。典型的可供多个进程“同时”访问的资源是磁盘设备,一些用重入码编写的文件也可以被“同时”共享,即若干个用户同时访问该文件。

 

并发和共享是操作系统的两个最基本的特征,它们又是互为存在的条件。一方面,资源共享是以程序(进程)的并发执行为条件的,若系统不允许程序并发执行,自然不存在资源

共享问题;另一方面,若系统不能对资源共享实施有效管理,协调好诸进程对共享资源的访问,也必然影响到程序并发执行的程度,甚至根本无法并发执行。

 

1.3.3 虚拟技术

操作系统中的所谓“虚拟”(Virtual),是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。物理实体(前者)是实的,即实际存在的,而后者是虚的,仅是用户感觉上的东西。相应地,用于实现虚拟的技术称为虚拟技术。在操作系统中利用了两种方式实现虚拟技术,即时分复用技术和空分复用技术。

 

时分复用技术

时分复用,亦即分时使用方式,它最早用于电信业中。为了提高信道的利用率,人们利用时分复用方式,将一条物理信道虚拟为多条逻辑信道,将每条信道供一对用户通话。

1)     虚拟处理机技术

2)     虚拟设备技术

 

空分复用技术

频分复用技术来提高信道的利用率。它是将一个频率范围非常宽的信道,划分成多个频率范围较窄的信道,其中的任何一个频带都只供一对用户通话。

1)     虚拟磁盘技术

2)     虚拟存储器技术


1.3.4 异步性

进程是以人们不可预知的速度向前推进,此即进程的异步性(Asynchronism)。

 

1.4 操作系统的主要功能

操作系统的主要任务,是为多道程序的运行提供良好的运行环境,以保证多道程序能有条不紊地、高效地运行,并能最大程度地提高系统中各种资源的利用率和方便用户的使用。为实现上述任务,操作系统应具有这样几方面的功能:处理机管理,存储器管理,设备管理和文件管理。为了方便用户使用操作系统,还须向用户提供方便的用户接口.

 

1.4.1 处理机管理功能

在传统的多道程序系统中,处理机的分配和运行都是以进程为基本单位,因而对处理机的管理可归结为对进程的管理;在引入了线程的OS中,也包含对线程的管理。处理机管理的主要功能是创建和撤消进程(线程),对诸进程(线程)的运行进行协调,实现进程(线程)之间的信息交换,以及按照一定的算法把处理机分配给进程(线程)。

1.进程控制

进程控制的主要功能是为作业创建进程,撤消已结束的进程,以及控制进程在运行过程中的状态转换.

2.进程同步

进程是以异步方式运行的,并以人们不可预知的速度向前推进。为使多个进程能有条不紊地运行,系统中必须设置进程同步机制。进程同步的主要任务是为多个进程(含线程)的运行进行协调。有两种协调方式:

(1)   进程互斥方式。这是指诸进程(线程)在对临界资源进行访问时,应采用互斥方式;

(2)   进程同步方式。这是指在相互合作去完成共同任务的诸进程(线程)间,由同步机构对它们的执行次序加以协调.

 

为了实现进程同步,系统中必须设置进程同步机制。最简单的用于实现进程互斥的机制是为每一个临界资源配置一把锁W,当锁打开时,进程(线程)可以对该临界资源进行访问;而当锁关上时,则禁止进程(线程)访问该临界资源。而实现进程同步的最常用的机制则是信号量机制.

 

3.进程通信

在多道程序环境下,为了加速应用程序的运行,应在系统中建立多个进程,并且再为一个进程建立若干个线程,由这些进程(线程)相互合作去完成一个共同的任务。而在这些进

程(线程)之间,又往往需要交换信息。进程通信的任务就是用来实现在相互合作的进程之间的信息交换。当相互合作的进程(线程)处于同一计算机系统时,通常在它们之间是采用直接通信方式,即由源进程利用发送命令直接将消息(Message)挂到目标进程的消息队列上,以后由目标进程利用接收命令从其消息队列中取出消息。

 

4.调度

在后备队列上等待的每个作业都需经过调度才能执行。在传统的操作系统中,包括作

业调度和进程调度两步。

(1) 作业调度。作业调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业,为它们分配运行所需的资源(首先是分配内存)。在将它们调入内存后,便分别为它们建立进程,使它们都成为可能获得处理机的就绪进程,并按照一定的算法将它们插入就绪队列。

(2) 进程调度。进程调度的任务是从进程的就绪队列中,按照一定的算法选出一个进程,把处理机分配给它,并为它设置运行现场,使进程投入执行。值得提出的是,在多线程OS中,通常是把线程作为独立运行和分配处理机的基本单位,为此,须把就绪线程排成一个队列,每次调度时,是从就绪线程队列中选出一个线程,把处理机分配给它。

 

1.4.2 存储器管理功能

存储器管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。为此,存储器管理应具有内存分配、内存保护、地址映射和内存扩充等功能。

 

1.内存分配

内存分配的主要任务是为每道程序分配内存空间,使它们“各得其所”;提高存储器的利用率,以减少不可用的内存空间;允许正在运行的程序申请附加的内存空间,以适应程

序和数据动态增长的需要。OS在实现内存分配时,可采取静态和动态两种方式。

 

为了实现内存分配,在内存分配的机制中应具有这样的结构和功能:

(1) 内存分配数据结构。该结构用于记录内存空间的使用情况,作为内存分配的依据;

(2) 内存分配功能。系统按照一定的内存分配算法为用户程序分配内存空间;

(3) 内存回收功能。系统对于用户不再需要的内存,通过用户的释放请求去完成系统的回收功能。

 

2.内存保护

内存保护的主要任务是确保每道用户程序都只在自己的内存空间内运行,彼此互不干

扰;绝不允许用户程序访问操作系统的程序和数据;也不允许用户程序转移到非共享的其

它用户程序中去执行。

为了确保每道程序都只在自己的内存区中运行,必须设置内存保护机制。一种比较简

单的内存保护机制是设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。

3.地址映射

一个应用程序(源程序)经编译后,通常会形成若干个目标程序;这些目标程序再经过链接便形成了可装入程序。这些程序的地址都是从“0”开始的,程序中的其它地址都是相对于起始地址计算的。由这些地址所形成的地址范围称为“地址空间”,其中的地址称为“逻辑地址”或“相对地址”。此外,由内存中的一系列单元所限定的地址范围称为“内存空间”,其中的地址称为“物理地址”。

存储器管理必须提供地址映射功能,以将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。该功能应在硬件的支持下完成。

 

4.内存扩充

存储器管理中的内存扩充任务并非是去扩大物理内存的容量,而是借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多,以便让更多的用户程序并发运行。这样,既满足了用户的需要,又改善了系统的性能。

 

1.4.3 设备管理功能

设备管理用于管理计算机系统中所有的外围设备,而设备管理的主要任务是:完成用户进程提出的I/O 请求;为用户进程分配其所需的I/O 设备;提高CPU 和I/O 设备的利用率;提高I/O 速度;方便用户使用I/O 设备。为实现上述任务,设备管理应具有缓冲管理、设备分配和设备处理以及虚拟设备等功能。

1.缓冲管理

CPU 运行的高速性和I/O 低速性间的矛盾自计算机诞生时起便已存在了。而随着CPU速度迅速提高,使得此矛盾更为突出,严重降低了CPU的利用率。如果在I/O 设备和CPU之间引入缓冲,则可有效地缓和CPU与I/O 设备速度不匹配的矛盾,提高CPU的利用率,进而提高系统吞吐量。

最常见的缓冲区机制有单缓冲机制、能实现双向同时传送数据的双缓冲机制,以及能供多个设备同时使用的公用缓冲池机制。

 

2.设备分配

设备分配的基本任务是根据用户进程的I/O 请求、系统的现有资源情况以及按照某种设

备的分配策略,为之分配其所需的设备。如果在I/O 设备和CPU 之间还存在着设备控制器

和I/O 通道时,还须为分配出去的设备分配相应的控制器和通道。


1.4.4 文件管理功能

在现代计算机管理中,总是把程序和数据以文件的形式存储在磁盘和磁带上,供所有的或指定的用户使用。为此,在操作系统中必须配置文件管理机构。文件管理的主要任务是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。为此,文件管理应具有对文件存储空间的管理、目录管理、文件的读/写管理,以及文件的共享与保护等功能。

1.文件存储空间的管理

其主要任务是为每个文件分配必要的外存空间,提高外存的利用率,并能有助于提高文件系统的存、取速度。

为了提高存储空间的利用率,对存储空间的分配,通常是采用离散分配方式,以减少外存零头,并以盘块为基本分配单位。盘块的大小通常为1~8 KB。

 

2.目录管理

目录管理的主要任务是为每个文件建立其目录项,并对众多的目录项加以有效的组织,以实现方便的按名存取,即用户只须提供文件名便可对该文件进行存取。其次,目录管理还应能实现文件共享,这样,只须在外存上保留一份该共享文件的副本。

3.文件的读/写管理和保护

(1) 文件的读/写管理。该功能是根据用户的请求,从外存中读取数据,或将数据写入外存。

(2) 文件保护。

1.4.5 操作系统与用户之间的接口

(1) 用户接口。它是提供给用户使用的接口,用户可通过该接口取得操作系统的服务;

(2) 程序接口。它是提供给程序员在编程时使用的接口,是用户程序取得操作系统服务的唯一途径。

1.用户接口

为了便于用户直接或间接地控制自己的作业,操作系统向用户提供了命令接口。用户可通过该接口向作业发出命令以控制作业的运行。该接口又进一步分为联机用户接口和脱

机用户接口。

(1) 联机用户接口。这是为联机用户提供的,它由一组键盘操作命令及命令解释程序所

组成。

(2) 脱机用户接口。该接口是为批处理作业的用户提供的,故也称为批处理用户接口。

(3) 图形用户接口。另一种形式的联机用户接口。图形用户接口采用了图形化的操作界面,用非常容易识别的各种图标(Icon)来将系统的各项功能、各种应用程序和文件,直观、逼真地表示出来。用户可用鼠标或通过菜单和对话框来完成对应用程序和文件的操作。

2.程序接口

该接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的惟一途径。它是由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序,每当应用程序要求OS提供某种服务(功能)时,便调用具有相应功能的系统调用。

 

1.5 OS 结构设计

软件工程的目标是十分明确的,所开发出的软件产品应具有良好的软件质量和合理的费用,整个费用应能为用户所接受。软件质量可用这样几个指标来评价:功能性,有效性,可靠性,易使用性,可维护性和易移植性。为此,先后产生了多种操作系统的开发方法,如模块化方法、结构化方法和面向对象的方法等。

1.5.1 传统的操作系统结构

早期的无结构OS(第一代)、模块化结构的OS(第二代)和分层式结构的OS(第三代),都统称为传统结构的OS,而把微内核结构的OS称为现代结构的OS。

1.无结构操作系统

此时的OS是为数众多的一组过程的集合,每个过程可以任意地相互调用其它过程,致使操作系统内部既复杂又混乱。因此,这种OS是无结构的,也有人把它称为整体系统结构。

此时程序设计的技巧,只是如何编制紧凑的程序,以便于有效地利用内存。但随着系统的不断扩大,所设计出的操作系统就会变得既庞大又杂乱。这一方面会使所编制出的程序错误很多,给调试工作带来很多困难;另一方面也使程序难以阅读和理解,增加了维护人员的负担。

 

2.模块化结构OS

1) 模块化程序设计技术的基本概念

该技术是基于“分解”和“模块化”原则来控制大型软件的复杂度。将OS按其功能精心地划分为若干个具有一定独立性和大小的模块;每个模块具有某方面的管理功能,如进程管理模块、存储器管理模块、I/O 设备管理模块等,并仔细地规定好各模块间的接口,使各模块之间能通过该接口实现交互。然后,再进一步将各模块细分为若干个具有一定功能的子模块,如把进程管理模块又分为进程控制、进程同步等子模块,同样也要规定好各子模块之间的接口。若子模块较大时,可再进一步将它细分。这种设计方法称为模块―接口法,由此构成的操作系统就是具有模块化结构的操作系统。

 

2) 模块的独立性

在模块―接口法设计方法中,关键问题是模块的划分和规定好模块之间的接口。

衡量模块的独立性有以下两个标准:

(1) 内聚性,指模块内部各部分间联系的紧密程度。内聚性越高,模块的独立性越强。

(2) 耦合度,指模块间相互联系和相互影响的程度。显然,耦合度越低,模块的独立性

越好。

 

3) 模块接口法的优缺点

利用模块―接口法开发的OS,较之无结构OS具有以下明显的优点:

(1) 提高OS设计的正确性、可理解性和可维护性;

(2) 增强OS的适应性;

(3) 加速OS的开发过程。

 

3.分层式结构OS

1) 分层式结构的基本概念

为了将模块―接口法中“决定顺序”的无序性变为有序性,引入了有序分层法。分层法的设计任务是,在目标系统An和裸机系统(又称宿主系统)A0之间,铺设若干个层次的软件A1、A2、A3、…、An-1,使An通过An-1、An-2、…、A2、A1层,最终能在A0上运行。在操作系统中,常采用自底向上法来铺设这些中间层。

 

自底向上的分层设计的基本原则是:每一步设计都是建立在可靠的基础上。为此规定,每一层仅能使用其底层所提供的功能和服务,这样可使系统的调试和验证都变得更容易。

 
2) 分层结构的优缺点

分层结构的主要优点有:

(1) 易保证系统的正确性。自下而上的设计方式,使所有设计中的决定都是有序的,或者说是建立在较为可靠的基础上的,这样比较容易保证整个系统的正确性。

(2) 易扩充和易维护性。在系统中增加、修改或替换一个层次中的模块或整个层次,只要不改变相应层次间的接口,就不会影响其它层次,这必将使系统维护和扩充变得更加容易。

分层结构的主要缺点是:系统效率降低了。

 

1.5.2 客户/服务器模式

客户/服务器(Client/Server)模式可简称为C/S 模式。

1.客户/服务器模式的组成

客户/服务器系统主要由客户机、服务器和网络系统三个部分组成。

(1) 客户机:通常在一个LAN 网络上连接有多台网络工作站(简称客户机),每台客户机都是一个自主计算机,具有一定的处理能力,客户进程在其上运行,平时它处理一些本地业务,也可发送一个消息给服务器,以请求某项服务。

(2) 服务器:通常是一台规模较大的机器,在其上驻留有网络文件系统或数据库系统等,它应能为网上所有的用户提供一种或多种服务。平时它一直处于工作状态,被动地等待来自客户机的请求,一旦检查到有客户提出服务请求,便去完成客户的请求,并将结果送回

客户。这样,工作站中的用户进程与服务器进程便形成了客户/服务器关系。

(3) 网络系统:用于连接所有客户机和服务器,实现它们之间通信和网络资源共享的

系统。

 

2.客户/服务器之间的交互

在采用客户/服务器的系统中,通常是客户机和服务器共同完成对应用(程序)的处理。

这时,在客户机和服务器之间就需要进行交互,即必须利用消息机制在这两者之间进行多

次通信。一次完整的交互过程可分成以下四步:

(1) 客户发送请求消息。

(2) 服务器接收消息。

(3) 服务器回送消息。

(4) 客户机接收消息。

 

3.客户/服务器模式的优点

(1) 数据的分布处理和存储。

(2) 便于集中管理。

(3) 灵活性和可扩充性。

(4) 易于改编应用软件。

 

1.5.3 面向对象的程序设计

1.面向对象技术的基本概念

面向对象技术是基于“抽象”和“隐蔽”原则来控制大型软件的复杂度的。所谓对象,是指在现实世界中具有相同属性、服从相同规则的一系列事物(事物可以是一个物理实体、一个概念或一个软件模块等)的抽象,而把其中的具体事物称为对象的实例。

1) 对象

在面向对象的技术中,是利用被封装的数据结构(变量)和一组对它进行操作的过程(方法),来表示系统中的某个对象的。对象中的变量(数据)也称为属性,它可以是单个标量或一张表。

    对象中的变量(数据)对外是隐蔽的,因而外界不能对它直接进行访问,必须通过该对象中的一组方法(操作函数)对它进行访问。

2) 对象类

类是在对象上的抽象,对象则是类的实例。对象类中所定义的变量在实例中均有具体的值。

3) 继承

在面向对象的技术中,可以根据已有类来定义一个新的类,新类被称为子类(B),原来

的类被称为父类(A)。继承是父类和子类之间共享变量和方法的机制,该机制规定,子类自动继承父类中定义的变量和方法,并允许子类再增加新的内容。继承特性可使定义子类变得更为容易。一个父类可以定义多个子类,它们分别是父类的某种特例,父类描述了这些子类的公共变量和方法。

 

2.面向对象技术的优点

 (1) 通过“重用”提高产品质量和生产率。

 (2) 使系统具有更好的易修改性和易扩展性。

 (3) 更易于保证系统的“正确性”和“可靠性”。

 

1.5.4 微内核OS结构

1.微内核操作系统的基本概念

为了提高操作系统的“正确性”、“灵活性”、“易维护性”和”可扩充性”,在进行现代操作系统结构设计时,即使在单处理机环境下,大多也采用基于客户/服务器模式的微内核结构,将操作系统划分为两大部分:微内核和多个服务器。

2.微内核的基本功能

1) 进程(线程)管理

2) 低级存储器管理

3) 中断和陷入处理

 

3.微内核操作系统的优点

由于微内核OS 结构是建立在模块化、层次化结构的基础上的,并采用了客户/服务器模式和面向对象的程序设计技术,由此可见,微内核结构的OS是集各种技术优点之大成,因而使之具有如下优点:

1) 提高了系统的可扩展性

2) 增强了系统的可靠性

3) 可移植性

4) 提供了对分布式系统的支持

5) 融入了面向对象技术

 

4.微内核操作系统存在的问题

较之早期OS,微内核OS的运行效率有所降低。效率降低的最主要的原因是,在完成一次客户对OS提出的服务请求时,需要利用消息实现多次交互和进行用户/内核模式及上下文的多次切换。

在微内核OS中,由于客户和服务器及服务器和服务器之间的通信,都需通过微内核,致使同样的服务请求至少需要进行四次上下文切换。第一次是发生在客户发送请求消息给内核,以请求取得某服务器特定的服务时;第二次是发生在由内核把客户的请求消息发往服务器时;第三次是当服务器完成客户请求后,把响应消息发送到内核时;第四次是在内核将响应消息发送给客户时。



——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————《计算机操作系统》 第三版 汤子瀛 P1~P41


原创粉丝点击