欢迎来到天天文库
浏览记录
ID:52181689
大小:1.92 MB
页数:41页
时间:2020-04-02
《操作系统原理 ——Chapter4 进程同步与进程通信.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、操作系统原理——Chapter4进程同步与进程通信2011.03.15主要内容进程并发信号量机制用信号量实现经典进程同步问题管程进程通信重点与难点重点与难点再次说明:程序的制约方式间接制约方式这是由于竞争相同资源而引起的,得到资源的程序段可以投入运行,而得不到资源的程序段就是暂时等待,直至获得可用资源时再继续运行。直接制约方式这通常是在那些逻辑上相关的程序段之间发生的,一般是由于各种程序段要求共享信息引起的。进程的同步(直接作用)进程的同步:指系统中多个进程中发生的事件存在某种时序关系,需要相互
2、合作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪态synchronism进程的互斥(间接作用)互斥由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥临界资源:系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源或共享变量mutualexclusioncriticalresource“司机-售票员”问题(同步)司机进程While(
3、True){启动公车;驾驶公车;停止公车;}售票员进程While(True){关车门;卖车票;开车门;}正确运行过程While(True){(售票员)关车门(司机)启动公车;(司机)驾驶公车;(售票员)卖车票(司机)停止公车;(售票员)开车门;}Spooler目录问题(互斥)Out:4In:7进程A:N_f_s=In;//In==7InsertFileIntoSpooler(N_f_s);In=N_f_s++;//In==8进程B:N_f_s=In;//In==8InsertFileIntoSp
4、ooler(N_f_s);In=N_f_s++;//In==94:File15:File26:File37:Null8:Null………Spooler目录………进程切换,一切正常Spooler目录问题(互斥)Out:4In:7进程A:N_f_s=In;//In==7进程B:N_f_s=In;//In==7InsertFileIntoSpooler(N_f_s);In=N_f_s++;//In==84:File15:File26:File37:Null8:Null………Spooler目录………进程切
5、换进程A:InsertFileIntoSpooler(N_f_s);In=N_f_s++;//In==8进程切换,进程B数据丢失进程同步基本概念制约关系的两种形式临界资源临界区信号量机制整型、记录型、AND型、信号量集信号量的应用实现进程互斥实现前趋关系1概念概念临界资源与临界区While(1){……entry_section;//申请进入critical_section;//临界区exit_section;//声明退出………}临界资源-生产者与消费者问题问题描述一个有限空间的共享缓冲区,负责存
6、放货物生产者向缓冲区中放物品,缓冲区满则不能放消费者从缓冲区中拿物品,缓冲区空则不能拿生产者进程消费者进程(如何体现进程的同步)临界资源-生产者与消费者问题缓冲池:数组表示,具有n个(0,1,…,n-1)缓冲区输入指针in:指示下一个可投放产品的缓冲区输出指针out:指示下一个可从中获取产品的缓冲区缓冲池采用循环组织,故:输入指针加1表示成in:=(in+1)modn;输出指针加1表示成out:=(out+1)modn。当(in+1)modn=out时表示缓冲池满;而in=out则表示缓冲池空。
7、整型变量counter:生产者进程投放产品使counter加1;消费者进程取走产品使counter减1。Varn,integer;typeitem=…;varbuffer:array[0,1,…,n-1]ofitem;in,out:0,1,…,n-1;counter:0,1,…,n;临界资源-生产者与消费者问题生产者进程producer:repeatproduceaniteminnextp;whilecounter=ndono-op;buffer[in]:=nextp;in:=in+1modn;
8、counter:=counter+1;untilfalse;消费者进程consumer:repeatwhilecounter=0dono-op;nextc:=buffer[out];out:=(out+1)modn;counter:=counter-1;consumertheiteminnextc;untilfalse;临界资源-生产者与消费者问题问题的出现两个进程共享变量counter。生产者对它做加1操作,消费者对它做减1操作,这两个操作在用机器语言实现时,常可用下面的形式描述:(问题何在?
此文档下载收益归作者所有