操作系统原理——Chapter4进程同步与进程通信

操作系统原理——Chapter4进程同步与进程通信

ID:41899605

大小:2.53 MB

页数:72页

时间:2019-09-04

操作系统原理——Chapter4进程同步与进程通信_第1页
操作系统原理——Chapter4进程同步与进程通信_第2页
操作系统原理——Chapter4进程同步与进程通信_第3页
操作系统原理——Chapter4进程同步与进程通信_第4页
操作系统原理——Chapter4进程同步与进程通信_第5页
资源描述:

《操作系统原理——Chapter4进程同步与进程通信》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、操作系统原理——Chapter4进程同步与进程通信2011.03.28REVIEW进程并发信号量机制用信号量实现经典进程同步问题管程进程通信重点与难点重点与难点进程的同步(直接作用)进程的同步:指系统中多个进程中发生的事件存在某种时序关系,需要相互合作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪态synchronism进程的互斥(间接作用)互斥由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥临界资源:系统

2、中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源或共享变量mutualexclusioncriticalresource“司机-售票员”问题(同步)司机进程While(True){启动公车;驾驶公车;停止公车;}售票员进程While(True){关车门;卖车票;开车门;}正确运行过程While(True){(售票员)关车门(司机)启动公车;(司机)驾驶公车;(售票员)卖车票(司机)停止公车;(售票员)开车门;}Spooler目录问题(互斥)Out:4In:7进程A:N_f_s=In;//In==7InsertFileIntoSpooler

3、(N_f_s);In=N_f_s++;//In==8进程B:N_f_s=In;//In==8InsertFileIntoSpooler(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:File

4、37:Null8:Null………Spooler目录………进程切换进程A:InsertFileIntoSpooler(N_f_s);In=N_f_s++;//In==8进程切换,进程B数据丢失进程同步基本概念制约关系的两种形式临界资源临界区信号量机制整型、记录型、AND型、信号量集信号量的应用实现进程互斥实现前趋关系1概念概念临界资源与临界区While(1){……entry_section;//申请进入critical_section;//临界区exit_section;//声明退出………}临界资源-生产者与消费者问题问题描述一个有限空间的共享缓冲区,负责存

5、放货物生产者向缓冲区中放物品,缓冲区满则不能放消费者从缓冲区中拿物品,缓冲区空则不能拿生产者进程消费者进程(如何体现进程的同步)临界资源-生产者与消费者问题缓冲池:数组表示,具有n个(0,1,…,n-1)缓冲区输入指针in:指示下一个可投放产品的缓冲区输出指针out:指示下一个可从中获取产品的缓冲区缓冲池采用循环组织,故:输入指针加1表示成in:=(in+1)modn;输出指针加1表示成out:=(out+1)modn。当(in+1)modn=out时表示缓冲池满;而in=out则表示缓冲池空。整型变量counter:生产者进程投放产品使counter加1

6、;消费者进程取走产品使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;counter:=counter+1;untilfalse;消费者进程consumer:repeatwhilecounter

7、=0dono-op;nextc:=buffer[out];out:=(out+1)modn;counter:=counter-1;consumertheiteminnextc;untilfalse;临界资源-生产者与消费者问题问题的出现两个进程共享变量counter。生产者对它做加1操作,消费者对它做减1操作,这两个操作在用机器语言实现时,常可用下面的形式描述:(问题何在?)register1:=counter;register2:=counter;register1:=register1+1;register2:=register2-1;counter:

8、=register1;counter:=register2;临界资

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

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

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