操作系统 第一部分 操作系统的基本概念

操作系统部分
一、总体要求
主要考察学生对操作系统基本概念、原理的理解程度,重点考察操作系统的设计方法与实现技术,
同时能够具备运用所学的操作系统原理、方法与技术分析问题和解决问题的能力。
二、内容及比例

1. 操作系统的基本概念

*操作系统的作用

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

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

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

1) 批处理与多道程序设计

单批道处理,首先由监督程序将磁带上的第一个作业装入内存,并把运行控制权交给该作业,当该作业处理完成时,又把控制权交换给监督程序,再由监督程序把磁带上的第二个作业调入内存。计算机系统就是这样自动地一个作业紧接着一个作业地进行处理,直至磁带上的所有作业全部完成,这就是早期的批处理系统。虽然系统对作业的处理是成批进行的,但是内存中始终只保持一道作业,所以叫单批道处理系统。

多批道处理系统是同时在内存中装有多道程序,B程序可以利用A程序的I/O时间占有CPU运行,C程序可以利用B程序的I/O时间占有CPU运行,这样便可以使CPU忙碌起来,进一步提高了资源的利用率和吞吐量。但是这样也导致了作业的平均周转时间长,用户没有办法与自己的作业进行交互。
在这里插入图片描述

多道批处理系统的优点:资源利用率高、 系统吞吐量大
多道批处理系统的缺点:平均周转时间长、无交互能力
多道批处理系统需要解决的问题:处理机争用的问题,内存分配和保护的问题,I/O设备分配问题、文件的组织和管理的问题、作业管理的问题、用户与系统的接口问题

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

2) 分时系统与实时系统

1.分时系统的产生

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

分时系统要能够及时接收和处理每个用户在自己中断啊上键入的命令。
为了能过及时接收用户键入的命令和数据,需要系统配置一个多路卡。多路卡的作用是实现分时多路复用。主机以很快的速度周期性地扫描各个终端,在每个终端处停留很短的时间,如30ms,对于64用户的多路卡,用不到2秒的时间便可完成一次扫描。此外为了能使从终端上输入的数据被依次逐条地进行处理,还需为每个终端配置一个缓冲区,用来暂存用户键入的命令

为了能够及时处理用户命令,采用作业直接调入内存,轮转运行的方式。为了避免一个作业长期独占处理机,引入了时间片的概念。一个时间片就是一个很短的时间(例如30ms)。系统规定每个作业只能运行一个时间片,时间片到就暂停该作业的运行,并立即调度下一个作业运行,并立即调度下一个作业运行。

分时系统具有多路性、独立性、及时性、交互性
3.分时系统的特征
分时系统与多道批处理系统相比,具有非常明显的不同特征,由上所述可以归纳成以下四个特点:
(1) 多路性。允许在一台主机上同时联接多台联机终端,系统按分时原则为每个用户服务。宏观上,是多个用户同时工作,共享系统资源;而微观上,则是每个用户作业轮流运行一个时间片。多路性即同时性,它提高了资源利用率,降低了使用费用,从而促进了计算机更广泛的应用
(2) 独立性。每个用户各占一个终端,彼此独立操作,互不干扰。因此,用户所感觉到的,就像是他一人独占主机。
(3) 及时性。用户的请求能在很短的时间内获得响应。此时间间隔是以人们所能接受的等待时间来确定的,通常仅为1~3秒钟。
(4) 交互性。用户可通过终端与系统进行广泛的人机对话。其广泛性表现在:用户可以请求系统提供多方面的服务,如文件编辑、数据处理和资源共享等。
2.分时系统实现中的关键问题
(1) 及时接收。要及时接收用户键入的命令或数据并不困难,为此,只需在系统中配置一个多路卡。例如,当要在主机上连接8个终端时,须配置一个8用户的多路卡。多路卡的作用是使主机能同时接收各用户从终端上输入的数据。此外,还须为每个终端配置一个缓冲区,用来暂存用户键入的命令
(或数据)。
(2) 及时处理。人机交互的关键,是使用户键入命令后能及时地控制自己作业的运行,或修改自己的作业。为此,各个用户的作业都必须在内存中,且应能频繁地获得处理机而运行;否则,用户键入的命令将无法作用到自己的作业上。前面介绍的批处理系统是无法实现人机交互的。因为通常大多数作业都还驻留在外存上,即使是已调入内存的作业,也经常要经过较长时间的等待后方能运行,因而使用户键入的命令很难及时作用到自己的作业上。

