进程互斥与同步课件.ppt

进程互斥与同步课件.ppt

ID:57036487

大小:234.50 KB

页数:32页

时间:2020-07-27

进程互斥与同步课件.ppt_第1页
进程互斥与同步课件.ppt_第2页
进程互斥与同步课件.ppt_第3页
进程互斥与同步课件.ppt_第4页
进程互斥与同步课件.ppt_第5页
资源描述:

《进程互斥与同步课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章进程互斥与同步互斥-信号量机制1965年由荷兰的Dijkstra提出信号量(semaphore)是一种软件不忙等待法信号量机制的类型经典信号量(忙等待)记录型信号量(使用不当可能会造成死锁)信号量集(资源利用率低)记录型信号量的定义数据结构typedefstructsemaphore{intvalue;PCB*P;}S;//定义信号量的结构体及变量SP-V操作原语P(S)操作原语voidP(structsemaphoreS){S.value--;if(S.value<0)block(S.P);//阻塞调用进程,在S.P中排队}P操作的主要动作:①s值减1;②若相减

2、结果>=0,则进程继续执行;③若相减结果<0,则进程被封锁,并将它插入到该信号灯的等待队列之中,然后转进程调度程序。P-V操作原语V(S)操作原语voidV(structsemaphoreS){S.value++;if(S.value<=0)wakeup(S.P);//唤醒S.P排队中某个进程}V操作的主要动作:①s值加1;②若相加结果>0,则进程继续执行;③若相加结果<=0,则从该信号灯的等待队列中移出一个进程,解除它的等待状态,然后返回本进程继续执行。S.value的物理意义S.value用于表示资源数目或请求使用某一资源的进程个数的整形量.S是与临界区内所使用的公

3、用资源有关的信号量。S.value>0表示可供并发进程使用的资源数。P(S)操作时表示,表示进程请求分配一个该类资源,将对S.value减1,若S.value<0表示资源已经分配完,此时

4、S.value

5、表示正在S.P队列中等待使用临界区的进程数V(S)操作表示进程释放一个该类资源,S.value加1,若S.value<=0表示S.P队列中有进程等待分配该类资源,应唤醒其中的一个进程用信号量机制实现N进程间的互斥为N个进程设置一个互斥的信号量mutex,mutex.value为1(实现互斥)进程进入临界区前用P(mutex)操作申请资源进程退出临界区后用V(mutext

6、)操作释放资源structsemaphoremutex;mutex.value=1;//初始化资源数量为1cobeginvoidprocess1(void){while(1){P(mutex);.....;//进程1访问临界资源V(mutex);......;//非临界区代码}}......voidprocessN(void){while(1){P(mutex);.....;//进程N访问临界资源V(mutex);......;//非临界区代码}}coend解决老问题structsemaphoreS=1;//S.value=1;P1:P(S);R1=count;R1=R

7、1+1;count=R1;V(S);P2:P(S);R2=count;R2=R2+1;count=R2;V(S);进程同步进程同步:多个合作进程为了完成同一个任务,在执行速度上必须相互协调。进程同步的例子计算与打印的同步关系BufferCP进程互斥与进程同步统称为进程同步进程互斥实际上是进程同步的一种特殊情况,一个等待使资源的进程在得到占用资源的进程发出“释放资源”的信息后就可以使用该资源了。互斥与同步的区别互斥是进程间竞争共享资源的使用权,这种竞争无固定的必然关系。同步是涉及共享资源的并发进程间有一种必然的依赖关系,即使没有进程在使用共享资源,尚未得到同步消息的进程仍

8、不能去使用该资源。用信号量机制解决进程同步structsemaphoreSC,SP=1,0;numberx,y,buffer;cobeginvoidCP(void)//computerprocess{while(1){x=computer();//计算并将结果存于xP(SC);//请求存数buffer=x;V(SP);//与打印进程同步}}voidPP(void)//printprocess{while(1){P(SP);//请求取数y=buffer;V(SC);//与计算机进程同步printynumber;}}coendBufferCP用信号量机制解决前趋图问题[同步

9、]方法:若图中存在结点S1指向结点S2的有向边,表示进程P1中的程序段S1应该先执行,而进程P2中的程序段S2后执行。设置一个信号量s,初值为0,将V(s)放在S1后面,而在S2前面先执行P(s)。进程P1的语句序列为:S1;V(s)进程P2的语句序列为:P(s);S2S1S2s具有8个结点的前趋图。图中的前趋图中共有有向边10条,可设10个信号量,初值均为0;有8个结点,可设计成8个并发进程,具体描述如下:S1S2S5S6S7S8agefbcdhijS3S4Structsmaphorea,b,c,d,e,f,g,h,I,j=0,0,0,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。