当前位置: 代码迷 >> 综合 >> 进程同步--习题
  详细解决方案

进程同步--习题

热度:67   发布时间:2023-12-28 23:06:27.0

1. 下面有关数据不一致性的论述中,正确的是()
    1. 存在于并发运行的协同进程之间
    2. 同一进程在在同一批数据上多次运行的结果可能不一样
    3. 单任务操作系统不存在数据不一致性
2. 如P和V操作的信号量S初值为4,则现在S=-1,表示有1个进程在等待该信号量
3. 用V操作可以唤醒一个进程,被唤醒的进程状态可能会变成就绪
4. 有两个并发进程,设置了互斥信息mutex,现在mutex=0,则表示一个进程进入临界区
5. 所有的生产者必须等待消费者先运行的前提条件是缓冲区为满
6. 所有的消费者必须等待生产者先运行的前提条件是缓冲区空
7. 在读者写着问题中,能同时执行读写的是不同读者
8. 哲学家就餐问题的解决方案如下:
     semephore chopstick[5];semaphore seat;哲学家i:p(seat);p(chopStick[i]);p(chopStick[(i+1)%5]);吃饭V(chopStick[i]);V(chopStick[(i+1)%5]);v(seat);其中,信号量seat的初值为4
9.  在哲学家就餐问题中,有以下代码:p(m);test(i);V(m);test[i]中的临界资源包括state[(i+1)%5]
10. 引入条件变量后的管程内部,存在()
    1. 条件队列
    2. 紧急队列
    3. 条件变量
11.     进程P调用wait操作唤醒进程Q后,P等待直到Q离开管程才允许的管程是Hoare管程
12. 有界缓冲问题中,
        "counter++"的伪机器语言为:(S0)register1=counter(S1)register1=register1+1(S2)counter=register1
        "counter-"的伪机器语言为:(S3)register2=counter(S4)register2=register2-1(S5)counter=register2当这两段代码并行执行时,有3中不同的执行结果。
13. 有界缓冲问题中,"counter++"的伪机器语言为:(S0)register1=counter(S1)register1=register1+1(S2)counter=register1当两个生产者并发执行"counter++"时,有2中不同的运行结果。
14. 访问临界区过程中,在临界区前的进入区应该实现互斥准则
15. 访问临界区过程中,在临界区后的退出区应该实现有空让进准则
16. 存在忙等的信号量是整型信号量
17. 在生产者消费者问题中,生产者的代码“把产品放入指定缓冲区”和消费者的代码“从满缓冲区取出一个产品”存在其它种不同的运行可能。
18. 在生产者消费者问题中,生产者的代码中的signal(full)可能会唤醒消费者。
19. 在生产者消费者问题中,消费者执行Wait(full)后阻塞的原因是full<1
20. 读者优先的读者写着问题中,写着可以进入写的前提条件是既没有读者在读,也没有写者在写
21. 系统中有10个并发进程涉及某个相同的变量A,则变量A的相关临界区最少有10个。
22. 进程P1对信号量S执行Wait(S)操作,则信号量S的值应减1
23. 有m个进程共享同一临界资源,若使用信号量机制实现对这一临界资源的互斥访问,则信号量的变化范围是-(m-1)~1
24. 设两个进程共用一个临界资源的互斥信息量mutex,当mutex=1时表示没有一个进程进入临界区
25. 设两个进程共用一个临界资源的互斥信号量mutex,当mutex=-1时表示一个进程进入了临界区,另一个进程等待
26. 若有10个进程共享同一程序段,而且每次最多允许5个进程进入程序段,则互斥信号量的变化范围是(-5)~5
27. 消费者阻塞wait(full)(full是同步信号量)的条件是没有满缓冲区
28. 在哲学家就餐问题中,能防止死锁的方法为
    1. 最多允许4个哲学家同时坐在桌子周围
    2. 仅当一个哲学家左右两边筷子都可用时,才允许他拿筷子
    3. 给所有哲学家编号,奇数号哲学家必须首先拿左边筷子,偶数号哲学家必须首先拿右边筷子
    4. 增加一根额外的筷子
29. 当信号量的值等于0时,描述正确的是
    1. 再有进程申请信号量将阻塞
    2. 目前没有信号量可用
    3. 申请该信号量的进程无法进入临界区
30. 防止竞争条件出现的有效方法有
    1. 同步
    2. 互斥
31. 临界区使用准则包括
    1. 互斥
    2. 有限等待
    3. 有空让进
