进程间的mutex

Posted stephen-qin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程间的mutex相关的知识,希望对你有一定的参考价值。

设两个进程共用一个临界资源的互斥信号量mutex=1,当mutex=-1时表示()。
  • 一个进程进入了临界区,另一个进程等待
  • 没有一个进程进入临界区
  • 两个进程都进入临界区
  • 两个进程都在等待
互斥信号量不采用自旋锁的方式实现,mutex初始值为1,当一个准备进入临界区时,mutex - 1 = 0,该进程进入临界区;
另一个进程准备进入临界区时,mutex - 1 = -1,mutex < 0时将该进程挂起到mutex的列表中,等待被唤醒。
因此一个进程已经进入临界区,另一个进程在等待。
 
 

对于两个并发进程,设互斥信号量为mutex,若mutex=0,则

  • 表示没有进程进入临界区
  • 表示有一个进程进入临界区
  • 表示有一个进程进入临界区,另一个进程等待进入
  • 表示有两个进程进入临界区

解析:本题考查互斥信号量的性质,mutex初值为1,表示允许一个进程进入临界资源,当由一个进程进入临界区且没有进程等待进入时,mutex减1,变为0,|mutex|为等待进入的进程数。就此题而言,当mutex=1时表示没有进程进入临界区;当mutex=-1时表示有一个进程进入临界区,另一个进程等待进入,答案选B。

以上是关于进程间的mutex的主要内容,如果未能解决你的问题,请参考以下文章

C#多线程间的同步问题

进程通信

c++ 线程间通信方式

多线程(上)

C# 使用Mutex只有一个进程

嵌入式开发之hi3519---进程线程间的同步和互斥,条件变量信号了互斥锁等