当前位置:文档之家› 操作系统习题与解析

操作系统习题与解析

第二章进程的描述与控制【例1】判断题:并发是并行的不同表述,其原理相同。

()答案×。

分析并发是指多道程序的执行在时间上是重叠的,一个程序的执行尚未结束,另一个程序的执行已经开始。

但对单CPU系统而言,每一时刻只有一个程序在CPU上运行(有可能此时其他的程序在进行输入、输出)。

也就是说,占有CPU的只能有一个程序。

因此,并发实际上是“在宏观上并行执行,在微观上串行执行”。

而并行是真正意义上的并行执行,因此两者的含义是不同的。

【例2】在操作系统中引入“进程”概念的主要目的是()。

A.改善用户编程环境B.提高程序的运行速度B.C.描述程序动态执行过程的性质D.使程序与计算过程一一对应答案C 分析操作系统中多道程序的引入,使得它们在并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各道程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。

这些都是在程序的动态过程中发生的。

而程序本身是机器能够翻译或执行的一组动作或指令,它或者写在纸面上,或者存放在磁盘等介质上,是静止的。

很显然,直接从程序的字面上无法看出它什么时候运行、什么时候停顿,也看不出它是否影响其它程序或者一定受其它程序的影响。

因此,用程序这个静态概念已不能如实反映程序并发执行过程中的这些特征。

为此,人们引入进程的概念来描述程序动态执行过程的性质,这是引入“进程”概念的主要目的。

【例3】下列进程状态的转换中,不正确的是()。

A.就绪 阻塞B.运行 就绪C.就绪 运行D.阻塞 就绪答案A 分析回答这道题要知道进程的3种基本状态,以及它们之间的转换关系。

通过下图可以看到,凡是图中有箭头指向的转换都是可行的,而没有箭头指向的则不可能。

因此A 是不正确的。

如果有的同学记不住这张图,那就从理解的角度进行思考。

首先要理解3种状态的含义,然后再理解它们之间的转换。

例如:运行的进程能变成就绪吗?可以,如果运行进程的时间片到了,就必修让出CPU,转换为就绪态。

就绪的进程能变成阻塞吗?不可以,就绪态的进程已经具备了运行条件,只在等待CPU,怎么可能还退回到还不具备运行条件的阻塞态呢?因此,如果理解了,这张图就可以自己画出来,并不需要死记硬背。

【例4】进程控制块是描述进程状态和特性的数据结构,一个进程()。

A.可以有多个进程控制块B.可以和其他进程共用一个进程控制块C.可以没有进程控制块D.只能有唯一的进程控制块答案 D 分析进程控制块(PCB)是一个用于描述进程动态性质的数据结构。

操作系统根据PCB对进程实施控制和管理。

进程的动态、并发等特征也是通过PCB表现出来的。

进程由程序、数据、栈和PCB构成。

构成进程的有关程序和数据集合是进程得以存在的物质基础,它们是进程的实体;PCB用于标识和刻画实体的存在和变化,是进程存在的唯一标志。

当系统创建一个新进程时,就为它建立一个PCB;当进程终止后,系统回收为其分配的PCB,该进程在系统中就不存在了。

【例5】在执行V操作时,当信号量的值(),应释放一个等待该信号量的进程。

A.小于0 B.大于0 C.小于等于0 D.大于等于0答案C 分析P,V操作能够实现对临界区的管理要求。

它由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下:P(S):①将信号量S的值减1,即S=S 1;②如果S 0,则该进程继续执行;否则该进程置为阻塞状态,排入阻塞队列。

V(S):①将信号量S的值加1,即S=S+1;②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。

信号量的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。

信号量的值与相应资源的使用情况有关。

当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。

注意,信号量的值仅能由P,V操作来改变。

一般来说,信号量S 0时,S表示可用资源的数量。

执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S<0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。

而执行一个V操作意味着释放一个单位资源,因此S的值加1;若S 0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。

【例6】有9个生产者,6个消费者,共享容量为8的缓冲区。

在这个生产者-消费者问题中,互斥使用缓冲区的信号量mutex的初值应该为()。

A.1 B.6 C.8 D.9答案A 分析进程的互斥是指当有若干个进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用,其它要使用该资源的进程必须等待,直到占用资源者释放了该资源。

进程的互斥体现了并发进程之间访问共享资源时存在的竞争关系。

在计算机系统中必须互斥使用的资源很多,如读卡机、磁带机、打印机等硬件资源和一些公共变量、表格、队列、数据等软件资源。

利用信号量和P,V操作实现进程互斥的一般模型是:其中信号量mutex用于互斥,初值为1。

使用P,V操作实现进程互斥时应该注意的是:(1)每个程序中用户实现互斥的P、V操作必须成对出现,先做P操作,进临界区,后做V 操作,出临界区。

若有多个分支,要认真检查其成对性。

(2)互斥信号量的初值一般为1。

(3)此外,P、V操作应分别紧靠临界区的头尾部,临界区的代码应尽可能短,不能有死循环。

在本题中,既然是问互斥信号量,其初值应为1,选项中的6,8,9都是迷惑答题者的,如果对同步和互斥不能很好地理解,就很难选择。

【例7】两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种关系是进程间的()关系。

