- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
进程间制约关系分析
操作系统第8课 进程间的制约关系 今日内容 进程的互斥 进程的同步 信号量和P、V操作 内容回顾:进程间的制约关系 进程的并发,使一个进程何时占有处理机、占有多长时间、执行速度的快慢、以及外界对进程产生作用等都带有随机性。因此,一个进程对其他进程的影响无法预测。进程间存在制约关系。 间接制约 直接制约 例:对输入井文件目录的管理 为输出井设置一张 “输出井文件目录表”,它由若干目录项组成。每个目录项记录一个要打印输出的文件名以及该文件在磁盘的存放地址。 两个指针:out和in。 两个程序: “井管理写程序”根据in的指点存放要求输出的文件目录信息,in总是指向下一个可用的目录项位置。 “缓输出程序”根据out的指点进行打印,out总是指向下一个被打印的文件。 例:通过双缓冲区复制文件 编写一个复制n个记录的程序,它把文件F中的每个记录依次读到输入缓冲区R,再从R拷贝到输出缓冲区T,最后写到文件G中。假定R和T正好存放一个记录。 写3个子程序作为进程来完成整个工作: GET:从文件F按照顺序读出一个记录,然后送入输入缓冲区R; COPY:把输入缓冲区R里的记录拷贝到输出缓冲区T里; PUT:从输出缓冲区T里读出一个记录,然后依照顺序写入文件G。 例:通过双缓冲区复制文件 在复制过程中,若COPY已把R里的记录拷贝到了T中,那么GET和PUT就可以并发执行了。即GET从F里读出下一个记录送到R中的操作,与PUT从T中取出里面的内容写入G的操作,谁先做谁后做都没有关系,不会影响到复制结果的正确性。由于利用了它们并发性,工作效率就会提高。 但是,如果不去顾及这三者之间执行顺序的这种关系,随意让GET、COPY、PUT去并发执行,那么就会产生错误。 进程的互斥 共享变量 在操作系统中,把那些可以被进程共享的资源(如文件、队列、缓冲区、表格、变量等)统称为“共享变量”或“临界资源”。 互斥 与一个共享变量(或临界资源)交往的多个进程,为了保证它们各自运行结果的正确性,当其中的一个进程正在对该变量(或临界资源)进行操作时,就不允许其他进程同时对它进行操作。进程间的这种制约关系被称为“互斥”。 临界区 把进程程序中“真正需要保证互斥执行”的程序,称为该进程的“临界区(或临界段)”。 使用临界区的原则: (一组并发进程互斥执行时应满足的准则,保证使用共享数据的进程能够正确和高效地运行) 同步、同步点、同步条件 一组并发进程因直接制约而互相发送消息,进行互相合作,互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。 进程暂停等待以取得同步的那一点,称为“同步点”。 一个进程需要等待另一个进程完成的操作或发送的信息,称为“同步条件”。 2、硬件方法:TSL(“测试并上锁”)指令 借助一条硬件指令来实现互斥的同步机构。 TSL指令: 包括读数和写数两个操作。 enter_region; 临界区 leave_region; 3、信号量及P.V操作 信号量的使用: 通过初始化和两个标准原语来访问。 1、必须置一次且只能置一次初值; 初值不能为负数 2、只能执行P、V操作 2、P、V原语操作 P(sem) { sem.value - -; //表示申请一个资源 if (sem.value 0) //表示无可用资源 { 将该进程状态置为等待状态并将该进程插入与该信号相对应的等待队列中; }else //表示还有可用资源 {进程继续运行} } V(sem) { sem.value + +; //表示释放一个资源 if (sem.value = 0) //表示有等待使用资 源的进程 { 唤醒相应等待队列中等待的一个进程; 改变其状态为就绪态; 并将其插入就绪队列。 } 进程继续运行或转进程调度程序 } 用P、V操作解决进程间互斥问题 为临界资源设置一个互斥信号量mutex,并设初值(有几个共享资源初值就为几); 在每个进程中将临界区代码置于P(mutex)和V(mutex)原语之间。 用P、V操作解决进程间互斥问题 例:用信号量来解决飞机售票系统的互斥问题: Program: . . . if count0 then { //sell the ticket count=count-1; } s.value=0 P0: P(S) if count0 then { //sell the ticket coun
您可能关注的文档
- 进入有限空间作业安全管理制度和操作规程分析.doc
- 进入轿顶、底坑安全操作分析.ppt
- 进出门管理规定分析.doc
- 进制及进制转换分析.ppt
- 进出口报关与对外贸管制分析.ppt
- 近期桥梁安全事故案例(周志祥)分析.ppt
- 进口食品常见问题分析.doc
- 进度指示器分析.doc
- 进户门安装隐蔽工程检查验收记录(一标段)分析.doc
- 进程间通信-IPC分析.ppt
- 《GB/T 32879-2025电动汽车更换用电池箱连接器》.pdf
- 中国国家标准 GB/T 21649.2-2025粒度分析 图像分析法 第2部分: 动态图像分析法.pdf
- 中国国家标准 GB/T 20899.9-2025金矿石化学分析方法 第9部分:碳量的测定.pdf
- 《GB/T 20899.9-2025金矿石化学分析方法 第9部分:碳量的测定》.pdf
- GB/T 20899.9-2025金矿石化学分析方法 第9部分:碳量的测定.pdf
- 《GB/T 33820-2025金属材料 延性试验 多孔状和蜂窝状金属高速压缩试验方法》.pdf
- GB/T 33820-2025金属材料 延性试验 多孔状和蜂窝状金属高速压缩试验方法.pdf
- 中国国家标准 GB/T 33820-2025金属材料 延性试验 多孔状和蜂窝状金属高速压缩试验方法.pdf
- GB/T 45910-2025信息技术 生物特征识别模板保护方案的性能测试.pdf
- 《GB/T 45910-2025信息技术 生物特征识别模板保护方案的性能测试》.pdf
文档评论(0)