第六章 进程同步.pdf

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 进程同步

第6章进程同步 进程的互斥和同步进程的互斥和同步 进程的互斥和同步进程的互斥和同步 临界资源临界资源、临界区、临界区 临界资源临界资源、、临界区临界区 实现互斥的实现互斥的软件方法软件方法、硬件方法、硬件方法 实现互斥的实现互斥的软件方法软件方法、、硬件方法硬件方法 信号量信号量、经典同步问题、经典同步问题、、管程管程 信号量信号量、、经典同步问题经典同步问题、、管程管程 例: 售票系统 一个大大简化的售票系统一个大大简化的售票系统 一个大大简化的售票系统一个大大简化的售票系统 利用利用BACI 观察并发进程的执行结构观察并发进程的执行结构 利用利用 观察并发进程的执行结构观察并发进程的执行结构 /~tcamp/baci/baci_index.html int n = 9; int n = 9; void proc() { void proc() { while (1) { while (1) { if (n 0) { ①① if (n 0) { ①① cout n endl; ②② cout n endl; ②② n = n - 1; ③③ n = n - 1; ③③ } } T else break; else break; U J } } B , s } } m e t s y void main() { void main() { S g n cobegin { proc(); } cobegin { proc(); proc(); } i t a r e } } p O 2 例: 售票系统(2) 产生错误的原因产生错误的原因 产生错误的原因产生错误的原因 共享的全局变量共享的全局变量— 无保护无保护 共享的全局变量共享的全局变量 无保护无保护 访问共享全局变量的代码访问共享全局变量的代码— 无控制无控制 访问共享全局变量的代码访问共享全局变量的代码 无无控制控制 int n = 9; void proc() { while (1) { if (n 0) { cout n endl; n = n - 1;

您可能关注的文档

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档