网站大量收购独家精品文档,联系QQ:2885784924

第二章—b进作程同步.ppt

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

程序(间)并发执行的特征: 程序运行时独占资源 进程的同步 进程同步问题的提出 进程异步推进可能造成混乱 混乱可能导致不可再现 进程同步目标 进程的同步关系 2.3.1进程同步的基本概念(※) 进程间的两种主要关系 临界资源与临界区 进程同步必须遵循的原则 进程间的两种主要关系 进程间的关系与进程间的独立性 进程间的关系是在进程间相对独立的前提下发展的 独立获得资源 独立调度 进程间的同步关系(一) 进程间的同步关系(二) 进程间的同步关系(三) 进程间的同步关系 两种形式的制约关系 间接相互制约关系 ---------源于资源共享,产生互斥问题 直接相互制约关系 ----------源于进程间合作,产生同步问题 同步实现初探(二) 同步实现初探(三) 进程间的同步关系 进程同步时面临的两种主要关系 临界资源 临界资源 一次只允许一个进程访问的资源 资源状态为临界:0 或 1 临界区 临界区 每个进程中用于访问临界资源的代码; 同类临界区:同类资源的临界区; 进入区:在临界区前加上一段用于检查的代码; 退出区:在临界区后加上一段用于恢复临界区未被 访问的标志的代码; 剩余区:除进入区、临界区及退出区之外的其它部分的代码; 临界区 同步四原则 同步机制应遵循的原则(十六字原则) 同步原则 进程同步应遵循的原则 空闲让进 当资源空闲时,应当允许访问资源的进程进入临界区 忙则等待 当资源被占用时,应使申请访问该资源的进程等待,等待使用者归还资源 同步原则 进程同步应遵循的原则 让权等待 在进程等待资源时,从执行态转为阻塞态,应当让出CPU的使用权。系统将把CPU分配给其它进程使用,以提高系统效率.防止”忙等” 有限等待 系统应保证等待的进程能在有限的时间内获得资源,继续执行,以防止无限等待浪费该进程已占用的资源.防止”死等” 锁机制 临界资源锁机制 例:商场的试衣间 是互斥资源 是临界资源 是共享资源 每个顾客必须遵循以下过程使用试衣间: 锁机制 临界资源锁机制 锁机制实现 一种简单的锁操作实现 锁机制实现 锁操作模型 锁操作的一般模型 出了问题的锁 锁机制实现 关锁操作不可被打断 用原语实现关锁操作 关锁操作在一个指令周期内完成 信号量机制:由Dijkstra提出的一种解决进程的同步与互斥的工具: 信号量——用于表示资源数目或请求使用某一资源的进程个数的整型量。 1. 整型信号量 S是与临界区内所使用的共享资源有关的信号量。仅能通过两个标准的原子操作wait(s)和signal(s)来访问。两个操作一直被分别称为P、V操作。 经典信号量 (2)经典信号量的P,V操作 资源的申请与释放--原语 P原语操作的主要动作 S-1 如果S-1以后仍大于等于零,则进程继续进行 如果S-1以后小于零,则将该进程阻塞以后插入阻塞队列,然后转进程调度 V原语操作的主要动作 S+1 如果相加后结果大于零,则继续进行 相加后结果小于等于零,则从该信号的等待队列中唤醒一个等待进程,然后返回原进程继续执行或者转进程调度。 ⑴P操作 P(S) { S--; if (S=0) 继续执行; else 阻塞并进入等待队列; } 记录型信号量 (2)记录型信号量 引入进程阻塞机制(多个进程等待访问同一临界资源的情况) 在信号量里增加对阻塞进程的纪录(增加一个进程链表L) 记录型信号量的P,V操作 记录型信号量特点 记录型信号量机制特点: 进程对资源访问的过程: 原语保证 p(),v()操作都是原语 二者必须成对出现 (3)AND型信号量(只需了解) 引入原因:一个进程需要先获得两个或更多的资源后,方能执行其任务. 基本思想 将对多个信号量的逐个申请改为一次,用一个原子操作完成 进程要么一次获得所有的资源,要么一个也申请不到 不会存在互相等待的局面 信号量集(了解) 引入原因:在记录型信号量中每次对S仅能施以加1或减1操作,即每次只能获得或释放一个单位的临界资源。 ①一次需要N个某类临界资源时; ②资源数量低于某一下限值时,便不予分配 可对AND信号量机制加以扩充,形成一般化的“信号量集”机制。 公用与私用信号量 2.3.3 信号量的应用 1.利用信号量实现进程互斥 例1:n个并发进程共用一个公用变量Q,写出信号量实现n个进程互斥时的程序描述,并说明信号量的取值范围。 答案: var Q:semaphore:=1; Begin parbegin process1:begin repeat p(Q);

文档评论(0)

180****9566 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档