第一章 操作系统概述

简介: 第一章 操作系统概述


第一章 操作系统概述


课程简介

这一章从整体上带你了解操作系统,初步认识操作系统的结构和功能,为后面展开各章节的知识点奠定基础。学完本章内容后,希望你能在宏观上把握操作系统各个部分的功能、运行环境和提供的服务,微观上掌握细微的知识点。本章内容在实际考查中出现的不多。

课程目标

  • 理解操作系统的概念、特征、功能和提供的服务
  • 能够描述出操作系统的运行机制
  • 理解操作系统的体系结构

1.操作系统的基本概念

1.1. 操作系统的概念

软件是计算机系统的灵魂,而作为软件核心的操作系统,已与现代计算机系统密不可分。

计算机系统自上而下可大致分为4部分:

用户

应用程序

操作系统

硬件

操作系统管理各种计算机硬件,为应用程序提供基础,并充当计算机硬件与用户之间的中介。

硬件如中央处理器、内存输入/输出设备等提供基本的计资源。应用程序如字处理程序、电子制表软件、编译器、网络浏览器等,规定按何种方式使用这些资源来解决用户的计算问题。操作系统控制和协调各用户的应用程序对硬件的分配与使用。在计算机系统的运行过程中,操作系统提供了正确使用这些资源的方法。

综上所述,操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。操作系统是计算机系统中最基本的系统软件。

1.2.操作系统的目标和功能

操作系统既要能够管理计算机各类软件的运行,充分发挥硬件的作用,又要能够具备用户方便操作的界面,同时,还要支持计算机系统功能的扩充。所以,为了给多道程序提供良好的运行环境,操作系统应具有以下三方面的功能:

  • 操作系统作为计算机系统资源的管理者
  • 操作系统作为用户与计算机系统之间的接口
  • 操作系统实现了对计算机资源的抽象
1.OS作为资源的管理者

(1)处理机管理

在多道程序环境下,外理机的分配和运行都以进程(或线程)为基本单位,因而对处理机的管理可归结为对进程的管理。并发是指在计算机内同时运行多个进程,因此进程何时创建、何时撤销、如何管理、如何避免冲突、合理共享就是进程管理的最主要的任务。进程管理的主要功能包括进程控制、进程同步、进程通信、死锁处理、处理机调度等。

(2)存储器管理

存储器管理是为了给名道程序的运行提供良好的环境,方便用户使用及提高内存的利用率

主要包括内存分配与回收、地址映射、内存保护与共享和内存扩充等功能。

(3)文件管理

计算机中的信息都是以文件的形式存在的,操作系统中负责文件管理的部分称为文件系统。文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等。

(4)设备管理

设备管理的主要任各是完成用户的请求,方便用户使用各种设备,并提高设备的利用率主要包括缓冲管理、设备分配、设备处理和虚拟设备等功能。

这些工作都由“工人”负责,“雇主”无须关注。

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

为了让用户方便、快捷、可靠地操纵计算机硬件并运行自己的程序,操作系统还提供了用户接口。操作系统提供的接口主要分为两类:一类是命令接口,用户利用这些操作命令来组织和控制作业的执行:另一类是程序接口,编程人员可以用它们请求操作系统服务。

(1)命令接口

使用命令接口进行作业控制的主要方式有两种,即联机控制方式和脱机控制方式。按作业控制方式的不同,可将命令接口分为联机命令接口和脱机命令接口。

联机命令接口:又称交互式命令接口,适用于分时或实时系统的接口。它由一组键盘操作命令组成。用户通过控制台或终端输入操作命令,向系统提出各种服务要求。用户每输入一条命令,控制权就转给操作系统的命令解释程序,然后由命令解释程序解释并执行输入的命令,完成指定的功能。之后,控制权转回控制台或终端,此时用户又可输入下一条命令。联机命令接口可以这样理解:“雇主”说一句话,“工人”做一件事,并做出反馈,这就强调了交互性。

脱机命令接口:又称批处理命令接口,适用于批处理系统,它由一组作业控制命令组成。脱机用户不能直接干预作业的运行,而应事先用相应的作业控制命令写成一份作业操作说明书,连同作业一起提交给系统。系统调度到该作业时,由系统中的命令解释程序逐条解释执行作业说明书上的命令,从而控制作业的运行。脱机命令接口可以这样理解:“雇主”把要“工人”做的事写在清单上“工人”按照清单命令逐条完成这些事,这就是批处理。

(2)程序接口

程序接口由一组系统调用(也称广义指令)组成。用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,如使用各种外部设备、申请分配和回收内存及甘他各种要求

当前最为流行的是图形用户界面(GUI),即图形接口。GUI最终是通过调用程序接口实现的用户通讨鼠标和键盘在图形界面上单击或使用快捷键,就能很方便地使用操作系统,严格来说,图形接口不是操作系终的一部分,但图形接口所调用的系统调用命令是。

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

裸机仅构成计算机系统的物质基础,它向用户提供的仅是硬件接口,非常难于操作和使用。人们在硬件设备上覆盖一层管理软件,隐藏了设备操作的实现细节,向用户提供了一个对硬件操作的抽象模型。这种覆盖了管理软件的机器被称为扩充机器或虚拟机。

操作系统所提供了资源管理功能和方便用户的各种服务,将裸机改造成功能更强、使用更方便的机器。由此可见,OS就是铺设在计算机硬件上的多层次软件的集合,不能增强了计算机系统的功能,还隐藏了对硬件操作的具体细节,实现了对计算机资源的抽象。

1.3. 操作系统的特征

操作系统的基本特征包括并发、共享、虚拟和异步。这些概念对理解和堂握操作系统的核心至关重要,将一直贯穿于各个章节中。

1.并发(Concurrence)

并发是指两个或多个事件在同一时间间隔(时间段)内发生。操作系统的并发性是指计算机系统中同时在在多个运行的程序,因此它且有处理和调度多个程序同时执行的能力。在操作系统中,引入进程的目的就是使程序能并发地执行。

注意同一时间间隔(并发)和同一时刻(并行)的区别:

并发:关注的是同一时间间隔——即时间段内发生的事件数量,比如午餐时段内,学校餐厅共接纳了2000名同学用餐,那么,该餐厅在午餐时段的并发量就是2000。

并行:并行性是指系统具有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的工作。比如说,学校餐厅有四个出餐口,那么该餐厅的并行数为4,即同一时间点最多能同时为四名同学打餐。

并行性需要有相关硬件的支持,如多流水线或多处理机硬件环境。

并发性体现系统在某段时间内的工作效率,并行性体现该系统“三心二意”的能力。

在多道程序环境下,一段时间内,宏观上有多道程序在同时执行,而在每个时刻,实际仅有一道程序执行(单处理机环境下),因此微观上这些程序仍是分时交替执行的。操作系统的并发性通过分时得以实现。

2.共享(Sharing)

共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。共享可分为以下两种资源共享方式。

(1)互斥共享方式

系统中的某些资源,如打印机、磁带机,虽然可供多个进程伸用,但为使得所打印或记录的结果不致造成混淆,应规定在一段时间内只允许一个进程访问该资源。为此,当进程A访问某个资源时,必须先提出请求,若此时该资源空闲,则系统便将之分配给进程A使用,此后有其它进程也要访问该资源时,只要A未用完,其它进程就必须等待。仅当进程A访问完并释放该资源后,才允许另一个进程对该资源进行访问。我们把这种资源共享方式称为互斥式共享,而把在一段时间内只允许一个进程访问的资源称为临界资源或独占资源,计算机系统中的大多数物理设各及其此软件中所用的栈,变最和表格,都是于临界咨源,它们都被要求互斥地进行享。

