操作系统练习-信号量

本文介绍了操作系统中信号量的概念及其在进程同步和互斥中的应用。通过一系列选择题和解释,阐述了信号量的值如何影响进程的执行状态,以及P、V操作的含义。此外,还讨论了自旋锁的优缺点和信号量可能出现的死锁情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

##单选题


临界区是指()

  •  并发进程中用于实现进程互斥的程序段
  •  进程中访问临界资源的那段代码
  •  一段缓冲区
  •  一个数据区

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

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

  •  1个
  •  2个
  •  3个
  •  4个

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

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

  •  0或1
  •  0或-1
  •  只能为1
  •  任意值

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

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

  •  +0 -1
  •  +1 -1
  •  +0 +1
  •  -1 +1

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

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

  •  S1和S2一起执行
  •  S1执行,S2不执行
  •  只有S1执行完后才执行S2
  •  只有S2执行完后才执行S1

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

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

  •  不用阻塞
  •  等待锁时不进行上下文切换
  •  不会出现死锁
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值