永发信息网

数据库题 用P、V操作管理临界区时,把信号量mutex的初值设定为1。当mutex的等待队列中有

答案:3  悬赏:50  手机版
解决时间 2021-11-24 05:36
  • 提问者网友:美人性情
  • 2021-11-23 18:01
数据库题 用P、V操作管理临界区时,把信号量mutex的初值设定为1。当mutex的等待队列中有
最佳答案
  • 五星知识达人网友:酒者煙囻
  • 2021-11-23 19:35
首先请认真看看四级教程P80~P82;

接着,我的理解是,信号量是一个特殊的变量,只能对其进行等待(P(信号量))和发送(V(信号量)),任意时刻只能存在一个执行线程访问代码的临界区;正因为如此,如果有5个进程,则必须一个个进入,而后一个个释放资源(如果你认真看过计算安全队列的题目,会发现这个规则),信号量必须满足一个进程进入,即mutex>0;
如果要N个进程一一跟着进入临界区,必定阻塞。对信号量自减一(进行等待而后进入),以待其他进程进行V操作;此时等待的进程就是信号量的绝对值,注意是绝对值表示当前空闲资源数!也就是说,有一个进程运行,mutex减一,若初值为M,则|M-N|表示有多少进程进入就绪队列以待资源释放;题目信号量如果为2,进程有5个,P(mutex)操作两次而使信号量为0,此后的进程只能进入就绪队列了,但进入就绪队列完毕,P(mutex)操作三次,上面说过信号量自减一,此刻mutex=-3,而刚好|mutex|为就绪队列中进程数。这就是一个加减过程,|(2-5)(信号量)|=3(进程数);
如果mutex=1,进行P(mutex)操作了,此刻mutex=0;而后进行V(mutex)操作,此刻因为mutex<=0,“从等待队列中取出头一个进程P,进程P进入等待队列”;下一次信号量自减一,mutex<0,有一个进程进入等待队列,还有N-1次操作,才使全部进程进入等待队列,此刻mutex=-1;还需要进行了N-1次P操作,总共需要N+1次才能够对N个进程操作,信号量则需要减N+1-1次,为负值。
还是不明白,
可以参考linux的对信号量操作的程序,观察两个或者多个教程竞争资源的情况,对比分析;
我也考四级嵌入式,祝你也考个好成绩。
全部回答
  • 1楼网友:掌灯师
  • 2021-11-23 21:17
选D,需要释放资源
  • 2楼网友:骨子里都是戏
  • 2021-11-23 19:55
是1-k,应为一个进程会减一个值
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