(2)同时访问方式

系统中还有另一类资源,这类资源允许在一段时间内由多个进程“同时”访问(这里所说的“同时”通常是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问即“分时共享的)。可供多个进程“同时”访问的典型资源是磁盘设备。

注意,互斥共享要求一种资源在一段时间内(哪怕是一段很小的时间)只能满足一个请求,否则就会出现数据的错乱,比如多个进程同时访问打印机,打印的内容交错地出现在不同的文件上,那太糟糕了!同时访问共享通常要求一个请求分几个时间片段间隔地完成,其效果与连续完成的效果相同。

并发和共享是操作系统两个最基本的特征,两者互为存在条件:

①资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题;

②若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法并发执行。

3.虚拟(Virtual)

虚拟是指把一个物理上的实体变为若干逻辑上的对应物。物理实体(前者)是实际存在的,而后者是虚的,是用户“感觉上”的现象。用于实现虚拟的技术,称为虚拟技术。操作系统中利用了多种虚拟技术来实现虚拟处理器、虚拟内存和虚拟外部设备等。

虚拟处理器技术:通过多道程序设计技术,采用让多道程序并发执行的方法,来分时使用一个处理器。此时,虽然只有一个处理器,但它能同时为多个用户服务,使每个终端用户都感觉有一个中央外理器(CPU)在专门为它服务。利用多道程序设计技术把一个物理上的CPU虚拟为多个逻辑上的CPU,称为虚拟处理器。

虚拟存储器技术:将一台机器的物理存储器变为虚拟存储器,以便从逻辑上扩充存储器的容量。当然,这时用户所感觉到的内存容量是虚的。我们把用户感觉到(但实际不存在)的存储器称为虚拟存储器。

虚拟设备技术:将一台物理Ⅰ/O设备虚拟为多台逻辑上的Ⅰ/O设备,并允许每个用户占用一台逻辑上的/设备,使原来仅允许在一段时间内由一个用户访问的设备(即临界资源)变为在一段时间内允许多个用户同时访问的共享设备。

操作系统的虚拟技术可归纳为两类:

  • 时分复用技术(TDM,Time Division Multiplexing):如处理器的分时共享;
  • 空分复用技术(SDM,Space Division Multiplexing):如虚拟存储器。
4.异步(Asynchronism)

多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性

异步性使得操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误(就像对全局变量的访问顺序不当会导致程序出错一样)。然而,只要运行环境相同,操作系统就须保证多次运行进程后都能获得相同的结果。

1.4.小试牛刀

一、单项选择题

1.【2009统考真题】单处理机系统中,可并行的是( )

Ⅰ.进程与进程 Ⅱ.处理机与设备 Ⅲ.处理机与通道 Ⅳ.设备与设备

A. Ⅰ、Ⅱ、Ⅲ

B. Ⅰ、Ⅱ、IV

C. Ⅰ、Ⅲ、IV

D. Ⅱ、Ⅲ、IV

2.用户可以通过( )两种方式来使用计算机

A.命令接口和函数

B.命令接口和系统调用

C.命令接口和文件管理

D.设备管理方式和系统调用

3.【2010统考真题】下列选项中,操作系统提供给应用程序的接口是( )。

A.系统调用

B.中断

C.库函数

D.原语

4.系统调用的目的是( )。

A.请求系统服务

B.中止系统服务

C.申请系统资源

D.释放系统资源

5.【2013统考真题】计算机开机后,操作系统最终被加载到( )

A. BIOS

B. ROM

C. EPROM

D. RAM

二、常见面试题

1.说明库函数与系统调用的区别和联系。

三、答案与解析

一、单项选择题

1.D

在单处理机系统(不包含多核的情况)中,同一时刻只能有一个进程占用处理机,因此进程之间不能并行执行。通道是独立于CPU的、控制输入/输出的设备,两者可以并行。显然,处理器与设备是可以并行的,难道CPU和显示屏不能并行工作?设备与设备是可以并行的,难道显示屏与打印机不能并行工作?

2.B

操作系统主要向用户提供命令接口和程序接口(系统调用),此外还提供图形接口;当然,图形接口其实是调用了系统调用而实现的功能。

3.A

操作系统接口主要有命令接口和程序接口(也称系统调用)。库函数是高级语言中提供的与系统调用对应的函数(也有些库函数与系统调用无关),目的是隐藏“访管”指令的细节,使系统调用更为方便、抽象。但是,库函数属于用户程序而非系统调用,是系统调用的上层。

4.A

操作系统不允许用户直接操作各种硬件资源,因此用户程序只能通过系统调用的方式来请求内核为其服务,间接地使用各种资源。

5.D

系统开机后,操作系统的程序会被自动加载到内存中的系统区,这段区域是RAM。部分未复习组成原理的读者可能对此题的答案并不熟悉,但熟悉了组成原理中的各类存储介质后,相信选对这道题并不难。

二、常见面试题

1.解答:

库函数是语言或应用程序的一部分,可以运行在用户空间中。而系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在内核空间中,而且许多库函数都会使用系统调用来实现功能。未使用系统调用的库函数,其执行效率通常要比系统调用的高。因为使用系统调用时,需要上下文的切换及状态的转换(由用户态转向核心态)。

2.操作系统的发展

2.1.手工操作阶段

此阶段无操作系统。

用户在计算机上算题的所有工作都要人工干预,如程序的装入、运行、结果的输出等。随着计算机硬件的发展,人机矛盾(速度和资源利用)越来越大,必须寻求新的解决办法。

手工操作阶段有两个突出的缺点:

①用户独占全机。不会出现因资源已被其他用户占用而等待的现象,但资源利用率低。

②CPU等待手工操作,CPU的利用不充分。一的解决办法就是用高速的机器代替相对较慢的手工操作来对作业进行控制。

2.2.批处理阶段

操作系统开始出现。

为了解决人机矛盾及CPU和Ⅰ/设备之间速度不匹配的矛盾,出现了批处理系统。它按发展历程又分为单道批处理系统、多道批处理系统(多道程序设计技术出现以后)。

1.单道批处理系统

系统对作业的处理是成批进行的,但内存中始终保持一道作业。单道批处理系统是在解决人机矛盾及CPU和Ⅰ/0设备速率不匹配的矛盾中形成的。单道批处理系统的主要特征如下:

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

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

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

此时面临的问题是:每次主机内存中仅存放一道作业,每当它在运行期间(注意这里是“运行时”而不是“完成后”发出输入/输出请求后,高速的CPU便处干等待低速的Ⅰ/0完成状态。为了进一步提高资源的利用率和系统的吞吐量,引入了多道程序技术。

2.多道批处理系统

多道程序设计技术允许多个程序同时进入内存并允许它们在CPU中交替地运行,这些程序共享系统中的各种硬/软件资源。

当一道程序因Ⅰ/O请求而暂停运行时,CPU便立即转去运行另一道程序。它不采用某些机制来提高某一技术方面的瓶颈问题,而让系统的各个组成部分都尽量去“忙”,因此切换任务所花费的时间很少,可实现系统各部件之间的并行工作,使其整体在单位时间内的效率翻倍。

当然,多道批处理系统的设计和实现要比单道系统复杂很多,因为要充分利用各种资源,就要涉及各种资源的调度问题。

多道程序设计的特点是多道、宏观上并行、微观上串行。

1)多道。计算机内存中同时存放多道相互独立的程序。

2)宏观上并行。同时进入系统的多道程序都处于运行过程中,即它们先后开始各自的运行,但都未运行完毕。

