- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
main() {cobegin P1(); P2(); P3(); P4(); P5(); P6(); coend} P1() {…… v(b2); v(b3);} P2() {p(b2); …… v(b4); } P3() {p(b3); …… v(b5);} P4() {p(b4); …… v(b6);} P5() {p(b5); ……. v(b6);} P6() {p(b6); p(b6); …… } 4、本题是一个典型的“读者-写者”问题,查询者是读者,订票者是写者,而且要求写者优先。 为此,应设置五个信号量rsem、wsem、rm、wm、wait,两个共享变量rcount、wcount。 共享变量rcount,用于记录当前正在查询的用户数,初值为0。 共享变量wcount,用于记录当前正在订票的用户数,初值为0。 信号量rm用于使查询用户互斥地访问共享变量rcount,其初值为1。 信号量wm用于使订票用户互斥地访问共享变量wcount,其初值为1。 信号量rsem用于在订票者到达后封锁后续查询者,其初值为1。 semaphore s=1; 河东进程 河西进程 While(1) While(1) { { p(s); p(s); 过桥; 过桥; v(s); v(s); } } 32、假设有一个成品仓库,总共能放8台成品,生产者进程生产产品放入仓库,消费者进程从仓库中取出成品消费.为了防止积压,仓库满的时候就停止生产.由于仓库搬运设备只有一套,故成品的存入和取出只能分别执行,使用P、V操作来实现该方案。 Semaphore mutex=1; //实现互斥 Semaphore s1,s2; //s1用来表示仓库中可放产品的数目,s2表示仓库中已放的产品的数目 S1=8; S2=0; 生产者进程 消费者进程 While(1) while(1) { { 生产产品; p(s2); p(s1); p(mutex);; p(mutex); 取产品 产品放入仓库; v(mutex); v(mutex); v(s1); v(s2); 消费; } } 进程同步的总结 考核要点:临界区的定义及操作原则,进程同步与互斥,用信号量描述进程同步,进程通信。 基础要点: (1)进程间的同步是指进程间在逻辑上的相互制约关系。 (2)在进程中,访问临界资源的代码段称为临界区。为保证进程互斥访问临界资源,应在进程的临界区前设置进入区,在临界区后设置退出区。 (3)进程间的相互制约关系有直接关系和间接关系。 (4)临界区是一段程序。 (5)在操作系统中,解决进程间同步和互斥问题的一种方法是使用信号量。 (6)并发进程之间的基本关系是合作或共享资源,其
原创力文档


文档评论(0)