os_ch2-2进程同步和通信.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
os_ch2-2进程同步和通信.ppt

2.3 进程同步 2.3.1 进程同步的基本概念 2.3.2 信号量机制 (重点掌握) 2.3.3 信号量的应用 (掌握) 2.3.4 管程机制 (了解) 1.两种形式的制约关系 直接制约: 进程的执行依赖于另一进程是否完成 进程—进程 间接制约: 进程之间共同使用系统资源 进程—资源—进程 2.临界资源:critical resource 系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源或共享变量 3.临界区(互斥区):critical section 一个程序片段的集合,这些程序片段分散在不同的进程中,对某个共享的数据结构(共享资源)进行操作 在进程中涉及到临界资源的程序段叫临界区 演示 turn: 0 P0进入临界区 1 P1进入临界区 .... P0 : do { while (turn!=0) ; critical section turn:=1; remainder section }while(1); 软件方法 (1):Dekker算法 P1 : do { while (turn!=1) ; critical section turn:=0; remainder section }while(1); 演示 flag:array[0..1] of boolean; P0: do { flag[0]:=true; while flag[1] ; critical section flag[0]:=false; remainder section }while(1); 软件解法 (2):Perterson算法 P1: do { flag[1]:=true; while flag[0] ; critical section flag[1]:=false; remainder section }while(1); 演示 软件解法的缺点: 1. 忙等待 2. 实现过于复杂,需要高的编程技巧 信号量只能通过初始化和两个标准的原语:P操作和V操作来访问——作为OS核心代码执行,不受进程调度的打断 初始化指定一个非负整数值,表示空闲资源总数(又称为“资源信号量”) P,V操作的实现 1.整型信号量 int S; wait(S): While S=0 do skip; S:=S-1; signal(S): S:=S+1; wait操作 wait(s) { s.value =s.value--; if (s.value 0) { 该进程状态置为等待状态 将该进程的PCB插入相应的等待队列s.queue末尾; } } signal操作 signal(s) { s.value = s.value ++; if (s.value = 0) { 唤醒相应等待队列s.queue中等待的一个进程 改变其状态为就绪态 并将其插入就绪队列 } } Question: 一段处理代码需要同时获取两个或多个临界资源会出现什么情况? 各进程分别获得部分临界资源,然后等待其余的临界资源,“各不相让” ——死锁 3.AND型信号量 AND型信号量集用于同时需要多种资源且每种占用一个时的信号量操作; 基本思想:在一个原语中,将一段代码同时需要的多个临界资源,要么全部分配给它,要么一个都不分配。称为Swait(Simultaneous Wait)。 对资源全部分配或不分配,总有进程获得全部资源并在推进之后释放资源,因此不会死锁。 信号量的使用: 必须置一次且只能置一次初值 初值不能为负数 只能执行P、V操作 2.3.3 信号量的应用 利用信号量实现互斥 利用信号量实现同步/前趋 1 利用信号量实现互斥 1 利用信号量实现互斥 为临界资源设置一个互斥信号量mutex(MUTual Exclusion),其初值为1;在每个进程中将

文档评论(0)

好文精选 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档