3)微观上串行。内存中的多道程序轮流占有CPU,交替执行。

多道程序设计技术的实现需要解决下列问题:

1)如何分配处理器。

2)多道程序的内存分配问题。

3)Ⅰ/O设备如何分配。

4)如何组织和存放大量的程序和数据,以方便用户使用并保证其安全性与一致性。

在批处理系统中采用多道程序设计技术就形成了多道批处理操作系统。该系统把用户提交的作业成批地送入计算机内存,然后由作业调度程序自动地选择作业运行。

**优点:**资源利用率高,多道程序共享计算机资源,从而使各种资源得到充分利用:系统吞叶量大,CPU和其他资源保持“忙碌”状态。

**缺点:**用户响应的时间较长;不提供人机交互能力,用户既不能了解自己的程序的运行情况,又不能控制计算机。

2.3.分时操作系统

所谓分时技术,是指把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用

若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时停止运行,把处理器让给其他作业使用,等待下一轮再继续运行。由于计算机速度很快,作业运行轮转得也很快,因此给每个用户的感觉就像是自己独占一台计算机。

分时操作系统是指多个用户通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。因此,实现分时系统最关键的问题是如何使用户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回用户。分时系统也是支持多道程序设计的系统,但它不同于多道批处理系统。多道批处理是实现作业自动控制而无须人工干预的系统,而分时系统是实现人机交互的系统,这使得分时系统具有与批处理系统不同的特征。分时系统的主要特征如下:

1)同时性。同时性也称多路性,指允许多个终端用户同时使用一台计算机,即一台计算机与若干台终端相连接,终端上的这些用户可以同时或基本同时使用计算机。

2)交互性。用户能够方便地与系统进行人机对话,即用户通过终端采用人机对话的方式直接控制程序运行,与同程序进行交互。

3)独立性。系统中多个用户可以彼此独立地进行操作,互不干扰,单个用户感觉不到别人也在使用这台计算机,好像只有自己单独使用这台计算机一样。

4)及时性。用户请求能在很短时间内获得响应。分时系统采用时间片轮转方式使一台计算机同时为多个终端服务,使用户能够对系统的及时响应感到满意。

虽然分时操作系统较好地解决了人机交互问题,但在一些应用场合,需要系统能对外部的信息在规定的时间(比时间片的时间还短)内做出处理(比如飞机订票系统或导弹制导系统)。因此,实时系统应运而生。

2.4.实时操作系统

为了能在某个时间内完成某些紧急任务而不需要时间片排队,诞生了实时操作系统。

这里的时间限制可以分为两种情况:

若某个动作必须绝对地在规定的时刻(或规定的时间范围)发生,则称为硬实时系统,如飞行器的飞行自动控制系统,这类系统必须提供绝对保证,让某个特定的动作在规定的时间内完成。

若能够接受偶尔违反时间规定且不会引起任何永久性的损害,则称为软实时系统,如飞机订票系统、银行管理系统。

在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并在严格的时限内处理完接收的事件。实时操作系统的主要特点是及时性和可靠性。

2.5.网络操作系统和分布式计算机系统

网络操作系统把计算机网络中的各台计算机有机地结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各台计算机之间数据的互相传送。网络操作系统最主要的特点是网络中各种资源的共享及各台计算机之间的通信。

分布式计算机系统是由多台计算机组成并满足下列条件的系统:系统中任意两台计算机通过通信方式交换信息;系统中的每台计算机都具有同等的地位,即没有主机也没有从机,每台计算机上的资源为所有用户共享;系统中的任意台计算机都可以构成一个子系统,并且还能重构:任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。

用于管理分布式计算机系统的操作系统称为分布式计算机系统。该系统的主要特点是:分布性和并行性。分布式操作系统与网络操作系统的本质不同是,分布式操作系统中的若干计算机相互协同完成同一任务。

2.6.微机操作系统的发展

个人计算机操作系统是目前使用最广泛的操作系统,它广泛应用于文字处理、电子表格、游戏中,常见的有Windows、Linux和Macintosh等,此外,还有嵌入式操作系统、服务器操作系统、智能手机操作系统等。

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

CP/M:1974年第一代通用8位微处理机芯片Intel 8080出现后的第二年,Digital Research公司就开发出了带有软盘系统的8位微机操作系统。CP/M具有较好的体系结构,可适应性强,可移植性以及易学易用等优点,使之在8位微机中占据了统治地位。

MS-DOS:1981年IBM公司首次推出了个人计算机(16位微机),采用了微软公司研发的MS-DOS(Disk Operation System)操作系统。该操作系统在CP/M基础上进行了较大扩充,使其在功能上有了很大的提高。MS-DOS性能优越,受到当时用户的广泛欢迎,是为事实上的16位单用户单任务操作系统标准。

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

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

1995年微软公司推出了Windows 95,它较之前的Windows 3.1有许多重大改进,采用了全32位的处理技术,并兼容以前的16位应用程序,在该系统中还集成了支持Internet的网络功能。2001年微软又发布了Windows XP,同时提供了家用和商业工作站两种版本,在此后的相当长一段时间内,城位使用最广泛的个人操作系统之一。

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

多用户多任务操作系统的含义是,允许多个用户通过各自的终端,使用同一台机器,共享主机系统中的各种资源,而每个用户程序又可以进一步分为几个任务,使它们能并发执行,从而进一步提高资源利用率和系统吞吐量。

典型代表是UNIX OS,是美国电报电话公司的Bell实验室在1969~1970年间开发的。随着微机性能的提高,人们又将UNIX移植到微机上。现在最有影响的两个能运行在微机上的UNIX操作系统变形是Solaris OS和Linux OS。

2.7.小试牛刀

一、单项选择题

1.【2016统考真题】下列关于批处理系统的叙述中,正确的是( )

Ⅰ.批处理系统介许多个用户与计算机直接交互

Ⅱ.批处理系统分为单道批处理系统和多道批处理系统

Ⅲ.中断技术使得多道批处理系统和Ⅰ/设备可与CPU并行工作

A.仅Ⅱ、Ⅲ

B.仅Ⅱ

C.仅Ⅰ、Ⅱ

D.仅Ⅰ、Ⅲ

2.【2017统考真题】与单道程序系统相比,多道程序系统的优点是( )。

Ⅰ.CPU利用率高 Ⅱ.系统开销小

Ⅲ.系统吞吐量大 Ⅳ.Ⅰ/0设备利用率高

A.仅Ⅰ、Ⅲ

B.仅Ⅰ、Ⅳ

C.仅Ⅱ、Ⅲ

D仅Ⅰ、Ⅲ、Ⅳ

3.【2018统考真题】下列关于多任务操作系统的叙述中,正确的是( )。

Ⅰ.具有并发和并行的特点

Ⅱ.需要实现对共享资源的保护

Ⅲ.需要运行在多CPU的硬件平台上

A.仅Ⅰ.

B.仅Ⅱ

C.仅Ⅰ、Ⅱ

D.Ⅰ、Ⅱ、Ⅲ

二、答案与解析

一、单项选择题

1.A

批处理系统中,作业执行时用户无法干预其运行,只能通过事先编制作业控制说明书来间接干预,缺少交互能力,也因此才发展出分时系统,Ⅰ错误。

批处理系统按发展历程又分为单道批处理系统、多道批处理系统,Ⅱ正确。

多道程序设计技术允许同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬/软件资源,当一道程序因Ⅰ/O请求而暂停运行时,CPU便立即转去运行另一道程序,即多道批处理系统的Ⅰ/O设备可与CPU并行工作,这都是借助于中断技术实现的,Ⅲ正确。

2.D

