os_exercises

信号量

单选题


临界区是指()

解释:每个进程有一个代码段称为临界区,在该区中进程可能改变共同变量、更新一个表、写一个文件等。

多个进程对信号量S进行了6次P操作,2次V操作后,现在信号量的值是-3,与信号量S相关的处于阻塞状态的进程有几个()

解释:信号量的当前值为-3,当信号量<=0时,再次执行wait()操作,信号量值减一,同时该进程阻塞自己,将其放入到与信号量相关的等待队列中,并将该进程的状态切换到等待状态,所以可以得到答案

2元信号量可以初始化为()

解释:通常操作系统区分计数信号量与二进制信号量,二进制信号量的值只能为0或1

在信号量中wait()和signal()操作的意义分别是()

解释:除了初始化外,信号量只能通过两个标准原子操作:wait()和signal()来访问,分别为信号量减一和加一

进程P1有语句S1,进程P2有语句S2,P1和P2共享一个信号量sem,且初始化为0,P1的语句为:S1; signal(sem); P2的语句为: wait(sem); S2; 这样的效果是()

解释:因为sem初始化为0,P2只有在P1调用signal(sem) (即S1)之后,才会执行S2

自旋锁会要求忙等待,会浪费CPU时钟,但是它也有优点,自旋锁的优点是()

解释:自旋锁的主要缺点是都要求忙等待,当一个进程位于其临界区内时,任何其他试图进入其临界区的进程都必须在其进入代码中连续地循环,但是它也有其自身的优点,进程在等待时不进行上下文切换,而上下文切换可能需要花费相当长时间

假设一个进程用wait(mutex)替代了signal(mutex),如下,会产生什么现象()

    wait(mutex);
    ...
    critical section
    ...
    wait(mutex);

解释:因为wait(mutex)之后,并没有对信号量进行增加,当再执行wait(mutex),可能会因为等待信号量而出现死锁

以下关于P、V操作描述正确的是()

解释:除了初始化外,信号量只能通过两个标准原子操作:wait()和signal()来访问,这些操作原来被称为P和V

(2010年计算机联考)设与某资源关联的信号量(K)初值为3,当前值为1.若M表示该资源的可用个数,N表示等待该资源的进程数,则M、N分别是()

解析:信号量表示当前可用的相关资源数。当信号量K>0时,表示还有K个相关资源可用;而当信号量K<0时,表示有|K|个进程在等待该资源。所以该资源可用数是1,等待该资源的进程数是0

(2011年全国统考)有两个并发执行的进程P1和P2,共享初值为1的变量x。P1对x加1,P2对x减一。加1和减1操作的指令序列分别如下所示,两个操作完成后,x的值()。

加一操作            减一操作
Load R1,x          load R2,x
inc R1             dec R2
store x,R1         store x,R2

解析:依次执行P1-1,P1-2,P1-3,P2-1,P2-2,P2-3,得到的结果是1;依次执行P1-1,P1-2,P2-1,P2-2,P2-3,P1-3,得到的结果是2;依次执行P2-1,P2-2,P1-1,P1-2,P1-3,P2-3得到的结果是0

(电子科技大学)不是信号量能实现的功能是()

解析:考察信号量的功能,信号量可以用于实现进程间的同步和互斥,可以描述并发进程执行的前趋关系。

(兰州大学)原语是()

解析:考察原语的基本概念,原语最大特点是执行过程不可中断

(武汉理工大学)用V操作唤醒一个等待进程时,被唤醒的进程状态变为()

解析:考察PV操作的实现

(武汉理工大学)用来实现进程同步与互斥的PV操作实际上是由()过程组成的

解析:PV原语通过操作信号量来处理进程间的同步与互斥问题。其核心就是一段不可分割不可中断的程序

(上海交通大学)用PV操作实现进程同步,信号量的初值()

解析:用PV操作实现同步时,一定要根据具体情况来定义信号量和调用P操作或V操作

(青岛大学)设系统有10个并发进程通过PV操作原语共享同一临界资源,若该临界资源互斥信号量为MUTEX,则MUTEX的值域为()

解析:用信号量实现进程的互斥,初值一般设为1,而每个进程执行一次P操作后,信号量值减1

(南航)要实现两个进程互斥,设一个互斥信号量mutex,当mutex为0时,表示()

解析:在使用信号量实现进程之间的互斥时,其初值为1,现在mutex为0,说明1个进程进入临界区


多选题

Quiz

Question 1 of 6

(哈工大)以下()属于临界资源

Question 2 of 6

信号量原子执行的问题,一般情况下通过哪两种方式解决()

Question 3 of 6

以下信号量的物理含义,正确的是()

Question 4 of 6

采用PV同步机制来编写并发程序,对于共享变量及信号量变量的操作将被分散于各个进程中的缺点有()

Question 5 of 6

管程的主要特点有()

Question 6 of 6

管程由以下哪些组成()

判断题

Quiz

Question 1 of 8

信号量的初值必须是大于零的整数()

Question 2 of 8

每个信号量都有整形值和一个进程链表()

Question 3 of 8

通常在进程对信号量减1之前,无法提前知道该信号量是否会阻塞()

Question 4 of 8

无论如何使用信号量都不会产生死锁问题()

Question 5 of 8

管程通过使用条件变量提供对同步的支持,这些条件变量包含在管程中,并且只有管程才能访问()

Question 6 of 8

在管程中的signal()与信号量中的signal()操作实现及意义完全相同()

Question 7 of 8

管程中的局部数据变量可以被外部直接访问()

Question 8 of 8

当一个进程在管程中执行时,调用管程的其他进程都不会被阻塞()