由此可见,为实现人机交互,必须彻底地改变原来批处理系统的运行方式。首先,用户作业不能先进入磁盘,然后再调入内存。因为作业在磁盘上不能运行,当然用户也无法
与机器交互,因此,作业应直接进入内存。其次,不允许一个作业长期占用处理机,直至它运行结束或出现I/O请求后,方才调度其它作业运行。为此,应该规定每个作业只运行一个很短的时间(例如0.1秒钟,通常把这段时间称为时间片),然后便暂停该作业的运行,并立即调度下一个程序运行。如果在不长的时间(如3秒)内能使所有的用户作业都执行一次(一个时间片的时间),便可使每个用户都能及时地与自己的作业交互,从而可使用户的请求得到及时响应。实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并孔氏所有实时任务协调一致地运行。

实时系统有工业(武器)控制系统、信息查询系统、多媒体系统、嵌入式系统、
实时任务类型有周期性实时任务和非周期性实时任务、硬实时任务和软实时任务。

实时系统与分时系统特征的比较
多路性。信息查询系统和分时系统中的多路性都表现为系统按分时原则为多个终端用户服务;实时控制系统的多路性则是指系统周期性地对多路现场信息进行采集,以及对多个对象或多个执行机构进行控制。
独立性。信息查询系统中的每个终端用户在于系统交互时,彼此相互独立互不干扰;同样在实时控制系统中,对信息的采集和对对象的控制也都是彼此互不干扰的。
及时性。信息查询系统对实时性的要求是依据人所能接受的等待时间确定的,而多媒体系统实时性的要求是,播放出来的音乐和电视能令人满意。实时控制系统的实时性则是由控制对象所要求的截止时间来确定的,一般为毫秒级。
交互性。在信息查询系统中,人与系统的交互性仅限于访问系统中某些特定的专用服务程序。它并不像分时系统那样,能向终端用户提供数据处理、资源共享等服务。而多媒体系统的交互性也仅限于用户发出的某些命令,如开始、停止、快进等,由系统立即响应。
可靠性。分时系统要求系统可靠,实时系统要求系统高度可靠,因为任何差错都可能带来无法预料的灾难性的后果。因此才实时系统中,往往都采用了多级容错措施来保障系统的安全性及数据的安全性。

3) 操作系统的基本类型与特征

单用户单任务操作系统,只允许一个用户上机,且只允许用户程序作为一个任务运行,这是最简单的操作系统,最具代表性的单用户单任务微机操作系统是CP/M和MS/DOS

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

多任务多用户操作系统,允许多个用户通过各自的终端使用同一台机器,共享主机的各种资源,而每个用户程序又可进一步分为几个任务使他们能并发执行,其中最具代表性的是UNIX、Solaris、Linux

4) 并发与并行的概念

并行是指两个或多个事件在同一时刻发生
并发是指两个或多个事件在同一时间间隔内发生,在多道程序环境下,并发性是指在一段时间内宏观上有多个程序同时运行,在单处理机中,微观上这些程序只能分时交替执行。

1.并行与并发
  并行性和并发性(Concurrence)是既相似又有区别的两个概念,并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可同时执行。

5) 操作系统的层次结构与功能模块

1.5 OS 结构设计
*1.5.1 传统的操作系统结构
  1.无结构操作系统
  在早期开发操作系统时,设计者只是把注意力放在功能的实现和获得高的效率上,缺乏首尾一致的设计思想。此时的OS是为数众多的一组过程的集合,每个过程可以任意地相互调用其它过程,致使操作系统内部既复杂又混乱。因此,这种OS是无结构的,也有人把它称为整体系统结构。

2.模块化结构OS
  1) 模块化程序设计技术的基本概念
  模块化程序设计技术是20世纪60年代出现的一种结构化程序设计技术。该技术是基于“分解”和“模块化”原则来控制大型软件的复杂度。为使OS具有较清晰的结构,OS不再
是由众多的过程直接构成,而是将OS按其功能精心地划分为若干个具有一定独立性和大小的模块;每个模块具有某方面的管理功能,如进程管理模块、存储器管理模块、I/O设备管理模块等,并仔细地规定好各模块间的接口,使各模块之间能通过该接口实现交互。采用自底向上铺设,每层使用底层提供的服务,同时向上一层提供服务,最终在最上层运行。分层结构易保证系统的正确性、易扩充和维护、主要缺点是系统效率会低。
然后,再进一步将各模块细分为若干个具有一定功能的子模块,如把进程管理模块又分为进程控制、进程同步等子模块,同样也要规定好各子模块之间的接口。若子模块较大时,可再进一步将它细分。我们把这种设计方法称为模块―接口法,由此构成的操作系统就是具有模块化结构的操作系统。图1-6示出了由模块、子模块等组成的模块化OS结构。
在这里插入图片描述