多道程序系统通过组织作业(编码或数据)使CPU总有一个作业可执行,从而提高了CPU的利用率、系统吞吐量和Ⅰ/O设备利用率,Ⅰ、Ⅱ、Ⅳ是优点。但系统要付出额外的开销来组织作业和切换作业,Ⅱ错误。所以选D。

3.C

多任务操作系统可在同一时间内运行多个应用程序,因此Ⅰ正确。

多个任务必须互斥地访问共享资源,为达到这一目标必须对共享资源进行必要的保护,因此Ⅱ正确。

现代操作系统都是多任务的(主要特点是并发和并行),并不一定需要运行在多CPU的硬件上,单个CPU也可满足要求,Ⅲ错误。

综上所述,Ⅰ、Ⅱ正确,Ⅲ错误,因此选C。

3.操作系统的运行环境

3.1.操作系统的运行机制

计算机系统中,通常CPU执行两种不同性质的程序:

操作系统内核程序

用户自编程序,即系统外层的应用程序,或简称“应用程序

对操作系统而言,这两种程序的作用不同——前者是后者的管理者,因此“管理程序”(即内核程序)要执行一些特权指令,而“被管理程序”(即用户自编程序)出干安全考虑不能执行这些指令。

所谓特权指令,就是指具有特殊权限的指令。这类指令只用于操作系统或其他系统软件,一般不直接提供给用户使用。主要用于系统资源的分配和管理,包括改变系统工作方式,检测用户的访问权限,修改虚拟存储器管理的段表、页表,完成任务的创建和切换等。如I/O指令、置中断指令,存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器等的指令。

在具体实现上,将CPU的状态划分为用户态(目态)和核心态(又称管态、内核态)。

可理解为CPU内部有一个小开关(程序状态字):

当小开关为0时,CU处于核心态,此时CPU可以执行特权指令;

当小开关为1时,CPU处于用户态,此时CPU只能执行非特权指令。

用户自编程序运行在用户态,操作系统内核程序运行在核心态

在软件工程思想和结构程序设计方法影响下诞生的现代操作系统,几乎都是层次式的结构。操作系统的各项功能分别被设置在不同的层次上。一些与硬件关联较紧密的模块,如时钟管理、中断外理、设备驱动等处于最低层,其次是运行频率较高的程序,如进程管理,存储器管理和设备管理等,这两部分内容构成了操作系统的内核,它们的指令操作工作在核心态

注意:计算机“指令”和高级语言的“代码”是不同的。我们一般所说的“编写代码”指的是用高级语言(如C、Java等)来编写程序。但CPU看不懂这些高级语言程序的含义,为了让这些程序能够顺利执行,就需要把它们“翻译”成CPU能懂的机器语言,即一条条指令”(这个“翻译”的过程称为“编译”)。所谓执行程序,其实就是CPU根据一条条指令的指示察执行一个个且休的操作。

内核是计算机上配置的底层软件,是计算机功能的延伸。不同系统对内核的定义稍有区别,大多数操作系统内核包括4方面的内容。

1.时钟管理

在计算机的各种部件中,时钟是最关键的设备。

计时:时钟的第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间。

时钟中断:另外,通过时钟中断的管理,可以实现进程的切换。例如,在分时操作系统中采用时间片轮转调度,在实时系统中按截止时间控制运行,在批处理系统中通过时钟管理来衡量一个作业的运行程度等。因此,系统管理的方方面面无不依赖于时钟。

2.中断机制

引入中断技术的初衷是提高多道程序运行环境中CPU的利用率,而且主要是针对外部设备的。后来逐步得到发展,形成了多种类型,成为操作系统各项操作的基础。例如,键盘或鼠标信息的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问等,无不依赖于中断机制。可以说,现代操作系统是靠中断驱动的软件。

中断机制中,只有一小部分功能属于内核,它们负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。

3.原语

按层次结构设计的操作系统,底层必然是一些可被调用的公用小程序,它们各自完成一个规定的操作。它们的特点如下:

  • 处于操作系统的最低层,是最接近硬件的部分
  • 出于系统安全性和便于管理考虑,这些程序的运行具有原子性,其操作只能一气呵成,不会被中断
  • 这些程序的运行时间都较短,而且调用频繁

通常把具有这些特点的程序称为原语(Atomic Operation)。原语是由若干条指令组成的程序段,用来实现某个特定功能,在执行过程中不可被中断。定义原语的直接方法是关闭中断,让其所有动作不可分割地完成后再打开中断。

系统中的设备驱动、CPU切换、进程通信等功能中的部分操作都可定义为原语,使它们成为内核的组成部分。

4.系统数据结构

系统中用来登记状态信息的数据结构很多,如作业控制块、进程控制块(PCB)、设备控制块,各类链表,消息队列缓冲区、空闲区登记表、内存分配表等,为了实现有效的管理,系统需要一些基本的操作,常见的操作有:

  • 进程管理。进程状态管理、进程调度和分派、创建与撤销进程控制块等。
  • 存储器管理。存储器的空间分配和回收、内存信息保护程序、代码对换程序等。
  • 设备管理。缓冲区管理、设备分配和回收等。

从上述内容可以了解,核心态指令实际上包括系统调用类指令和一些针对时钟、中断和原语的操作指令。

3.2.中断和异常的概念

在操作系统中引入和心态和用户态这两种工作状态后,就需要考虑这两种状太之间如何切换。

操作系统内核工作在核心态,而用户程序工作在用户态。系统不允许用户程序实现核心态的功能,而它们又必须使用这些功能。因此,需要在核心态建立一些“门”,以便实现从用户态进入核心态在实际操作系统中,CPU运行上层程序时唯一能进入这些“门”的途径就是通过中断或异常。发生中断或异常时,运行用户态的CPU会立即进入核心态,这是通过硬件实现的:

例如,用一个特殊寄存器的一位来表示CPU所处的工作状态:

0 表示核心态,1 表示用户态。

若要进入核心态,则只需将该位设置为0即可

中断是操作系统中非常重要的一个概念,对一个运行在计算机上的实用操作系统而言,缺少了中断机制,将是不可想象的。原因是,操作系统的发展过程大体上就是一个想方设法不断提高资源利用率的过程,而提高资源利用率就需要在程序并未使用某种资源时,把它对那种资源的占有权释放,而这一行为就需要通过中断实现。

1.中断和异常的定义

中断(Interruption)通常指外中断,即来自CPU执行指令以外事件的触发。CPU正常运行期间,停止当前操作,执行其他特殊操作的行为就叫中断,负责跳转的指令就是中断指令。如设备发出的I/O结束中断,表示设备输入/输出处理已经完成,希望处理机能够向设备发出下一个输入/输出请求,同时让完成输入输出后的程序继续运行;时钟中断,表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。这一类中断通常是与当前指令执行无关的事件,即它们与当前处理机运行的程序无关。

**异常(Exception)**通常指内中断、例外或陷入(trap),指源自CPU执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出、虚存系统的缺页及专门的陷入指令等引起的事件。对异常的处理一般要依赖于当前程序的运行现场,而且异常不能被屏蔽,一旦出现应立即处理。

陷入指令(Traps),又叫做自陷指令或访管指令,出现在计算机操作系统中,用于实现在用户态下运行的进程调用操作系统内核程序,即当运行的用户进程或系统实用进程欲请求操作系统内核为其服务时,可以安排执行一条陷入指令引起一次特殊异常。

【图-中断的分类】

2.中断处理的过程

