第6章-进程同步-教案提纲.docVIP

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

第6章 进程互斥与同步 多道程序系统中进程是并发执行的,这些进程之间存在着不同的相互制约关系,为了协调进程之间的相互制约关系,就需要实现进程的同步。 而互斥则是同步的一种特殊情况。 6.1 进程互斥 1. 临界资源与临界区 (1)临界资源:把一次仅允许一个进程使用的资源称为临界资源。 许多物理设备都属于临界资源,如打印机,绘图机等。 还有许多共享变量,共享数据等也属于临界资源。 (2)临界区:在每个进程中,访问临界资源的那段程序称为临界区。 2. 互斥 在操作系统中,当一个进程进入临界区使用临界资源时,另一个进程必须等待,当占用临界资源的进程退出临界区后,另一个进程才允许进入它的临界区去访问此临界资源。 互斥:进程间的这种相互制约关系称为互斥。 为禁止两个进程同时进入临界区,可采用软件解决办法或者一个同步机构来协调它们。 不论是软件还是同步机构都应遵循下述准则: 当有若干个进程欲进入它的临界区时,应在有限时间内使进程进入临界区。换言之,它们不应该相互阻塞而致使彼此都不能进入临界区; 每次至多有一个进程处于临界区; 进程在临界区内仅停留有限时间。 3. 互斥的实现方法 (1)利用“锁”机制实现互斥 在同步机构中,常用一个变量来代表临界资源的状态,并称它为锁。 通常用0表示资源可用,用1表示资源已被占用。 进程在使用临界资源之前,必须完成下列动作(即关锁操作): (a)考察锁位的值(是0还是1); (b)如果原来的值为0,将锁值置成1(表示占用资源); (c)如果原来的值为1(即资源已被占用),则返回(a)再考察。 当进程使用完资源后,应将锁值置成0,即称为开锁操作。 注:在测试锁的值和置锁的值为1这两步之间,锁值不得被其他进程所改变,这是应该绝对保证的。 系统可提供在一个锁w上的两个原语操作lock(w)和unlock(w)。 其算法描述如下: 算法 lock 输入:锁变量w 输出:无 { test: if (w==1) goto test; else w=1; } 算法 unlock 输入:锁变量w 输出:无 { w=0; } 利用上锁原语和开锁原语,可以解决并发进程对临界资源访问的互斥问题。 下面给出并发进程p1和p2互斥使用临界资源的描述: 进程p1 进程p2 . . . . . . lock(w) lock(w) 临界区 临界区 unlock(w) unlock(w) . . . . . . (2) 利用P、V操作实现互斥 信号量的概念 信号量是一个确定的二元组(s,q); 其中s是一个具有非负初值的整形变量,q是一个初始状态为空的队列; 整形变量s表示系统中某类资源的数目: 当其值大于0时,表示系统中当前可用资源的数目; 当其值小于0时,其绝对值表示系统中因请求该类资源而被阻塞的进程数目。 除信号量的初值外,信号量的值仅能由P操作和V操作改变,操作系统利用它的状态对进程和资源进行管理。 P、V操作(有的书上叫Wait操作与Signal操作) P、V操作为两条原语,信号量的值仅能由这两条原语来改变。 P、V操作成对出现。 P、V操作的定义: P操作:P操作记为P(S),其中S为一信号量,它执行时,主要完成以下动作: S=S-1; 若S≥0,则进程继续执行; 否则若S0,则进程被阻塞,并将该进程插入到信号量S的等待队列中。 说明:实际上,P操作可以理解为分配资源的计数器; 或是使进程处于等待状态的控制指令。 V操作:V操作记为V(S),其中S为一信号量,它执行时,主要完成以下动作: S=S+1; 若S0,则进程继续执行; 若S≤0,则从信号量S的等待队列中移出第一个进程,使其变为就绪状态,然后返回原进程继续执行。 说明:实际上,V操作可以理解为归还资源的计数器; 或是唤醒进程使其处于就绪状态的控制指令。 利用信号量及其P、V操作能方便地实现进程互斥。 设S为一互斥信号量,其初值=1,表示某临界资源未被占用。利用信号量实现并发进程P1、P2互斥访问临界区的描述如下: 进程p1

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档