A.同步B.互斥C.竞争D.合作答案A 分析进程的同步是指并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消息,当一个进程没有得到另一个进程的消息时应等待,直到消息到达才被唤醒。

同步是进程间共同完成一项任务时直接发生相互作用的关系。

这样的例子在日常生活中不胜枚举,比如接力比赛中运动员的默契配合,工业生产中流水作业的每道工序的先后执行,以及计算机系统中对一个缓冲区的读和写等等。

当并发进程存在协作的关系时,必须互通消息,完成进程的同步。

能实现进程同步的机制称为同步机制,该机制能把其他进程需要的消息发送出去,也能测试自己需要的消息是否到达。

P,V操作是典型的同步机制之一。

用一个信号量与一个消息联系起来,当信号量的值为0时,表示期望的消息尚未产生;当信号量的值非0时,表示期望的消息已经存在。

用P,V操作实现进程同步时,调用P操作测试消息是否到达,调用V操作发送消息。

使用PV操作实现进程同步时应该注意的是:(1)分析进程间的制约关系,确定信号量种类。

在保持进程间有正确的同步关系情况下,哪个进程先执行,哪些进程后执行,彼此间通过什么资源(信号量)进行协调,从而明确要设置哪些信号量。

(2)信号量的初值与相应资源的数量有关,也与P、V 操作在程序代码中出现的位置有关。

(3)同一信号量的P、V操作要成对出现,但它们分别在不同的进程代码中。

本题中进程的同步体现的是合作关系,但答案不能选D,要使用操作系统的术语“同步”。

【例8】设有一台计算机,有两条I/O通道,分别接一台卡片输入机和一台打印机。

卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后再搬到缓冲区B2中,并在打印机上打印结果。

问:①系统要设几个进程来完成这个任务?各自的工作是什么?②这些进程间有什么样的相互制约关系?③用P、V操作写出这些进程的同步算法。

分析我们画一个草图来帮助我们理解这道题:从图中可以看出,从“卡片机”到“打印机”共需要3个操作,即输入、处理、输出。

这3个动作就是完成任务的3个进程。

下面我们看看这些进程之间有什么样的制约关系。

可以看出,这3个进程之间是同步关系,合作完成从输入到输出的工作任务。

对其中任何一个进程,要处理好与其关联的两端设备的协调工作。

以“输入进程”为例,它与卡片机和缓冲区B1关联,将卡片机的卡片输入到缓冲区B1,在不考虑卡片机的情况下,就要考虑缓冲区的情况,即是满还是空,是空缓冲区,输入进程就可以输入信息,如果缓冲区满,则要等待“处理进程”将B1中的信息取走,使之为空,输入进程才能继续工作。

依此类推,可以找出另外2个进程的制约关系。

一般来说,处理进程同步需要2个信号量,“输入进程”和“处理进程”同步,需要2个信号量,解决缓冲区B1的协调操作问题;而“处理进程”和“输出进程”同步,还需要2个信号量,解决缓冲区B2的协调操作问题。

因此,共需要4个信号量。

本题中“处理进程”的算法有一些难度,因为它需要协调两个缓冲区的工作,考虑的因素比较多,算法复杂些。

答案①系统可设三个进程来完成这个任务:R进程负责从卡片输入机上读入卡片信息,输入到缓冲区B1中;C进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;P进程负责从缓冲区B2中取出信息,并在打印机上印出。

②R进程受C进程影响,B1放满信息后R进程要等待——等C进程将其中信息全部取走,才能继续读入信息;C进程受R进程和P进程的约束:B1中信息放满后C进程才可从中取出它们,且B2被取空后,C进程才可将加工结果送入其中;P进程受C进程的约束:B2中信息放满后P进程才可从中取出它们,进行打印。

③信号量含义及初值:B1full——缓冲区B1满,初值为0;B1empty——缓冲区B1空,初值为1;B2full——缓冲区B2满,初值为0;B2empty——缓冲区B2空,初值为1;说明前面我们说过:信号量的初值与相应资源的数量有关,也与P、V操作在程序代码中出现的位置有关。

以本题为例,如果R进程的算法如下:则信号量B1empty初值应为1。

表示B1缓冲区初始为空闲状态。

如果C进程的算法如下:则信号量B2empty初值应为1。

表示B2缓冲区初始为空闲状态。

选择题(选择一个正确答案的代码填入括号中)1.顺序程序和并发程序的执行相比,()。

A.基本相同B.有点不同C.并发程序执行总体上执行时间快D.顺序程序执行总体上执行时间快2. 在单一处理机上,将执行时间有重叠的几个程序称为()。

A.顺序程序B.多道程序C.并发程序D.并行程序3. 在单CPU的系统中,若干程序的并发执行是由()实现的。

A.用户B.程序自身C.进程D.编译程序4. 进程与程序之间有密切联系,但又是不同的概念。

二者的一个本质区别是()。

A.程序是静态概念,进程是动态概念B.程序是动态概念,进程是静态概念C.程序保存在文件中,进程存放在内存中D.程序顺序执行,进程并发执行5.在操作系统中,进程的最基本的特征是()。

6.A.动态性和并发性B.顺序性和可再现性C.与程序的对应性D.执行过程的封闭性6.多个进程的实体能存在于同一内存中,在一段时间内都得到运行。

相关主题