chap2.4-6同步、通信、线程讲稿.ppt

  1. 1、本文档共68页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.4 进程同步 在多道程序系统环境中,由于资源共享与进程合作,使得并发执行的进程之间可能产生相互制约关系,这些制约关系分为:竞争与协作。 一、并发进程之间的同步关系 1、进程的同步(直接作用) 指系统中多个进程基于某个条件来协调它们的活动。 具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪状态。 2、同步关系分类 (1)一组合作进程在逻辑上所要求的执行顺序而引起的同步(例) (2)共享缓冲区的合作进程而引起的同步(例P104) 时序同步问题 共享缓冲区同步问题 二、并发进程之间的互斥关系(间接作用) 1、进程互斥 若干进程都要使用同一个资源时,任何时刻最多允许一个进程使用,其他要使用该资源的进程必须等待,直至占有资源的进程释放该资源。 2、临界资源和临界区 临界资源:系统中某些资源一次只允许一个进程使用。(互斥资源或共享变量) 临界区:对临界资源实施操作的程序代码段。 相关临界区:并发进程中涉及相同临界资源的临界区。 3、对相关临界区管理的原则 空闲让进:当无进程在互斥区时,任何有权使用互斥区的进程可进入 忙则等待:不允许两个以上的进程同时进入互斥区 多中择一:当没有进程在临界区,而同时有多个进程要求进入临界区,只能让其中之一进入临界区,其他进程必须等待 有限等待:任何进入互斥区的要求应在有限的时间内得到满足 让权等待:处于等待状态的进程应放弃占用CPU,以使其他进程有机会得到CPU的使用权 4、实现临界区互斥的锁操作法 锁变量W W=0:表示资源空闲可用 W=1:表示资源正被使用 对临界区使用之前应测试W值,若W=1表示资源已被占用,返回重新测试;若W=0则表示资源可用。 加锁原语(LOCK(W)): L:IF W=1 THEN GOTO L ELSE W=1 开锁原语( UNLOCK(W)): W=0 用加锁和开锁原语解决进程互斥的模型: Pi(i=1,2,3,…,n) . . . LOCK(W) CSi UNLOCK(W) . . . 1965年DijKstra提出1965年,由荷兰学者Dijkstra提出(所以P、V分别是荷兰语的test(proberen)和increment(verhogen)) 一种卓有成效的进程同步机制 最初提出的是二元信号量(取值仅能为0或)) 推广到一般信号量(多值) 信号量为一整型变量,它只能被两个标准的原语所访问,分别记作P操作原语和V操作原语,P、V操作是由操作系统实现,可供外部调用的两条原语。 一、信号量机制 1、信号量的含义 一个进程在某一特殊点上被迫停止执行直到接到一个对应的特殊变量值,这种特殊变量值就是信号量,复杂的进程合作需求都可以通过适当的信号结构得到满足。 信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意,信号量的值仅能由P、V操作来改变。 信号量按其用途分: 公用信号量:与公用信号量联系的一组并发进程均可对它实施P、V操作。(其初始值为1,它是为进程的互斥设置的) 私有信号量:只允许信号量的拥有者进程对它实施P、V操作,只允许与信号量的拥有者进程合作的进程对它实施 V操作。(其初始值为0或某个正整数,它是为实现进程的同步而设置的) 信号量按其取值分: 二元信号量: 一般信号量: 2、P、V操作的定义 PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下:(设S为信号量,q为申请资源S的进程,Q为S的等待队列) P(S): ①将信号量S的值减1,即S=S?1; ②如果S?0,则该调用P(S)的进程q继续执行;否则调用P(S)的进程置为阻塞状态,并放入S的阻塞队列Q。 V(S): ①将信号量S的值加1,即S=S+1; ②如果S0,则调用V(S)的进程q继续执行;否则从S的等待队列中唤醒头一个进程,然后,调用P(S)的进程q继续运行。 P、V操作的定义用伪代码描述: 3、信号量和P、V操作的物理意义 (1)信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档