不同计算机的中断(指外中断)处理过程各具特色,就其多数而论,中断处理流程如图所示。各阶段处理流程的描述如下:

  1. 关中断。CPU响应中断后,首先要保护程序 的现场状杰,在保护现场的过程中,CPU不应响应更高级中断源的中断请求。否则,若现场保存不完整,在中断服务程序结束后,也就不能正确地恢复并继续执行现行程序。
  2. 保存断点。为保证中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来的程序的断点(即程序计数器PC)保存起来。
  3. 引出中断服务程序。其实质是取出中断服务程序的入口地址送入程序计数器PC
  4. 保存现场和屏蔽字。进入中断服务程序后,首先要保存现场,现场信息一般是指程序状态字寄存器PSWR和某些通用寄存器的内容。
  5. 开中断。允许更高级中断请求得到响应。
  6. 执行中断服务程序。这是中断请求的目的
  7. 关中断。保证在恢复现场和屏蔽字时不被中断。
  8. 恢复现场和屏蔽字。将现场和屏蔽字恢复到原来的状态。
  9. 开中断、中断返回。中断服务程序的最后一冬指会通觉是一冬中断返同指令,使其返回到原程序的断点处,以便继续执行原程序。

其中,13步是在CPU进入中断周期后,由硬件自动(中断隐指令)完成的;49步由中断服务程序完成。恢复现场是指在中断返回前,必须将寄存器的内容恢复到中断处理前的状态,这部分工作由中断服务程序完成。中断返回由中断服务程序的最后一条中断返回指令完成。

3.系统调用

所谓系统调用,是指由操作系统实现,提供给应用程序调用,用以访问内核功能的所有接口的集合,即程序接口或应用编程接口(Application Programming Interface,API),是应用程序同系统之间的接口。用户在程序中调用操作系统所提供的一些子功能,系统调用可视为特殊的公共子程序。系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、进行I/O传输及管理文件等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。

通常,一个操作系统提供的系统调用命令有几十条乃至上百条之多。这些系统调用按功能大致可分为如下几类。

  • 设备管理。完成设备的请求或释放,以及设备启动等功能。
  • 文件管理。完成文件的读、写、创建及删除等功能。
  • 进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。
  • 进程通信。完成进程之间的消息传递或信号传递等功能。
  • 内存管理。完成内存的分配、回收以及获取作业占用内存区大小及始址等功能。

显然,系统调用相关功能涉及系统资源管理、进程管理之类的操作,对整个系统的影响非常大,因此必定需要使用某些特权指令才能完成,所以系统调用的处理需要由操作系统内核程序负责完成,要运行在核心态

用户程序可以执行陷入指令(又称访管指令或trap指令)来发起系统调用,请求操作系统提供服务。可以这么理解,用户程序执行“陷入指令”,相当于把CPU的使用权主动交给操作系统内核程序(CPU状态会从用户态进入核心态),之后操作系统内核程序再对系统调用请求做出相应处理。处理完成后,操作系统内核程序又会把CPU的使用权还给用户程序(即CPU状态会从核心态回到用户态)。

这么设计的目的是:用户程序不能直接执行对系统影响非常大的操作,必须通过系统调用的方式请求操作系统代为执行,以便保证系统的稳定性和安全性,防止用户程序随意更改或访问重要的系统资源,影响其他进程的运行。

这样,操作系统的运行环境就可以理解为:

用户通过操作系统运行上层程序(如系统提供的命令解释程序或用户自编程序),而这个上层程序的运行依赖于操作系统的底层管理程序提供服务支持,当需要管理程序服务时,系统则通过硬件中断机制进入核心态,运行管理程序;

也可能是程序运行出现异常情况,被动地需要管理程序的服务,这时就通过异常处理来进入核心态。管理程序运行结束时,用户程序需要继续运行,此时通过相应的保存的程序现场退出中断处理程序或异常处理程序,返回断点处继续执行。

【图】

在操作系统这一层面上,我们关心的是系统核心态和用户态的软件实现与切换,对于硬件层面的具体理解,可以结合“计算机组成原理”课程中有关中断的内容进行学习。

下面列举一些由用户杰转向核心态的例子:

1)用户程序要求操作系统的服务,即系统调用。

2)发生一次中断。

3)用户程序中产生了一个错误状态。

4)用户程序中企图执行一条特权指令。

5)从核心态转向用户态由一条指令实现,这条指令也是特权命令,一般是中断返回指令。

注意:由用户态进入核心态,不仅状态需要切换,而且所用的堆栈也可能需要由用户堆栈切换为系统堆栈,但这个系统堆栈也是属于该进程的。

若程序的运行由用户态转到核心态,则会用到访管指令(访问管态指令,也叫陷入trap指令),访管指令是在用户态使用的,所以它不可能是特权指令。

3.3.操作系统的结构设计

1.无结构操作系统

早期开发操作系统时,设计者只关注其功能实现和如何获得更高的效率,缺乏首尾一致的设计思想。此时的OS只是无数的过程的集合,每个过程可以任意调用其它过程,这让整个操作系统既复杂又混乱。因此,这种OS是无结构的,也有人把它称为整体系统结构。

无结构操作系统,会随着系统不断扩大,编制出的程序错误很多,给调试工作带来很多困难,而且也使程序难以阅读和理解,增加了维护人员的负担。

2.模块化结构OS

模块化技术基于“分解”和“模块化”的原则来控制大型软件的复杂度。

为使OS具有较清晰的结构,OS不再是由众多的过程直接构成,而是按其功能精心地划分为若干个具有一定独立性和大小的模块,每个模块具有某方面的管理功能。如进程管理模块、存储器管理模块、IO设备管理模块等,并仔细地规定好各模块间的接口,使各模块之间能通过接口实现交互。

各模块还可以仅需进一步细分为若干个具有一定功能的子模块,比如进程管理模块又分为进程控制、进程同步等子模块。我们把这种设计方法称为”模块-接口法“。

模块-接口法的关键问题是模块的划分和规定好模块间的接口。模块划分太小,虽然降低单个模块的复杂性,但模块之间的联系过多,也会造成系统混乱;如果模块划分过大,又会增加模块内部的复杂性,所以,划分模块时,应在二者之间权衡,这就是要考虑模块的独立性问题。

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

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

耦合度:模块间互相联系和彼此影响的程度,耦合度越低,模块独立性越好。

模块-接口法的优点:

  1. 提高OS设计的正确性、可理解性、可维护性;
  2. 增强OS的可适应性
  3. 加速OS的开发过程

模块-接口法的缺点:

各模块间的接口很难满足设计完成后对接口的实际需求

设计者每个决策,必须建立在上一个决策的基础上,而模块化设计齐头并进,无法寻找一个可靠的决定顺序,造成各种决定的”无序性“,这将使程序人员很难做到”设计中的每一步决定都是建立在可靠的基础上“,因此模块-接口法又被称为”无序模块法“

3.分层式结构OS

为了增加”模块-接口法“设计中”决定顺序“的有序性,引入了分层法。分层法的设计任务是,在目标系统An和裸机系统A0之间,铺设若干个层次的软件,使An通过An-1、An-2…A2、A1层,最终能在A0上运行。

在实践中,一般采用自底向上的方式来铺设这些中间层。这种自底向上分层设计的原则是:每一步设计都建立在可靠的基础上。为此规定,每一层仅能使用其底层所提供的功能和服务,这可以使系统的调试和验证都变得容易,因为每一层的软件与上一层(较高层次)软件无关,大大降低了复杂度。

将操作系统分成若干个层次,每个层次又可以分为若干个模块,各层之间只存在单向的依赖关系——高层仅依赖紧邻于它的低层。

分层法的优点:

易保证系统的正确性:所有设计的决定都是有序的,或者说都是建立在可靠的基础上的。

