操作系统-信号量应用.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 进程管理 2.1 进程的基本概念 2.2 进程控制 2.3 进程同步 2.4 经典进程的同步问题 2.5 进程通信 2.3 进 程 同 步 2.3.1 进程同步的基本概念 2.3.2 信号量机制 2.3.3 信号量的应用 1.进程同步的概念 所谓进程同步,在多道技术下,对多个相关进程在执行次序上的协调、正确,OS中用于保证这种关系的相应机制称为进程同步机制。 2、进程的制约关系 并发进程之间由于资源共享和进程合作,使处于一个系统内的进程存在制约关系: 直接相互制约关系:源于进程间的合作。 进程A通过缓冲区向进程B提供数据用于计算 进程间关系 3。临界资源(Critical Resouce) 定义:在一段时间内,只允许一个进程访问的资源。 软件:共享变量(存储单元) 硬件:打印机、扫描仪(多个任务不能穿插使用) ………… n=x n=n-1; x=n; …… ………… n=x n=n-1; x=n; …… 临界区 4. 临界区 (Critical Section) 定义:对临界资源访问代码段称为临界区。 临界区互斥访问描述: 访问临界资源的循环进程描述 5. 同步机制应遵循的规则 (1) 空闲让进 (2) 忙则等待 有限等待(避免“死等”) 确保在有限的时间内进程可以进入自己的临界区 让权等待(释放CPU) 进程不能进入临界区,应立即释放处理机,不能一直检测,以免进程陷入“忙等” 如何实现Entry section和Eixt section ?? 2.3.2 信号量机制 一、 什么是信号量 信号量是一个特殊变量,除初始化外,仅能通过两个标准的原子操作wait(s)和signal(S)来访问,这两个操作一直被称为P操作和V操作。这个变量时整型变量,代表物理实体。 wait(S)和signal(S) 一直被分别称为P、V操作,亦可记作 P(s),V(s)。 信号量分类 1. 整型信号量机制(计数型) 将信号量S定义成一个整数。 P(S)、V(S)操作 Wait 和 signal操作可描述为: P(S) wait(S): while S≤0 do no-op S∶=S-1; (获取对资源访问权) 1. 整型信号量机制(续) 利用信号量实现进程互斥访问临界资源 var mutex: semaphore:=1; Process i: begin repeat Wait(mutex); (获取资源) Critrical Section; Signal(mutex); (释放资源) Reminder Section until false end; …… end 整型信号量的缺陷 在整型信号量机制中的wait操作,只要是信号量S≤0, 就会不断地测试。因此,该机制并未遵循“让权等待”的准则, 而是使进程处于“忙等”的状态。 课堂练习 1、为什么进程在进入临界区之前,应先执行“进入区”代码?在退出前又要执行“退出去”代码? 2、你认为整型信号量机制是否完全遵循了同步机制的四条准则,为什么? 2. 记录型信号量机制 记录型信号量 在整型信号量机制中的wait操作,只要是信号量S≤0, 就会不断地测试。因此,该机制并未遵循“让权等待”的准则, 而是使进程处于“忙等”的状态。 记录型信号量机制,则是一种不存在“忙等”现象的进程同步机制。但在采取了“让权等待”的策略后,又会出现多个进程等待访问同一临界资源的情况。 为此,在信号量机制中,除了需要一个用于代表资源数目的整型变量value外,还应增加一个进程链表L,用于链接上述的所有等待进程。 2. 记录型信号量机制(续1) 记录型信号量的wait(S) (P(S)) 操作可描述为:  procedure wait(S) var S: semaphore; begin S.value∶ =S.value-1; if S.value<0 then block(S.L) end 1、S. value的初值表示系统中某类资源的数目, 又称为资源信号量;如S. value的初值为1,表示只允许 一个进程访问临

文档评论(0)

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

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

1亿VIP精品文档

相关文档