第6讲.进程间通信(3)

第6讲.进程间通信(3)

ID:39228992

大小:616.00 KB

页数:38页

时间:2019-06-28

第6讲.进程间通信(3)_第1页
第6讲.进程间通信(3)_第2页
第6讲.进程间通信(3)_第3页
第6讲.进程间通信(3)_第4页
第6讲.进程间通信(3)_第5页
资源描述:

《第6讲.进程间通信(3)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第六讲进程间通信(下)华软软件工程系进程间通信内容回顾:软中断信号、管道通信、IPC机制、消息缓冲通信、共享内存通信、PV操作信号量集主要内容第一部分内容回顾软中断信号管道通信消息缓冲共享内存主要内容内容回顾软中断(信号)主要函数:signal()、kill()、exit()、wait()等仅实现“父子”或“父子父”的进程同步管道通信(无名管道通信)使用简单,但属于单向,及父子进程之间相关函数:pipe(),write(),read(),lockf()内容回顾(2)消息缓冲通信可在任意进程之间实现双向通信,且自带同步工具,但额外的信息拷贝消耗CPU时间,不宜大量的

2、信息交换主要函数:msgget()、msgsnd()、msgrcv()、msgctl()共享内存通信直接存取内存的方式实现任意进程之间的信息交换,快捷且信息量大;但不带同步工具,进程间的同步互斥问题,需要各进程采用其他工具解决,且所有进程只能在同一存储介质上运行,不方便网络通信。主要函数:shmget()、shmat()、shmdt()、shmctl()P、V操作都是原语P:申请一个单位资源V:释放一个单位资源内容回顾(3)内核或微核提供核外调用的过程或函数称为原语(primitive)。原语是一段用机器指令编写的完成特定功能的程序,在执行过程中不允许中断。P操作P(s

3、):若S<0,入等待队列若S>=0,继续取s值减1内容回顾(4)V操作V(s):若S<=0,唤醒一等待队列进程若S>0,继续取s值加1内容回顾(5)信号量及P、V操作讨论对于两个并发进程,互斥信号量的值仅取1、0和-1三个值若MUTEX=1表示没有进程进入临界区若MUTEX=0表示有一个进程进入临界区若MUTEX=-1表示一个进程进入临界区,另一个进程等待进入。1)信号量的物理含义:S>0表示有S个资源可用S=0表示无资源可用S<0则

4、S

5、表示S等待队列中的进程个数P(S):表示申请一个资源V(S):表示释放一个资源。信号量的初值应该大于等于0信号量及P、V操作讨论(续

6、1)共享缓冲区的进程的同步设某计算进程CP和打印进程IOP共用一个单缓冲区,CP进程负责不断地计算数据并送入缓冲区T中,IOP进程负责不断地从缓冲区T中取出数据去打印。分析通过分析可知,CP、IOP必须遵守以下同步规则:当CP进程把计算结果送入缓冲区时,IOP进程才能从缓冲区中取出结果去打印;当IOP进程把缓冲区中的数据取出打印后,CP进程才能把下一个计算结果送入缓冲区解为此设有两个信号量Sa=0,Sb=1,Sa表示缓冲区中有无数据,Sb表示缓冲区中有无空位置。两个进程的同步可以描述如下:进程互斥:在OS中,当某一进程正在访问cs时,就不允许其它进程来读写(访问),否则

7、就会发生后果无法估计的错误,进程之间的这种相互制约关系为进程互斥。进程同步:并发进程在一些关键点上可能需要互相等待与互通消息,这种相互制约的等待与互通消息,称为进程同步。小结进程同步与互斥关系:都反映了在异步环境下并发进程间的相互制约关系。可归于同步范畴,但互斥是同步问题的一个特例,互斥解决临界区的使用,同步是并发进程在一些关键点上需互相等待互发消息。【思考题】桌上有一空盘,最多允许存放一只水果。爸爸可向盘中放一个苹果或放一个桔子,儿子专等吃盘中的桔子,女儿专等吃苹果。试用P、V操作实现爸爸、儿子、女儿三个并发进程的同步。提示:设置一个信号量表示可否向盘中放水果,一个信

8、号量表示可否取桔子,一个信号量表示可否取苹果。解设置三个信号量S,So,Sa,初值分别为1,0,0。分别表示可否向盘中放水果,可否取桔子,可否取苹果。解答Father(){while(1){p(S);将水果放入盘中;if(是桔)v(So);elsev(Sa);}}Son(){while(1){p(So)取桔子v(S);吃桔子;}}Daughter(){while(1){p(Sa)取苹果v(S);吃苹果;}}第二部分进程间通信---信号量集信号量集主要内容信号量集的概念任务需要与多个事件同步时,即需要根据多个逻辑信号量组合作用的结果来决定任务的运行方式,定义了一种特殊的数

9、据结构—信号量集(Semaphore),来专用于此类事务的管理。信号量集是一个IPC对象,拥有一个ipc_perm结构及唯一的key值与其他IPC对象一样,也拥有一个专门的数据结构,用于管理信号量集。不利用信号量实现进程同步不利用信号量实现进程同步不利用信号量实现进程同步举例利用信号量实现进程互斥利用信号量实现父子进程对临界资源的互斥访问。每个进程进入该临界区3次。父进程进入临界区后显示prntin,出临界区则显示prntout;子进程进入临界区后显示chldin,出临界区则显示chldout;分析:对临界区的互斥实现的P、V原语的设置P

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

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

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