易扩充、易维护:在系统中增加、修改一个层次的模块,甚至整个层次时,只要不改变层次间的接口,就不会影响其它层次,系统维护性和扩充变得容易。

分层法的缺点:系统效率降低。层次结构的单向依赖,必须在每一层之间建立通信机制,OS每执行一个功能,都要从上而下穿越多个层次,无疑增加了系统通信的开销,从而导致系统效率降低。

4.微内核结构OS

大内核系统将操作系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为应用提供高性能的系统服务。因为各管理模块之间共享信息,能有效利用相互之间的有效特性,所以具有无可比拟的性能优势。

为解决操作系统的内核代码难以维护的问题,提出了微内核的体系结构。它将内核中最基本的功能(如进程管理等)保留在内核,而将那些不需要在核心态执行的功能移到用户态执行,从而降低了内核的设计复杂性。那些移出内核的操作系统代码根据分层的原则被划分成若干服务程序,它们的执行相互独立,交互则都借助于微内核进行通信。

微内核结构有效地分离了内核与服务、服务与服务,使得它们之间的接口更加清晰,维护的代价大大降低,各部分可以独立地优化和演进,从而保证了操作系统的可靠性。

微内核(MicroKernel)操作系统的概念,尚无一致公认的定义,但我们可以从一下几个方面对微内核结构的操作系统进行描述。

1)足够小的内核

微内核并非完整OS,而是将操作系统最基本的部分放入微内核:①与硬件紧密相关的部分;②一些基本功能;③客户和服务器之间的通信。这些只是为构建通用OS提供一个重要的基础,这样就可以确保把操作系统内核做的很小。

2)基于客户/服务器模式

将操作系统最基本的部分放入内核(客户)中,而把绝大部分其它功能放在外面的一组服务器(进程)中实现。比如对进程/线程进行管理的服务器、对虚拟存储器管理的服务器、I/O设备管理的服务器等,它们都运行在用户态,客户与服务器之间借助微内核提供的消息机制来实现信息交互。

【图】

3)应用”机制与策略分离“原理

机制,是指实现某一功能的具体执行机构;而策略,则是在机制的基础上借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标。通常,机制处于系统的基层,策略处于系统的高层。在微内核OS中,通常将机制放在OS的微内核中,这样才有可能将内核做得很小。

4)采用面向对象技术

我们不仅可以通过结构设计来分解操作系统的复杂度,还可以基于面向对象技术的”抽象“和”隐蔽“原则控制系统的复杂性,再进一步利用”对象“、”封装“和”继承“等概念来确保操作系统的正确性、可靠性、易修改性、易扩展性等,并提高操作系统的设计速度。面向对象技术被广泛用于现代操作系统的设计中。

微内核结构的最大问题是性能问题,因为需要频繁地在核心态和用户态之间进行切换,操作系统的执行开销偏大。因此有的操作系统将那些频繁使用的系统服务又移回内核,从而保证系统性能。但相当多的实验数据表明,体系结构不是引起性能下降的主要因素,体系结构带来的性能提升足以弥补切换开销带来的缺陷。为减少切换开销,也有人提出将系统服务作为运行库链接到用户程序的一种解决方案,这样的体系结构称为库操作系统。

3.4.小试牛刀

一、单项选择题

1.下列关于系统调用的说法中,正确的是( )。

Ⅰ.用户程序设计时,使用系统调用命令,该命令经过编译后,形成若干参数和陷入(trap)

指令

Ⅱ.用户程序设计时,使用系统调用命令,该命令经过编译后,形成若干参数和屏蔽中断

指令

Ⅲ.系统调用功能是操作系统向用户程序提供的接口

Ⅳ.用户及其应用程序和应用系统是通过系统调用提供的支持和服务来使用系统资源完

成其操作的

A.Ⅰ、Ⅲ

B.Ⅱ、Ⅳ

C.Ⅰ、Ⅲ、Ⅳ

D.Ⅱ、Ⅲ、Ⅳ

2.用户程序在用户态下要使用特权指令引起的中断属于( )。

A.硬件故障中断

B.程序中断

C.外部中断

D.访管中断

3.计算机区分核心态和用户态指令后,从核心态到用户态的转换是由操作系统程序执行后

完成的,而用户态到核心态的转换则是由( )完成的。

A.硬件

B.核心态程序

C.用户程序

D.中断处理程序

4.【2011统考真题】下列选项中,在用户态执行的是( )。

A.命令解释程序

B.缺页处理程序

C.进程调度程序

D.时钟中断处理程序

5.【2012统考真题】下列选项中,不可能在用户态发生的事件是( )。

A.系统调用

B.外部中断

C.进程切换

D.缺页

6.只能在核心态下运行的指令是( )

A.读时钟指令

B.置时钟指令

C.取数指令

D.寄存器清零

7.下列选项中,必须在核心态下执行的指令是( )。

A.从内存中取数

B.将运算结果装入内存

C.算术运算

D.输入/输出

8.CPU处于核心态时,它可以执行的指令是( )

A.只有特权指令

B.只有非特权指令

C.只有“访管”指令

D.除“访管”指令的全部指令

9.【2013统考真题】下列选项中,会导致用户进程从用户态切换到内核态的操作是( )

Ⅰ. 整数除以零 Ⅱ. sin() 函数调用 Ⅲ . read系统调用

A.仅Ⅰ、Ⅱ

B.仅Ⅰ、Ⅲ

C.仅Ⅱ、Ⅲ

D.Ⅰ、Ⅱ和Ⅲ

10.【2012统考真题】中断处理和子程序调用都需要压栈以保护现场,中断处理一定会保存

而子程序调用不需要保存其内容的是( )

A.程序计数器

B.程序状态字寄存器

C.通用数据寄存器

D.通用地址寄存器

11.【2014统考真题】下列指令中,不能在用户态执行的是( )。

A.trap指令

B.跳转指令

C.压栈指令

D.关中断指令

12.【2015统考真题】内部异常(内中断)可分为故障(fault)、陷阱(trap)和终止(abort)

三类。下列有关内部异常的叙述中,错误的是( )。

A.内部异常的产生与当前执行指今相关

B.内部异常的检测由CPU内部逻辑实现

C.内部异常的响应发生在指令执行过程中

D.内部异常处理后返回到发生异常的指令继续执行

13.【2016统考真题】异常是指今执行过程中在处理器内部发生的特殊事件,中断是来自处

理器外部的请求事件。下列关于中断或异常情况的叙述中,错误的是( )

A.“访存时缺页”属于中断

B.“整数除以0”属于异常

C.“DMA传送结束”属干中断

D.“存储保护错”属于异常

14.【2015统考真题】处理外部中断时,应该由操作系统保存的是( )

A.程序计数器(PC)的内容

B.通用寄存器的内容

C.块表(TLB)中的内容

D.Cache中的内容

15.【2015统考真题】假定下列指令已装入指令寄存器,则执行时不可能导致CPU从用

户态变为内核态(系统态)的是( )

A.DIV R0, R1 ; (R0)/(R1)→R0

B.INT n ; 产生软中断

C.NOT R0 ; 寄存器R0的内容取非

D.MOV R0, addr; 把地址addr处的内存数据放入寄存器R0

16.【2017统考真题】执行系统调用的过程包括如下主要操作:

①返回用户态 ②执行陷入(trap)指令

③传递系统调用参数 ④执行相应的服务程序

正确的执行顺序是( )

A. ②→③→①→④

B. ②→④→③→①

C. ③→②→④→①

D. ③→④→②→①

17.【2018统考真题】定时器产生时钟中断后,由时钟中断服务程序更新的部分内容是( )。