*1.4  操作系统的主要功能

1.4.1 处理机管理功能

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

1.进程控制
  在传统的多道程序环境下,要使作业运行,必须先为它创建一个或几个进程,并为之分配必要的资源。当进程运行结束时,立即撤消该进程,以便能及时回收该进程所占用的各类资源。进程控制的主要功能是为作业创建进程,撤消已结束的进程,以及控制进程在运行过程中的状态转换。在现代OS中,进程控制还应具有为一个进程创建若干个线程的功能和撤消(终止)已完成任务的线程的功能。
2.进程同步
前已述及,进程是以异步方式运行的,并以人们不可预知的速度向前推进。为使多个进程能有条不紊地运行,系统中必须设置进程同步机制。进程同步的主要任务是为多个进程(含线程)的运行进行协调。有两种协调方式:
  (1) 进程互斥方式。这是指诸进程(线程)在对临界资源进行访问时,应采用互斥方式;
  (2) 进程同步方式。这是指在相互合作去完成共同任务的诸进程(线程)间,由同步机构对它们的执行次序加以协调。
3.进程通信
  在多道程序环境下,为了加速应用程序的运行,应在系统中建立多个进程,并且再为一个进程建立若干个线程,由这些进程(线程)相互合作去完成一个共同的任务。而在这些进程(线程)之间,又往往需要交换信息。例如,有三个相互合作的进程,它们是输入进程、计算进程和打印进程。输入进程负责将所输入的数据传送给计算进程;计算进程利用输入数据进行计算,并把计算结果传送给打印进程;最后,由打印进程把计算结果打印出来。进程通信的任务就是用来实现在相互合作的进程之间的信息交换。
4.调度
  在后备队列上等待的每个作业都需经过调度才能执行。
在传统的操作系统中,包括作业调度和进程调度两步。
  (1) 作业调度。作业调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业,为它们分配运行所需的资源(首先是分配内存)。在将它们调入内存后,便分别为它们建立进程,使它们都成为可能获得处理机的就绪进程,并按照一定的算法将它们插入就绪队列。
(2) 进程调度。进程调度的任务是从进程的就绪队列中,按照一定的算法选出一个进程,把处理机分配给它,并为它设置运行现场,使进程投入执行。值得提出的是,在多线程OS中,通常是把线程作为独立运行和分配处理机的基本单位,为此,须把就绪线程排成一个队列,每次调度时,是从就绪线程队列中选出一个线程,把处理机分配给它。

1.4.2 存储器管理功能

1.内存分配
  内存分配的主要任务是为每道程序分配内存空间,使它们“各得其所”;提高存储器的利用率,以减少不可用的内存空间;允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。
  OS在实现内存分配时,可采取静态和动态两种方式。在静态分配方式中,每个作业的内存空间是在作业装入时确定的;在作业装入后的整个运行期间,不允许该作业再申请新的内存空间,也不允许作业在内存中“移动”。在动态分配方式中,每个作业所要求的基本内存空间也是在装入时确定的,但允许作业在运行过程中继续申请新的附加内存空间,以适应程序和数据的动态增长,也允许作业在内存中“移动”。
  为了实现内存分配,在内存分配的机制中应具有这样的
结构和功能:
  (1) 内存分配数据结构。该结构用于记录内存空间的使用情况,作为内存分配的依据;
  (2) 内存分配功能。系统按照一定的内存分配算法为用户程序分配内存空间;
  (3) 内存回收功能。系统对于用户不再需要的内存,通过用户的释放请求去完成系统的回收功能。
2.内存保护
  内存保护的主要任务是确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰;绝不允许用户程序访问操作系统的程序和数据;也不允许用户程序转移到非共享的其它用户程序中去执行。
  为了确保每道程序都只在自己的内存区中运行,必须设置内存保护机制。一种比较简单的内存保护机制是设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。系统须对每条指令所要访问的地址进行检查,如果发生越界,便发出越界中断请求,以停止该程序的执行。如果这种检查完全用软件实现,则每执行一条指令,便须增加若干条指令去进行越界检查,这将显著降低程序的运行速度。因此,越界检查都由硬件实现。当然,对发生越界后的处理,还须与软件配合来完成。
