码迷,mamicode.com
首页 > 其他好文 > 详细

信号量和管程分析

时间:2020-06-25 09:40:03      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:进程   同步原语   pre   --   调用   bsp   完整性   wait   阻塞   

计算机科学中, 同步(synchronization)是指两个不同但有联系的概念:进程同步与数据同步。进程同步指多个进程在特定点会合(join up)或者握手使得达成协议或者使得操作序列有序。数据同步指一个数据集的多份拷贝一致以维护完整性。常用进程同步原语实现数据同步。

死锁:某一个进程占有共享资源不能结束,导致其他进程因为不能获得共享资源无法执行。

信号量和管程区别:信号量:进程获得信号量进入临界区,并且通过判断信号量

信号量:

P操作wait

wait(S){
while(s<=0);//当信号量小于零,进程处于阻塞状态(进入等待队列),无法进入临界区,需要等待唤醒
S--;
}

V操作signal()

signal(S){
  S++;//唤醒一个等待的进程进入就绪状态,如果S>0表明没有正在等待的进程,就不需要做什么
}


管程:在管程中,进程通过抢占锁调用require()函数,然后通过对条件变量的判断来决定进程下一步操作


 

信号量和管程分析

标签:进程   同步原语   pre   --   调用   bsp   完整性   wait   阻塞   

原文地址:https://www.cnblogs.com/guosai1500581464/p/13190981.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!