永发信息网

P(S)和V(S)操作原语的描述?

答案:1  悬赏:30  手机版
解决时间 2021-04-01 21:36
  • 提问者网友:像風在裏
  • 2021-04-01 01:55
P(S)和V(S)操作原语的描述?
最佳答案
  • 五星知识达人网友:毛毛
  • 2021-04-01 02:45
P(S)和V(S)操作原语描述如下:
  void p(S)
  struct semaphore S;
  {
  S.value=S.value -1;
  if (S.value<0 ) block(S.P);
  }

  void v(S)
  struct semaphore S;
  {
  S.value=S.value+1;
  if (S.value<=0) wakeup(S.P);
  }
(PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下:
P(S):①将信号量S的值减1,即S=S??1;
②如果S??0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。
V(S):①将信号量S的值加1,即S=S+1;
②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。
PV操作的意义:我们用信号量及PV操作来实现进程的同步和互斥。PV操作属于进程的低级通信。)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