3.地址映射
  一个应用程序(源程序)经编译后,通常会形成若干个目标程序;这些目标程序再经过链接便形成了可装入程序。这些程序的地址都是从“0”开始的,程序中的其它地址都是相对于起始地址计算的。由这些地址所形成的地址范围称为“地址空间”,其中的地址称为“逻辑地址”或“相对地址”。此外,由内存中的一系列单元所限定的地址范围称为“内存空间”,其中的地址称为“物理地
址”。
  在多道程序环境下,每道程序不可能都从“0”地址开始装入(内存),这就致使地址空间内的逻辑地址和内存空间中的物理地址不相一致。为使程序能正确运行,存储器管理必须提供地址映射功能,以将地址空间中的逻辑地址转换为内存空间中与之对应的物理
地址。该功能应在硬件的支持下完成。

4.内存扩充
  存储器管理中的内存扩充任务并非是去扩大物理内存的容量,而是借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多,以便让更多的用户程序并发运行。这样,既满足了用户的需要,又改善了系统的性能。为此,只需增加少量的硬件。为了能在逻辑上扩充内存,系统必须具有内存扩充机制,用于实现下述各功能:
  (1) 请求调入功能。允许在装入一部分用户程序和数据的情况下,便能启动该程序运行。在程序运行过程中,若发现要继续运行时所需的程序和数据尚未装入内存,可向OS发出请求,由OS从磁盘中将所需部分调入内存,以便继续运行。
  (2) 置换功能。若发现在内存中已无足够的空间来装入需要调入的程序和数据时,系统应能将内存中的一部分暂时不用的程序和数据调至盘上,以腾出内存空间,然后再将所需调入的部分装入内存。

1.4.3 设备管理功能

1.缓冲管理
  CPU运行的高速性和I/O低速性间的矛盾自计算机诞生时起便已存在了。而随着CPU速度迅速提高,使得此矛盾更为突出,严重降低了CPU的利用率。如果在I/O设备和CPU之间引入缓冲,则可有效地缓和CPU与I/O设备速度不匹配的矛盾,提高CPU的利用率,进而提高系统吞吐量。因此,在现代计算机系统中,都无一例外地在内存中设置了缓冲区,而且还可通过增加缓冲区容量的方法来改善系统的性能。
  
2.设备分配
  设备分配的基本任务是根据用户进程的I/O请求、系统的现有资源情况以及按照某种设备的分配策略,为之分配其所需的设备。如果在I/O设备和CPU之间还存在着设备控制器和I/O通道时,还须为分配出去的设备分配相应的控制器和通道。
  为了实现设备分配,系统中应设置设备控制表、控制器控制表等数据结构,用于记录设备及控制器的标识符和状态。根据这些表格可以了解指定设备当前是否可用,是否忙碌,以供进行设备分配时参考。在进行设备分配时,应针对不同的设备类型而采用不同的设备分配方式。对于独占设备(临界资源)的分配,还应考虑到该设备被分配出去后系统是否安全。在设备使用完后,应立即由系统回收。

3.设备处理
  设备处理程序又称为设备驱动程序。其基本任务是用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;反之,由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。
  处理过程是:设备处理程序首先检查I/O请求的合法性,了解设备状态是否是空闲的,了解有关的传递参数及设置设备的工作方式。然后,便向设备控制器发出I/O命令,启动I/O设备去完成指定的I/O操作。设备驱动程序还应能及时响应由控制器发来的中断请求,并根据该中断请求的类型,调用相应的中断处理程序进行处理。对于设置了通道的计算机系统,设备处理程序还应能根据用户的I/O请求,自动地构成通道程序。

1.4.4 文件管理功能

1.文件存储空间的管理
  为了方便用户的使用,对于一些当前需要使用的系统文件和用户文件,都必须放在可随机存取的磁盘上。在多用户环境下,若由用户自己对文件的存储进行管理,不仅非常困难,而且也必然是十分低效的。因而,需要由文件系统对诸多文件及文件的存储空间实施统一的管理。其主要任务是为每个文件分配必要的外存空间,提高外存的利用率,并能有助于提高文件系统的存、取速度。为此,系统应设置相应的数据结构,用于记录文件存储空间的使用情况,以供分配存储空间时参考;系统还应具有对存储空间进行分配和回收的功能。为了提高存储空间的利用率,对存储空间的分配,通常是采用离散分配方式,以减少外存零头,并以盘块为基本分配单位。盘块的大小通常为1~8 KB。
