《操作系统》课件-6.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 第6章 进程间的制约关系 1. 2. 3. 本章讲述内容: 进程间的两种制约关系—互斥与同步 ; 正确处理互斥与同步的方法——信号量以及在信号量上的P、V操作 ; 死锁以及解决死锁的途径 ; 进程间的高级通信 。 4. 假定这样进行管理:为输出井 设置一张 “输出井文件目录表”,它 由若干目录项组成。每个目录项记 录一个要打印输出的文件名以及该 文件在磁盘的存放地址。为了管理 该目录表,系统安排了两个指针: out和in。“缓输出程序”根据out的指点进行打印,out总是 指向下一个被打印的文件;井管理写程序根据in的指点存 放要求输出的文件目录信息,in总是指向下一个可用的目录项位置。 6.1 进程间的制约关系 6.1.1与时间有关的错误 与时间有关的错误 1. 进程的并发,使一个进程何时占有处理机、占有多长时间、执行速度的快慢、以及外界对进程产生作用等都带有随机性。因此,一个进程对其他进程的影响无法预测。在操作系统里,把这种由于时间因素的影响而产生的错误,称为“与时间有关的错误”。 对输入井文件目录的管理 2. 读in的当前内容 ; 根据指点,存入打印文件名 ; in的值加1 ; test . c group . p robit . txt 4 5 6 7 4 out 7 in 输入井文件目录表 “井管理写” 程序 在复制过程中,若COPY已把R 里的记录拷贝到了T中,那么GET 和PUT就可以并发执行了。即GET 从F里读出下一个记录送到R中的操 作,与PUT从T中取出里面的内容写入G的操作,谁先做谁后做都没有关系,不会影响到复制结果的正确性。由于利用了它们并发性,工作效率就会提高。 但是,如果不去顾及这三者之间执行顺序的这种关系,随意让GET、COPY、PUT去并发执行,那么就会产生“与时间有关的错误”。 COPY:把输入缓冲区R里的记录拷贝到输出缓冲区T里; GET:从文件F按照顺序读出一个记录,然后送入输入缓冲区R; 3. 通过双缓冲区复制文件 编写一个复制n个记录的程序,它把文件F中的每个记录依次读到输入缓冲区R,再从R拷贝到输出缓冲区T,最后写到文件G中。假定R和T正好存放一个记录。写3个子程序作为进程来完成整个工作: 记录1 记录2 记录n GET COPY PUT 文件F 记录1 记录2 记录n 文件G 输入缓冲区R 输出缓冲区T PUT:从输出缓冲区T里读出一个记录,然后依照顺序写入文件G。 . . . . 若不管GET、COPY、PUT的执行关系,那么可有六种执行可能: 1)COPY→PUT→GET;2)COPY→GET→PUT;3)PUT→COPY→GET 4)PUT→GET→COPY;5)GET→COPY→PUT;6)GET→PUT→COPY . 记录3 记录4 记录n 文件F 记录2 记录1 文件G R T 记录1 GET PUT 记录1 记录1 文件G R T 记录3 记录4 记录n 文件F 记录1 记录4 记录n 文件F 记录3 记录1 文件G R T 记录1 COPY 记录1 记录4 记录n 文件F 记录3 记录3 文件G R T 记录1 1 2 3 . 对第六种情况的分析 (2) (3) (1) (4) 一个进程在临界区内逗留有限时间后,就应该退出,以便给其他进程创造进入临界区的机会。 如果有若干个进程要求进入自己的临界区,那么它们不应互相排斥,致使谁也进不了临界区。 . 6.1.2 竞争资源——互斥 1. 共享变量 在操作系统中,把那些可以被进程共享的资源(如文件、队列、缓冲区、表格、变量等)统称为“共享变量”或“临界资源”。 2. 互斥 与一个共享变量(或临界资源)交往的多个进程,为了保证它们各自运行结果的正确性,当其中的一个进程正在对该变量(或临界资源)进行操作时,就不允许其他进程同时对它进行操作。进程间的这种制约关系被称为“互斥”。 3. 临界区 在进程程序中,只有涉及到共享变量的那一部分程序,才真正需要保证互斥地执行。通常,把进程程序中“真正需要保证互斥执行”的那一段程序,称为该进程的“临界区(或临界段)”。 4. 解决临界区互斥必须遵循的准则 . . 每次只允许一个进程进入临界区。 一个进程需要等待另一个进程完成的操作或发送的信息,称为“同步条件”。 一个进程运行到某点时,除非合作进程已经完成了某种操作或发来了信息,否则就必

文档评论(0)

132****9295 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档