2第二章进程管理Convertor.docVIP

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

第二章 进 程 管 理(2) 张 琦 内容 2.1 进程的基本概念 2.2 进程控制 2.3 进程同步 2.4 经典进程的同步问题 2.5 进程通信 2.6 线程 本章节要讨论的问题 如何控制和协调并发进程异步执行的时 序? 进程同步的主要任务是对多个相关进程在执行次序上进行协调,以使并发执行的诸进程之间能有效地共享资源和相互合作。 进程的同步机制 2.3 进 程 同 步 2.3.1 进程同步的基本概念 1. 两种形式的制约关系 当程序并发执行时,由于资源共享和进程合作,使同处于一个系统中的诸进程之间可能存在着以下两种制约关系。 间接相互制约关系 --- 同处于一个系统的 进程,通常都共享着某种系统资源。 (2) 直接相互制约关系 --- 主要源于进程间的 合作。 2.3 进 程 同 步 2. 临界资源 (Critical Resource) 凡是以互斥方式使用的共享资源都称为临界资源。 临界资源具有一次只允许一个进程使用的属性。 3. 临界区 (Critical Section) 把每个进程中访问临界资源的那段代码称为临界区。 repeat entry section critical section;  exit section remainder section; until false; 进入区---申请进入临界区 临界区---访问临界资源 退出区---退出对临界资源的访问 剩留区---进程的其他代码 2.3 进 程 同 步 4. 同步机制应遵循的规则 空闲让进 无进程处于临界区内时,可让一个 申请进入该临界区的进程进入。 忙则等待 临界区内有进程时,申请进入临界 区的进程必须等待。 有限等待 进程进入临界区的请求,必须在有 限的时间内满足。 让权等待 等待进入临界区的进程,必须立即 释放CPU。 2.3 进 程 同 步 2.3.2 信号量机制 1. 什么是信号量(semaphore) 并发进程间的相互制约关系从本质上说是由于争夺和共享资源而产生的。将资源抽象为信号量, 在信号量基础上引入同步操作原语: P操作、V操作。 2. 整形信号量 整形信号量用于表示资源数目,用S表示。除初始化外,仅能通过两个标准的原子操作wait(S)和signal(S)来访问。这两个操作一直被分别称为P、V操作。 wait和signal操作可描述为: wait(S): while S≤0 do no-op S∶=S-1; signal(S): S∶=S+1; P操作:申请资源 V操作:释放资源 2.3 进 程 同 步 3. 记录型信号量 在信号量机制中,除了需要一个用于代表资源数目的整型变量value外,还应增加一个进程链表L,用于链接上述的所有等待进程。 其中: 信 号 量 值 —表示某种资源的数量。 等待队列指针—当信号量值为负时,表示该类资源已分配 完,等待该类资源的进程排在等待队列中。 L为指向该信号量等待队列的指针。 记录型信号量是由于它采用了记录型的数据结构而得名的。 上述两个数据项可描述为: 2.3 进 程 同 步 type semaphore=record value: integer; L: list of process; end P操作(wait原语) 每执行一次P操作,即申请分配一个单位的资源。 P(S)—表示对信号量S 进行P操作。  ① S.value : = S.value – 1 ② 若S.value ≥ 0 进程继续执行。 若S.value 0 进程阻塞,并进入等待队列(L)。 2.3 进 程 同 步 V操作(signal原语) V(S)— 表示对信号量S 进行V操作,即释放一个单 位的资源。  ① S.value := S.value + 1; ② 若 S.value 0 进程继续执行。 若

文档评论(0)

aicencen + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档