第3章 进程同步与通信_2.ppt

第3章 进程同步与通信_2.ppt

ID:48816070

大小:277.50 KB

页数:19页

时间:2020-01-28

第3章  进程同步与通信_2.ppt_第1页
第3章  进程同步与通信_2.ppt_第2页
第3章  进程同步与通信_2.ppt_第3页
第3章  进程同步与通信_2.ppt_第4页
第3章  进程同步与通信_2.ppt_第5页
资源描述:

《第3章 进程同步与通信_2.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第3章进程同步与通信●进程同步与互斥●经典进程同步问题●管程●AND信号量●进程通信本章要点●吃水果问题●取动物问题●超市购物问题●生产者——消费者问题●哲学家进餐问题●3.2经典进程同步问题吃水果问题1题目:桌子上有一个水果盘,允许存放一个水果。父亲专门向盘子中放苹果,儿子专等吃盘子中的苹果。只要盘子空,则父亲可向盘中放水果,仅当盘中有水果时,儿子可从中取出。把父亲、儿子看作二个进程,试用P、V操作使这两个进程能正确地并发执行。使用信号量解决吃水果问题1题目:桌子上有一个水果盘,允许存放一个水果。父亲专门向盘子中放苹果,儿子专等吃盘子中的苹果。只要盘子空,则父亲可向

2、盘中放水果,仅当盘中有水果时,儿子可从中取出。分析:父亲和儿子两个进程相互制约,父亲进程执行完即往盘中放入苹果后,儿子进程才能执行即吃苹果。因此该问题为进程间的同步问题。semaphoreS_EmptyPlate=1,S_Apple=0;voidfather()//父亲进程{while(1){P(S_EmptyPlate);往盘子中放入一个苹果;V(S_Apple);}}voidson()//儿子进程{while(1){P(S_Apple);从盘中取出一个苹果;V(S_EmptyPlate);吃苹果;}}吃水果问题2题目:桌上有一只盘子,允许存放一个水果,父亲专向盘中

3、放苹果,母亲专向盘中放桔子,儿子专等吃盘里的桔子,女儿专等吃盘里的苹果。只要盘子空,则父亲或母亲可向盘中放水果,仅当盘中有自己需要的水果时,儿子或女儿可从中取出。请给出四人之间的同步关系,并用PV操作实现四人正确活动的程序。使用信号量解决吃水果问题2分析:四人之间的关系:1.父亲、母亲要互斥使用盘子,所以两者之间是互斥关系;2.父亲放的苹果,女儿吃,所以两者是同步关系;3.母亲放的桔子,儿子吃,所以两者也是同步关系。semaphoreS_EmptyPlate=1,S_Apple=0,S_Orange=0;voidfather()//父亲进程{while(1){P(S_

4、EmptyPlate);往盘子中放入一个苹果;V(S_Apple);}}voidmother()//母亲进程{while(1){P(S_EmptyPlate);往盘子中放入一个桔子;V(S_Orange);}}使用信号量解决吃水果问题2分析:四人之间的关系:1.父亲,母亲要互斥使用盘子,所以两者之间是互斥关系;2.父亲放的苹果,女儿吃,所以两者是同步关系;3.母亲放的桔子,儿子吃,所以两者也是同步关系。voidson()//儿子进程{while(1){P(S_Orange);从盘中取出一个桔子;V(S_EmptyPlate);吃桔子;}}semaphoreS_Empt

5、yPlate=1,S_Apple=0,S_Orange=0;voiddaughter()//女子进程{while(1){P(S_Apple);从盘中取出一个苹果;V(S_EmptyPlate);吃苹果;}}取动物问题题目:有一只铁笼子,每次只能放入一只动物,猎人向笼中放入老虎,农民向笼中放入猪,动物园等待取笼中的老虎,饭店等待取笼中的猪。试用P、V操作写出能同步执行的程序。使用信号量解决取动物问题分析:四者之间的关系:1.猎人和农民要互斥使用笼子,所以两者之间是互斥关系;2.猎人放老虎,动物园取老虎,所以两者是同步关系;3.农民房猪,饭店取猪,所以两者也是同步关系。s

6、emaphoreS_EmptyCage=1,S_Tiger=0,S_Pig=0;voidhunter()//猎人进程{while(1){P(S_EmptyCage);往笼子里放入一只老虎;V(S_Tiger);}}voidfarmer()//农民进程{while(1){P(S_EmptyCage);往笼子里放入一只猪;V(S_Pig);}}voidzoo()//动物园进程{while(1){P(S_Tiger);从笼子里取出一只老虎;V(S_EmptyCage);;}}voidrestaurant()//饭店进程{while(1){P(S_Pig);从笼子里取出一只猪

7、;V(S_EmptyCage);;}}超市购物问题1题目:某小型超级市场,可容纳100个人同时购物。入口处备有购物车,每个购物者可拿一辆购物车入内购物。出口处结帐,并归还购物车。试用PV操作写出购物者的同步算法semaphores=100voidconsumeri(void)(i=1,2,…,k){while(TRUE){P(s);进入超市取一辆购物车;购物;结帐,并归还购物车;V(s);}}超市购物问题2题目:某小型超级市场,可容纳100个人同时购物。入口处备有购物车,每个购物者可拿一辆购物车入内购物。出口处结帐,并归还购物车。(出、入口禁止多人同

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

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

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