2.目录管理
  为了使用户能方便地在外存上找到自己所需的文件,通常由系统为每个文件建立一个目录项。目录项包括文件名、文件属性、文件在磁盘上的物理位置等。由若干个目录项又可构成一个目录文件。目录管理的主要任务是为每个文件建立其目录项,并对众多的目录项加以有效的组织,以实现方便的按名存取,即用户只须提供文件名便可对该文件进行存取。其次,目录管理还应能实现文件共享,这样,只须在外存上保留一份该共享文件的副本。此外,还应能提供快速的目录查询手段,以提高对文件的检索速度。
3.文件的读/写管理和保护
  (1) 文件的读/写管理。该功能是根据用户的请求,从外存中读取数据,或将数据写入外存。在进行文件读(写)时,系统先根据用户给出的文件名去检索文件目录,从中获得文件在外存中的位置。然后,利用文件读(写)指针,对文件进行读(写)。一旦读(写)完成,便修改读(写)指针,为下一次读(写)做好准备。由于读和写操作不会同时进行,故可合用一个读/写指针。
(2) 文件保护。为了防止系统中的文件被非法窃取和破坏,在文件系统中必须提供有效的存取控制功能,以实现下述目标:
  ① 防止未经核准的用户存取文件;
  ② 防止冒名顶替存取文件;
  ③ 防止以不正确的方式使用文件。

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

为了方便用户使用操作系统,OS又向用户提供了“用户与操作系统的接口”。该接口通常可分为两大类:
  (1) 用户接口。它是提供给用户使用的接口,用户可通过该接口取得操作系统的服务;
  (2) 程序接口。它是提供给程序员在编程时使用的接口,是用户程序取得操作系统服务的惟一途径。

1.用户接口
  为了便于用户直接或间接地控制自己的作业,操作系统向用户提供了命令接口。用户可通过该接口向作业发出命令以控制作业的运行。该接口又进一步分为联机用户接口和脱机用户接口。
  (1) 联机用户接口。这是为联机用户提供的,它由一组键盘操作命令及命令解释程序所组成。当用户在终端或控制台上每键入一条命令后,系统便立即转入命令解释程序,对该命令加以解释并执行该命令。在完成指定功能后,控制又返回到终端或控制台上,等待用户键入下一条命令。这样,用户可通过先后键入不同命令的方式,来实现对作业的控制,直至作业完成。
  (2) 脱机用户接口。该接口是为批处理作业的用户提供的,故也称为批处理用户接口。该接口由一组作业控制语言(JCL)组成。批处理作业的用户不能直接与自己的作业交互作用,只能委托系统代替用户对作业进行控制和干预。这里的作业控制语言(JCL)便是提供给批处理作业用户的、为实现所需功能而委托系统代为控制的一种语言。用户用JCL把需要对作业进行的控制和干预事先写在作业说明书上,然后将作业连同作业说明书一起提供给系统。当系统调度到该作业运行时,又调用命令解释程序,对作业说明
书上的命令逐条地解释执行。如果作业在执行过程中出现异常现象,系统也将根据作业说明书上的指示进行干预。这样,作业一直在作业说明书的控制下运行,直至遇到作业结束语句时,系统才停止该作业的运行。

(3) 图形用户接口。用户虽然可以通过联机用户接口来取得OS的服务,但这时要求用户能熟记各种命令的名字和格式,并严格按照规定的格式输入命令。这既不方便又花时间,于是,另一种形式的联机用户接口——图形用户接口便应运而生。图形用户接口采用了图形化的操作界面,用非常容易识别的各种图标(Icon)来将系统的各项功能、各种应用程序和文件,直观、逼真地表示出来。用户可用鼠标或通过菜单和对话框来完成对应用程序和文件的操作。此时用户已完全不必像使用命令接口那样去记住命令名及格式,从而把用户从繁琐且单调的操作中解脱出来。

2.程序接口
  该接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的惟一途径。它是由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序,每当应用程序要求OS提供某种服务(功能)时,便调用具有相应功能的系统调用。早期的系统调用都是用汇编语言提供的,只有在用汇编语言书写的程序中才能直接使用系统调用;但在高级语言以及C语言中,往往提供了与各系统调用一一对应的库函数,这样,应用程序便可通过调用对应的库函数来使用系统调用。但在近几年所推出的操作系统中,如UNIX、OS/2版本中,其系统调用本身已经采用C语言编写,并以函数形式提供,故在用C语言编制的程序中,可直接使用系统调用。

猜你喜欢

转载自blog.csdn.net/AnalogElectronic/article/details/88903371