Ⅰ内核中时钟变量的值

Ⅰ.当前进程占用CPU的时间

ⅡI.当前进程在时间片内的剩余执行时间

A仅Ⅰ、Ⅱ

B.仅Ⅱ、Ⅲ

C.仅Ⅰ、Ⅲ

D.Ⅰ、Ⅱ、Ⅲ

18.【2019统考真题】下列关于系统调用的叙述中,正确的是( )

Ⅰ.在执行系统调用服务程序的过程中,CPU处于内核态

Ⅱ.操作系统通过提供系统调用避免用户程序直接访问外设

Ⅲ.不同的操作系统为应用程序提供了统一的系统调用接口

Ⅳ.系统调用是操作系统内核为应用程序提供服务的接口

A.仅Ⅰ、Ⅳ

B.仅Ⅱ、Ⅲ

C.仅Ⅰ、Ⅱ、Ⅳ

D.仅Ⅰ、Ⅲ、Ⅳ

二、常见面试题

1.处理器为什么要区分核心态和用户态两种操作方式?在什么情况下进行两种方式的切换?

2.为什么说直到出现中断和通道技术后,多道程序概念才变得有用?

三、答案与解析

一、单项选择题

1.C

Ⅰ正确:系统调用需要触发trap指令如基于x86的Linux系统,该指令为int0x80或sysenter。 Ⅰ是干扰项,程序设计无法形成屏蔽中断指令。Ⅱ正确;系统调用的概念。IV正确;操作系统是一层接口,对上层提供服务,对下层进行抽象。它通过系统调用向其上层的用户、应用程序和应用系统提供对系统资源的使用。

2.D

因操作系统不允许用户直接执行某些“危险性高”的指令,因此用户态运行这些指令的结果会转成操作系统的核心态去运行。这个过程就是访管中断。

3.A

计算机通过硬件中断机制完成由用户态到核心态的转换。B显然不正确,核心态程序只有在操作系统进入核心态后才可以执行。D中的中断处理程序一般也在核心态执行,因此无法完成“转换成核心态”这一任务。若由用户程序将操作系统由用户态转换到核心态,则用户程序中就可使用核心态指令,这就会威胁到计算机的安全,所以C不正确。

计算机通过硬件完成操作系统由用户态到核心态的转换,这是通过中断机制来实现的。发生中断事件时(有可能是用户程序发出的系统调用)触发中断,硬件中断机制将计算机状态置为核心态。

4.A

缺而外理和时钟中断都属干中断,在核心态执行:进程调度是操作系统内核进程,无须用户于预,在核心态执行;命令解释程序属于命令接口,是4个选项中唯一能面对用户的,它在用户态执行。

5.C

本题的关键是对“在用户态发生”(与上题的“执行”区分)的理解。对于A,系统调用是操作系统提供给用户程序的接口,系统调用发生在用户态,被调用程序在核心态下执行。对于B.外部中断是用户杰到核心态的“门”,也发生在用户杰,在核心杰完成中断过程。对于C,进程切换属于系统调用执行过程中的事件,只能发生在核心态对于D,缺页产生后,在用户态发生缺页中断,然后进入核心态执行缺页中断服务程序。

6.B

若在用户杰下执行“詈时钟指令”则一个用户进程可在时间片还未到之前把时钟改回去,从而导致时间片永远不会用完,进而导致该用户进程一直占用CPU,这显然不合理。

7.D

输入/输出指令涉及中断操作,而中断处理是由系统内核负责的,工作在核心态。而A、B、 C选项均可通过使用汇编语言编程来实现,因此它们可在用户态下执行。当然,读者也可用前面提到的“水杯”例子思考如何排除A、BC。操作系统管理内存时,管理的是内存中的数据放在哪里、哪里可以放数据、哪里不可以放数据(内存保护)、哪里空闲等问题,而内存中的数据是什么、怎么读和写,都不是核心杰关心的。就好像操作系统管理的是杯子摆在哪里、哪些杯子中的水可以喝哪些杯子中的水不能喝,而杯子中是水还是饮料,你是盒起杯子喝还是把吸管插进去吸,都不是操作系统关心的问题。“杯子”的例子可以帮助我们准确理解操作系统的任务,后续章节中的很多问题采用这个例子进行对比,就会十分清晰。

8.D

访管指令在用户态下使用,是用户程序“自愿进管”的手段,用户态下不能执行特权指令。在核心态下,CPU可以执行指令系统中的任何指令。

9.B

需要在系统内核态执行的操作是整数除零操作(需要中断处理)和read系统调用函数,sin0函数调用是在用户态下进行的。

10.B

子程序调用只需保存程序断点,即该指令的下一条指令的地址:中断调用子程序不仅要保存断点(PC的内容),还要保存程序状态字寄存器(PSW)的内容。在中断处理中,最重要的两个寄存器是PC和PSWR。

11.D

trap指令、跳转指令和压栈指令均可以在用户态执行,其中trap指令负责由用户态转换为内核态。关中断指令为特权指令,必须在核心态才能执行,选D。注意,在操作系统中,关中断指今是权限非常大的指令,因为中断是现代操作系统正常运行的核心保障之一,能把它关掉,说明执行这条指令的一定是权限非常大的机构(管态)。

12.D

内中断是指来自CPU和内存内部产生的中断,包括程序运算引起的各种错误,如地址非法、校验错、页面失效、非法指令、用户程序执行特权指令自行中断(INT)和除数为零等,以上都是在指令的执行过程中产生的,因此A正确。这种检测异常的工作肯定是由CPU(包括控制器和运算器)实现的,因此B正确。内中断不能被屏蔽,一日出现应立即外理,C正确。对于D,老虑到特殊情况,如除数为零和自行中断(INT)都会自动跳过中断指令,所以不会返回到发生异常的指令继续执行,因此错误。

13.A

中断是指来自CPI行指今以外事件的发生,如设备发出的/0结束中断,表示设备输入输出处理已经完成,希望处理机能够向设备发出下一个输入/输出请求,同时让完成输入/输出后的程序继续运行。时钟中断,表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。这一类中断通常是与当前程序运行无关的事件,即它们与当前处理机运行的程序无关。异常也称内中断、例外或陷入(trap),指源自CPU执行指令内部的事件,如程序的非法操作码地址越界、算术溢出、虚存系统的缺页及专门的陷入指令等引起的事件。A错误。

14.B

外部中断处理过程,PC值由中断隐指令自动保存,而通用寄存器内容由操作系统保存。

15.C

考虑到部分指令可能出现异常(导致中断),从而转到核心态。指令A有除零异常的可能,指令B为中断指令,指令D有缺页异常的可能,指令C不会发生异常。

16.C

执行系经调用的过程如下,正在运行的进程先传递系统调用参数,然后由陷入(tran)指今负责将用户态转换为内核态,并将返回地址压入堆栈以备后用,接下来CPU执行相应的内核态服务程序,最后返回用户态。所以选项C正确。

17.D

时钟中断的主要工作是处理和时间有关的信息及决定是否执行调度程序。和时间有关的所有信息包括系统时间、进程的时间片、延时、使用CPU的时间、各种定时器,因此Ⅰ、Ⅱ、Ⅰ均正确。

18.C

用户可以在用户态调用操作系统的服务,但执行具体的系统调用服务程序是处于内核态的,工正确:设备管理属干操作系统的职能之一、包括对输入/输出设备的分配、初始化、维护等,用

