信号量和管程分析

Posted guosai1500581464

tags:

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

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

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

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

信号量:

P操作wait

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

V操作signal()

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


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


 

以上是关于信号量和管程分析的主要内容,如果未能解决你的问题,请参考以下文章

进程同步工具之 管程机制

操作系统—— 进程管理:同步

信号量与管程

第二章管程死锁

管程是一种高级的同步机制(操作系统)

(王道408考研操作系统)第二章进程管理-第三节11:管程(Monitor)及条件变量