第二章 进程的描述与控制
1.由于等待某些事件发生,进程主动进入阻塞状态。 (正确)
2.设与某资源关联的信号量初值为3,当前值为-1。若M表示该资源的可用个数,N表示等待该资源的进程数,则M、N分别是( A)。
A、0、1
B、1、2
C、2、0
D、1、0
解析:信号量的初值为3,说明有3个这样的资源可供使用。但其当前值为-1,表示有1个进程正在等待该资源。即M=0,N=1。信号量表示资源的可用个数。
根据信号量的物理含义:S.value>0时表示有S.value个资源可用;S.value==0表示无资源可用;S.value<0则|S.value|表示等待队列中的进程个数。
3.当已有进程进入自己对应于某临界资源的临界区时,所有企图进入该临界资源所对应临界区的进程必须等待,这称之为( C)。
A、空闲让进
B、让权等待
C、忙则等待
D、有限等待
解析:空闲让进:当没有进程处于临界区时,可以允许一个请求进入临界区的进程立即进入自己的临界区。
忙则等待:当已有进程进入其临界区时,其他试图进入临界区的进程必须等待。
有限等待:对要求访问临界资源的进程,应该保证能在有限时间内进入自己的临界区。
让权等待:当进程不能进入自己的临界区时,应释放处理机。
4.下列关于线程的叙述中,正确的是( B)。
A、每个线程有自己独立的地址空间
B、线程可以独立执行
C、进程只能包含一个线程
D、线程之间的通信必须使用系统调用函数
解析:每个进程都有自己的地址空间,但线程没有自己独立的地址空间,而是运行在一个进程里的所有线程共享该进程的整个虚拟地址空间。
线程可以包含CPU现场,并且可以独立执行程序。
线程之间通信方式:
1.是通过共享变量,线程之间通过该变量进行协作通信;
2.通过队列(本质上也是线程间共享同一块内存)来实现消费者和生产者的模式来进行通信;
5.进程之间的同步,主要源于进程之间的资源竞争,是指对多个相关进程在执行次序上的协调。错误
解析:进程同步是指对多个相关进程在执行次序上进行协调。主要源于进程合作
6.用户级线程执行时,同一进程不同线程的切换不需要内核支持。正确
7.在引入线程的系统中,进程仍是资源分配和调度的基本单位。正确
解析:进程表示单个运行活动集的计算机程序,是系统的资源分配和调度的基本单元,是操作系统结构的基础。
8.下列选项中不属于进程高级通信的是(D )。
A、管道通信
B、共享存储器系统
C、消息传递系统
D、信号量机制
解析:进程通信是指在进程间传输数据(交换信息)。 进程通信根据交换信息量的多少和效率的高低,分为低级通信(只能传递状态和整数值)和高级通信(提高信号通信的效率,传递大量数据,减轻程序编制的复杂度)。其中高级进程通信分为三种方式:共享内存模式、消息传递模式、共享文件模式
进程间通信的方式很多,包括:
信号(signal )通信机制;
信号量及其原语操作(PV、读写锁、管程)控制的共享存储区(shared memory )通信机制;
管道(pipeline)提供的共享文件(shared file)通信机制;
信箱和发信/ 收信原语的消息传递(message passing )通信机制。
其中前两种通信方式由于交换的信息量少且效率低下,故称为低级通信机制,相应地可把发信号/ 收信号及PV之类操作称为低级通信原语,仅适用于集中式操作系统。消息传递机制属于高级通信机制,共享文件通信机制是消息传递机制的变种,这两种通信机制,既适用于集中式操作系统,又适用于分布式操作系统。
共享存储系统(有的地方称作共享内存区)、消息传递系统(有的地方称作消息队列)、管道。
9.进程的运行具有异步性,因此进程执行的速度不能由进程自己控制。正确
10.在多个用户级线程对应一个内核支持线程的模型中,当一个多线程进程中的某个线程被阻塞后,
( B)。
A、该进程的其他线程仍可继续运行
B、整个进程都将阻塞
C、该阻塞线程将被撤销
D、该阻塞线程将永远不可能再执行
解析:在同时支持用户级线程和内核级线程的系统中,由几个用户级线程映射到几个内核级线程的问题引出了“多线程模型”问题。
多线程模型分为:多对一模型、一对一模型和多对多模型。
多对一模型
多个用户级线程映射到一个内核级线程。每个用户进程只对应一个内核级线程。
优点:用户级线程的切换在用户空间即可完成,不需要切换到核心态,线程管理的系统开销小,效率高。
缺点:当一个用户级线程被阻塞后,整个进程都会被阻塞,并发度不高。多个线程不可在多核处理机上并行运行(因为此时只有一个内核级线程)。
一对一模型
一个用户级线程映射到一个内核级线程。每个用户进程有着与用户级线程同数量的内核级线程。
优点:当一个用户级线程被阻塞后,别的用户级线程还可以继续执行,并发能力强。多线程可在多核处理机上并行执行。
缺点:一个用户进程会占用多个内核级线程,而内核级线程的切换由操作系统内核完成,需要切换到核心态,因此线程管理成本高、开销大。
多对多模型
n个用户级线程映射到m个内核级线程 ( n >= m )。每个用户进程对应m个内核级线程。
这种模型克服了多对一模型并发度不高的缺点,又克服了一对一模型中一个用户进程占用太多内核级线程,开销太大的缺点,是上述两种模型的折中方案。
11.信号量是解决进程同步与互斥问题的唯一手段。错误
解析:信号量机制是一种可以实现进程互斥、同步的有效方法。非唯一
12.(D )不是在创建进程中所完成的工作。
A、为被创建进程建立一个PCB
B、获取初始状态参数填入PCB
C、把PCB分别插入就绪队列和进程家族中
D、为进程调度CPU使用权
解析:创建进程:
申请空白PCB (2) 为新进程分配资源 (3) 初始化进程控制块 (4) 将新进程插入就绪队列
13.进程和程序最根本的区别是( B)
A、对资源的占有类型和数量
B、进程是动态的,程序是静态的
C、是否能够并发地在处理机上运行
D、进程规模小,程序规模较大
14.(A )操作不是wait操作可完成的。
A、为进程分配处理机
B、使信号量的值变小
C、可用于进程的同步
D、使进程进入阻塞状态
解析:P操作分配的是我们申请的资源,并不是处理机
PV 操作改变信号量的值,信号量是实现进程同步与互斥的机制,所以PV操作可以实现进程同步与互斥。
信号量是最早出现的用来解决进程同步与互斥问题的机制。
信号量(Saphore)值表示相应资源的使用情况。信号量S>=0时,S表示可用资源的数量。**执行一次P操作意味着请求分配一个资源,因此S的值减1;当S<0时,表示已经没有可用资源,S的绝对值表示当前等待该资源的进程数。请求者必须等待其他进程释放该类资源,才能继续运行。**而执行一个V操作意味着释放一个资源,因此S的值加1;若S<0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。
注意,信号量的值只能由PV操作来改变。
15.关于记录型信号量机制,如下说法不准确的是(D )。
A、记录型信号量的队列分量用来表示因申请对应资源失败而受阻的进程阻塞队列
B、记录型信号量的signal操作不仅执行资源的释放,还会唤醒相应进程阻塞队列的队首进程
C、记录型信号量的wait操作在进程申请对应资源未果的情况下,将把当前进程插入到相应的进程阻塞队列
D、记录型信号量的整型分量用来表示系统当前可用对应资源的数量
解析:整型信号量被定义为一个用于表示资源数目的整型量S
16.一段时间内仅允许一个进程访问的空间称为临界区。错误
解析:进程中访问临界资源的那段代码称为临界区。
在一段时间内只允许一个进程访问的资源,称为是临界资源
17.中断是OS内核最基本的功能。正确
18.下面关于PCB的说法中,错误的是( D)
A、每个进程只有1个PCB
B、1个PCB只对应1个进程
C、PCB位于内存中
D、PCB的索引组织方式比链式组织方式好
解析:进程与PCB是一一对应的。 PCB应常驻内存。
1)线性表方式:不论进程的状态如何,将所有的PCB连续地存放在内存的系统区。这种方式适用于系统中进程数目不多的情况,不适合频繁的进程调度
2)索引表方式:该方式是线性表方式的改进,系统按照进程的状态分别建立就绪索引表、阻塞索引表等。其中进程阻塞可能由于I/O请求、申请缓冲区失败、等待解锁、获取数据失败等原因造成,将其组成一张表忽略了进程的优先级,不利于进程的唤醒。
不存在谁好谁坏
19.关于整型信号量机制,下列说法不正确的是(B )。
A、整型信号量用来表示系统当前可用对应资源的数量
B、整型信号量机制无法满足空闲让进的准则
C、整型信号量机制无法满足让权等待的准则
D、整型信号量机制提供有资源申请操作和资源释放操作,也即PV操作
解析:整型信号量机制无法满足让权等待的准则wait过程中,如果不满足则一直在询问,直到满足了才跳出循环,执行后续操作。执行过程中不可中断。
20.下列特性中,哪一个不是进程的特性( C)
A、异步性
B、并发性
C、静态性
D、动态性
解析:进程的特征:
结构特征:由程序段、数据段、进程控制块三部分组成(进程实体);
动态性:进程的实质是程序的一次执行过程;
并发性:多个进程可同存于内存中,能在一段时间内同时运行;
独立性:独立运行的基本单位,独立获得资源和调度的基本单位;异步性:各进程按各自独立的不可预知的速度向前推进。
21.为使进程由静止就绪变为活动就绪,应利用( C)原语。
A、wakeup
B、suspend
C、active
D、block
解析:
活动就绪------suspend------>静止就绪
活动就绪<------active------静止就绪
活动阻塞------suspend------>静止阻塞
活动阻塞<------active------静止阻塞
22.PV操作是对信号量执行减1操作,意味着释放一个单位资源,加1后如果信号量的值小于等于零,则从等待队列中唤醒一个进程。 正确
V操作是对信号量执行加1操作,意味着释放一个单位资源,加1后如果信号量的值小于等于零,则从等待队列中唤醒一个进程,并将它变为就绪状态,而现进程继续进行。
23.对于管程而言,为区别不同的等待原因而引入了( C)的概念,并分别为之设立相应的进程等待队列。
A、信号量
B、互斥锁
C、条件变量
D、线程
24.下列进程状态的转换中,哪一个是不正确的( C)
A、就绪->运行
B、运行->就绪
C、就绪->阻塞
D、阻塞->就绪
解析:活动就绪静止就绪 活动阻塞静止阻塞 静止就绪活动就绪 静止阻塞活动阻塞
阻塞—>运行 就绪—>阻塞是不存在的
25.某个运行中的进程要申请打印机,它将变为(B )
A、就绪态
B、阻塞态
C、创建态
D、撤销态
解析:
其实处理机同一时刻只能执行一个进程。而要让处理机同时去执行多个进程,怎么办?
进程调度程序会把处理机划分成长短相同且很小的时间块,每个时间块执行一个进程,某个进程时间块用完后,回到就绪状态,换到下一个进程执行。这样轮流来执行,实现了处理机能一起一起执行多个进程。
当某个进程申请资源被占用或者启动I/O传输未完成,就处于等待状态。(此时它和其它进程不一样,它不再去争夺时间块,就相当于睡着了一样)当它所请求的资源被释放,或者启动I/O传输完成,那么就会由继续进行就绪状态,(这就好比它被唤醒了,回到就绪状态里,同其它里程争夺处理机的时间块。你的问题就是这个进程从睡着了,然后又被唤醒了。被唤醒后你不能马上就要求执行啊,因为处理机还要执行其它进程,而这个进程就要回到就绪状态,和其它进程一样却争夺处理机的执行时间块)
当前正在执行的进程由于时间片用完而暂停执行时,该进程应转变为就绪状态;若因发生某种事件而不能继续执行时,应转为阻塞状态;若终端用户的请求而暂停执行时,它应转变为静止就绪状态。
26.并发进程是指(D )
A、不可中断的进程
B、可并发执行的进程
C、可同一时刻执行的进程
D、可同时执行的进程
27.如果某一进程在运行时,因等待数据输入,此时将脱离运行状态,进入(B )
A、就绪状态
B、阻塞状态
C、挂起状态
D、终止状态
解析:
当前正在执行的进程由于时间片用完而暂停执行时,该进程应转变为就绪状态;若因发生某种事件而不能继续执行时,应转为阻塞状态;若终端用户的请求而暂停执行时,它应转变为静止就绪状态。
28.进程同步机制应遵循让权等待准则,故当一个进程不能进入自己的临界区时,应当释放( B)。
A、内存空间
B、处理器
C、I/O设备
D、外存空间
29.操作系统中有一组常称为特殊系统调用的程序(B ),它不能被系统中断。
A、初始化程序
B、原语
C、信号量
D、控制模块
30.一个程序对应一个进程。错误
解析:一个程序可以对应多个进程