32. 消费者阻塞在wait(m)(m是互斥信号量)的条件是
    1. 有其他生产者已经进入临界区存放产品
    2. 有其他消费者已经进入临界区取产品
33. 在生产者消费者问题中,以下关于唤醒操作正确的是
    1. 生产者唤醒消费者
    2. 消费者唤醒生产者
34. 在读者优先的读者写者问题中,读者可以进入读的前提是
    1. 没有读者和写者在读写
    2. 有读者在读
35. 当信号量的值等于2时,表示
    1. 有2个信号量可用
    2. 该信号量是同步信号量
36. 在Hoare管程中,有关条件变量的x的操作wait()的描述正确的是
    1. 紧急队列非空时会唤醒第一个等待进程
    2. 紧急队列空时释放管程控制权,允许入口队列进程进入管程
    3. 执行该操作进程进入x的条件队列
37. 在Hoare管程中,有关条件变量x的操作signal()的描述正确的是
    1. x的条件队列空时是空操作,执行该操作进程继续运行
    2. x的条件队列非空时,唤醒该条件队列的第一个等待进程,执行操作进程进入紧急队列
38. 在读者写者问题中,读者可以进入缓冲区读的条件是
    1. 无读者、写者在读写
    2. 有写者等,但有其它读者在读
39. 有关临界区的论述正确的是
    1. 临界区是代码片段
    2. 每个进程可能有一个或多个临界区
    3. 进程必须互斥进入临界区
40. 有关信号量S的描述,正确的是
    1. S必须置一次且只能置一次初值
    2. 除了初始值,只能通过执行P、V操作来访问S
41. 在生产者消费者问题中,消费者调用wait(mutex)(mutex是互斥信号量)阻塞的条件是
    1. 有生产者进入在往缓冲区存放产品
    2. 有消费者进入在从缓冲区读产品
42. 在读者优先的读者写者问题中,写者可以进入写的前提必须包括
    1. 没有读者在读
    2. 没有写者在写
43. 有关同步信号量,论述中
    1. 错误的是
         同步信号量不可为负数
         同步信号量一般初值设置为1
         同步信号量为负数时,其绝对值表示目前使用这个信号量的进程的数量
    2. 正确的是
         同步信号量只能设置一次初值
44. 临界区是涉及临界资源的数据区。?
45. 一次只允许个进程使用的资源称为互斥资源。?
46. S必须置一次且只能置一次初值。?
47. 记录型信号量S的当前值为0,一个进程调用wait(s)会把自己阻塞并挂到S的等待队列上。?
48. 记录型信号量的值不可能为负数。?
49. 在读者代码rc--;if(rc==0)V(rc==0)V(W)可能唤醒其它读者。?
50. 读者优先的读者写者问题中,一个写者先来,但有可能比后来的读者后运行。?
51. 只有没有读者在读,写者就可以进入写。?
52. 如果给5个哲学家6根筷子,则不会有死锁发生。?
53. 互斥信号量的P和V操作一般在不同进程中。?
54. 每个管程中只能有一个条件变量。?
55. 二值信号量的值区间为0-1。?
56. 若信号S的初值为5,当前值为-2,则表示有2个等待进程。?
57. 当一进程因记录型信号量S上执行signal(S)操作而导致唤醒另一进程前,S的值等于0。?
58. 一次允许多个程序使用的资源称为共享资源。?
59. 互斥操作时,一个信号量的P、V操作一般处于同一进程。?
60. 同步操作时,一个信号量的P、V操作一般处于同一进程。?
61. 在生产者消费者问题中,不同消费者之间不需要互斥。?
62. 10个生产者,5个消费者共享容量为8的缓冲区的生产者-消费者问题中,互斥使用缓冲区的信号量S的初始值为1。?
63. 整型信号量是一个整数,如果一个进程要申请信号量时发现该信号量大于等于0则表示可以获得信号量,小于0则表示无法获得信号量。?
64. 记录型信号量增加了一个等待队列,当一个进程无法获得一个信号量时,马上释放CPU并把自己转换为等待状态,加入该信号量的等待队列,从而消除忙等。?
65. 请谈谈同步信号量的值有什么含义
    1. S>0表示有S个资源可用
    2. S=0表示无资源可用
    3. S<0则则|S|表示S等待队列中的进程个数
    4. P(S)表示申请一个资源
    5. V(S)表示释放一个资源。信号量的初值应该大于等于0.