户程序需要通过系统调用使用操作系统的设备管理服务,Ⅱ正确;操作系统不同,底层逻辑、实现方式均不相同,为应用程序提供的系统调用接口也不同,Ⅲ错误:系统调用是用户在程序中调用操作系统提供的子功能,IV正确。

二、综合应用题

1.解答:

区分执行态的主要目的是保护系统程序。用户杰到核心态的转换发生在中断产生时,而核心态到用户态的转换则发生在中断返回用户程序时。

2.解答:

多道程序并发物行具指有的程序正在CPI上执行,而另一些程序正在1/0设备上进行传输,即通过CPU操作与外设传输在时间上的重叠必须有中断和通道技术的支持,原因如下:

1)通道是一种控制一台或多台外部设备的硬件机构,它一旦被启动就独立于CPU运行,因而做到了输入/输出操作与CPU并行工作。但早期CPU与通道的联络方法是由CPU向通道发出询问指令来了解通道工作是否完成的。若未完成,则主机就循环询问直到通道工作结束为止。因此,这种询问方式是无法真正做到CPU与Ⅰ/O设备并行工作的。

2)在硬件上引入了中断技术。所谓中断,就是在输入/输出结束时,或硬件发生某种故障时,由相应的硬件(即中断机构)向CPU发出信号,这时CPU立即停下工作面转向处理中断请求。待处理完中断后再继续原来的工作。

因此,通道技术和中断技术结合起来就可实现CPU与/O设备并行工作,即CPU启动通道传输数据后便去执行其他程序的计算工作,而通道则进行输入/输出操作:当通道工作结束时,再通过中断机构向CPU发出中断请求,CPU则暂停正在执行的操作,对出现的中断进行处理,处理完后再继续原来的工作。这样,就真正做到了CPU与Ⅰ/O设备并行工作。此时,多道程序的概念才变为现实。

4.本章疑难点

1.并行性与并发性的区别和联系

并行性和并发性是相似又有区别的两个概念,

并行性具指两个成多个事件在同一时刻发生,

并发性是指两个或多个事件在同一时间间隔内发生。

在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序同时运行,但在单处理器系统中每个时刻却仅能有一道程序执行,因此微观上这些程序只能分时地交替执行

若在计算机系统中有多个处理器,则这些可以并发执行的程序便被分配到多个外理器上,实现并行执行,利用每个处理器来处理一个可并发执行的程序。

2.特权指令与非特权指令

所谓特权指令,是指有特殊权限的指令,由于这类指令的权限最大,使用不当将导致救个系统崩溃,如清内存、置时钟、分配系统资源、修改虚存的段表或页表、修改用户的访问权限等。

若所有程序都能使用这些指令,则系统一天死机n次就不足为奇。为了保证系经安全,这类指今日能用于操作系统或其他系统软件,不直接提供给用户使用。因此,特权指令必须在核心态执行。实际上,CPU在核心态下可以执行指令系统的全集。形象地说,特权指令是那些儿童不宜的东西,而非特权指令则老少皆宜。

为了防止用户程序中使用特权指令,用户态下只能使用非特权指今,核心态下可以使用全部指令。在用户态下使用特权指令时,将产生中断以阻止用户使用。所以把用户程序放在用户态下运行,而操作系统中必须使用特权指令的那部分程序在核心态下运行,保证了计算机系统的安全可靠。从用户态转换为核心态的唯一途径是中断或异常。

3.访管指令与访管中断

访管指令是一条可以在用户态下执行的指令。在用户程序中,因要求操作系统提供服务而有意识地使用访管指令,从而产生一个中断事件(自愿中断),将操作系统转换为核心态,称为访管中断。访管中断由访管指令产生,程序员使用访管指令向操作系统请求服务。

为什么要在程序中引入访管指今呢?这是因为用户程序只能在用户态下运行,若用户的部分工作在用户态下无法完成,该怎么办?解决这个问题要靠访管指令。访管指令本身不是特权指令,其基本功能是让程序拥有“自愿进管”的手段,从而引起访管中断。

处于用户态的用户程序使用访管指令时,系统根据访管指令的操作数执行访管中断外理程序,访管中断处理程序将按系统调用的操作数和参数转到相应的例行子程序。完成服务功能后,退出中断,返回到用户程序断点继续执行。

目录
相关文章
|
13天前
|
Unix C语言
操作系统基础:IO管理概述【上】
操作系统基础:IO管理概述【上】
操作系统基础:IO管理概述【上】
|
13天前
|
数据采集 存储 Ubuntu
Linux操作系统概述
【1月更文挑战第1天】Linux操作系统概述。
42 1
|
13天前
|
存储 调度
操作系统基础:内存管理概述【下】
操作系统基础:内存管理概述【下】
|
13天前
|
算法
操作系统基础:内存管理概述【上】
操作系统基础:内存管理概述【上】
|
7月前
操作系统(3.5)--死锁概述
系统中所拥有的不可抢占性资源其数量不足以满足多个进程运行的需要,使得进程在运行过程中,会因争夺资源而陷入僵局。
56 0
|
7月前
|
存储 Linux Android开发
操作系统的概述
操作系统(Operating System,简称OS)简单通俗来讲就是一款软件。不过和一般软件不同,操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件。任何其他软件都必须在操作系统的支持下才能运行。 Linux 也是众多操作系统之一,要想知道 Linux 是什么,首先得说一说什么是操作系统。 计算机是一台机器,它按照用户的要求接收信息、存储数据、处理数据,然后再将处理结果输出(文字、图片、音频、视频等)。计算机由硬件和软件组成: 硬件是计算机赖以工作的实体,包括显示器、键盘、鼠标、硬盘、CPU、主板等; 软件会按照用户的要求协调整台计算机的工
73 1
|
9月前
|
存储 数据建模 Serverless
操作系统概述
4.2 Excel的基本操作 4.2.1工作簿的新建和打开 1、工作簿与工作表 工作簿是指在excel中用来存储并处理数据的文件,其扩展名是.xlsx。 各工作簿是由工作表组成的,每个工作簿都可以包含一个或多个工作表,用户可以用其中的工作表来组织种相关数据。工作表不能单独存盘,只有工作簿才能以文件的形式存盘;因此执行保存命令式对工作簿执行的,会将其中所有工作表一起保存。 1)工作簿(Sheet)是一个由行和列交叉排列的二维表格,也称作电子表格,用于组织和分析数据。 2)Excel的一个工作簿默认有3个工作表,用户可以根据需要添加工作表,一个工作簿最多可以包括无数个工作表 3)但新建时
|
7月前
|
Linux Shell Go
《Linux操作系统编程》第四章 屏幕编程器vi : 了解屏幕编辑器vi的概述和基本操作命令
《Linux操作系统编程》第四章 屏幕编程器vi : 了解屏幕编辑器vi的概述和基本操作命令
66 0
|
7月前
|
安全 调度 数据安全/隐私保护
操作系统概述
操作系统是计算机系统中的核心软件之一,它是管理和控制计算机硬件和软件资源的系统软件。操作系统提供了一个统一的接口,使得用户和应用程序可以方便地与计算机系统进行交互。下面将详细介绍操作系统的概述及其功能。 1. 定义:操作系统是一种系统软件,它是计算机系统中的核心组成部分,负责管理和控制计算机硬件和软件资源,为用户和应用程序提供一个统一的接口。 2. 功能:操作系统具有多种功能,包括进程管理、内存管理、文件系统管理、设备管理和用户界面等。 - 进程管理:操作系统负责创建、调度和终止进程,为进程分配资源,控制进程的执行和通信。 - 内存管理:操作系统负责管理计算机的内存资源,包
29 0
|
13天前
|
算法 Shell Linux
操作系统概述
操作系统概述
21 0