操作系统2-203542.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2、临界资源、临界区 一、进程同步的基本概念 实现各进程互斥进入临界区 进程须在临界区前面增加一段用于进行上述检查的代码,称为进入区(entry section)。在临界区后面加上一段称为退出区(exit section)的代码 While (1) { 进入区代码; 临界区代码; 退出区代码; 其余代码 ; } 要进入临界区的若干进程必须满足: (1)一次只允许一个进程进入临界区 (2)任何时候,处于临界区的进程不得多于一个 (3)进入临界区的进程要在有限的时间内退出 (4)如果不能进入自己的临界区,则应让出处理机资源 解决临界区(互斥)问题的方法:P-V操作 进入区 临界区 退出区 剩余区 一、进程同步的基本概念 2、临界资源、临界区 3、同步机制应遵循的规则 有空让进(空闲让进):当无进程处于临界区时,表明临界资源处于空闲状态,应允许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用临界资源。 互斥(忙则等待):当已有进程进入临界区时,表明临界资源正在被访问,因而其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问。 一、进程同步的基本概念 有限等待:对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入“死等”状态。 让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”。 一、进程同步的基本概念 3、同步机制应遵循的规则 返回 二、信号量机制 信号量机制是荷兰科学家E.W.Dijkstra在1965年提出的一种同步机制,也称为P、V操作。由最初的整型信号量发展为记录型信号量,进而发展为信号量集。 整型信号量 记录型信号量 信号量集(AND信号量集、一般信号量集) 他将交通管制中多种颜色的信号灯管理交通的方法引入操作系统,让两个或多个进程通过信号量(Semaphore) 展开交互。进程在某一特殊点上停止执行直到得到一个对应的信号量,通过信号量这一设施,任何复杂的进程交互要求可得到满足,这种特殊的变量就是信号量。 信号量仅能由同步原语对其进行操作, Dijkstra发明了两个同步原语:P操作和V操作(荷兰语中“测试(Proberen)” 和“增量(Verhogen)” 的头字母,此外还用的符号有:wait和signal;up和down;sleep和wakeup等。 艾兹格·W·迪科斯彻 (Edsger Wybe Dijkstra,1930年5月11日~2002年8月6日)荷兰人。 计算机科学家,毕业就职于荷兰Leiden大学,早年钻研物理及数学,而后转为计算学。曾在1972年获得过素有计算机科学界的诺贝尔奖之称的图灵奖,之 后,他还获得过1974年 AFIPS Harry Goode Memorial Award、1989年ACM SIGCSE计算机科学教育教学杰出贡献奖、以及2002年ACM PODC最具影响力论文奖。 艾兹格·W·迪科斯彻主要成绩 1 提出“goto有害论”; 2 提出信号量和PV原语; 3 解决了有趣的“哲学家聚餐”问题; 4 最短路径算法的创造者; 5 第一个Algol 60编译器的设计者和实现者; 6 THE操作系统的设计者和开发者; 与D. E. Knuth并称为我们这个时代最伟大的计算机科学家的人。 1、整型信号量 整型信号量——非负整数,除了初始化外,只能通过两个原子操作wait和signal(P,V)来访问。 wait和signal操作描述: wait(S): while S?0 do no-op 测试有无可用资源 S:=S-1; 可用资源数减一个单位 signal(S): S:=S+1; 主要问题:只要S?0, wait操作就不断地测试(盲等),因而,未做到“让权等待”。 2、记录型信号量 基本思想 1、设置一个代表资源数目的整型变量value(资源信号量) 2、设置一链表L用于链接所有等待的进程 记录型信号量的数据结构 Type semaphore=record value:integer; L: list of process; end 2、记录型信号量 P、V操作 除初始化外,仅能通过两个标准的原子操作wait(S)和signal(S)来访问。很长时间以来,这两个操作一直被称为P、V操作。

文档评论(0)

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

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

1亿VIP精品文档

相关文档