- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
什么是信号? P、V操作 信号量是OS用来管理进程互斥或同步使用资源的一个手段。进程申请资源能否成功取决于对信号量的Wait操作的结果。 相当于进入临界区之前先看是否有可用钥匙。有则拿一把开锁,出来时再归还钥匙。 板书分析三个进程互斥进入临界区的过程 并发执行的进程P1和P2中,分别有代码C1和C2,要求C1在C2开始前完成。 //表示进程是否执行完 用一个信号量能实现同步吗 同步信号量表示该进程是否可以开始或该进程是否已经结束。 单缓冲区的同步问题 P进程不能往“满”的缓冲区中放产品,设置信号量为empty C进程不能从“空”的缓冲区中取产品,设置信号量full empty初值为1,full初值为0 单缓冲区的互斥问题 P、C进程不能同时使用缓冲区 在多道程序环境下,进程同步问题十分重要,出现一系列经典的进程同步问题,其中有代表性有: 它是一个同步问题: (1)消费者想要取产品,有界缓冲区中至少有一个单元是满的。 (2)生产者想要放产品,有界缓冲区中至少有一个是空的。 它是一互斥问题: 有界缓冲区是临界资源,因此,各生产者进程和各消费者进程必须互斥访问。 仔细考虑两个P操作之间的内在关系可以看到存在这样的一个逻辑关系:如果对整个缓冲器有操作权(即缓冲器还有空位置)的话,则可对某个缓冲器操作.“如果? ”是前提条件。“则? ”是结论.这两个P操作的执行顺序就是根据它们的逻辑顺序来决定执行次序. 利用信号量实现前驱关系 P1 P2 三、信号量的应用 设置一个信号量S,S=0 P1; V(S); P(S); P2; 如此即可实现先执行P1,再执行P2 为每个前趋关系设置一个同步信号量,其初值为0 三、信号量的应用 例: 程序前趋图如图所示,试用P、V操作实现其同步。 var a,b,c,d:semaphore:=0,0,0,0; begin cobegin s1; s2; s3; s4; coend; end; s1 s2 s3 s4 a b c d s1: begin …; v(a); end; s2: begin … v(b); v(c); end; s3: begin p(a); p(b); … v(d); end; s4: begin p(c); p(d); ... end; 利用信号量实现前驱关系 三、信号量的应用 思考: 已知一个求值公式(A2+3*B)/(B+5*A), 若A、B已赋值,画出该公式求值过程的前趋图 利用信号量实现前驱关系 三、信号量的应用 利用信号量实现同步 生产者-消费者问题的单缓冲区情况:有A、B两个进程和一个缓冲区,A负责将信息存入缓冲区,B负责取走缓冲区中的信息进行加工。如何利用信号量实现进程同步? 消费者 生产者 三、信号量的应用 利用信号量实现同步 解:设两个同步信号量。S1:缓冲区是否满,初值为0;S2:缓冲区是否空,初值为1 三、信号量的应用 进程同步问题的解题思路 有几类同步进程,就设几个同步信号量。 设定信号量初值。 同一信号量的P、V操作要成对出现,但分别在不同进程的代码中。 2.4 经典进程的同步问题 生产者—消费者问题 生产者与消费者互斥访问公用数据缓冲区 生产者生产“数据”,消费者消费“数据” 哲学进家餐问题 读者—写者问题 1、“生产者—消费者”问题 多缓冲区的生产者—消费者问题描述 一组生产者向一组消费者提供消息,它们共享一个有界( k 个)缓冲池,生产者向其中投放消息,消费者从中取得消息。任何时刻只能有一个进程可对共享缓冲池进行操作。 1、“生产者—消费者”问题 P C C P P C P C 1、“生产者—消费者”问题 多缓冲区的同步互斥问题 同步:当缓冲池已放满了产品时(供过于求),生产者进程必须等待;当缓冲池已空时(供不应求),消费者进程应等待。 互斥:所有进程应互斥使用缓冲池这一临界资源。 多缓冲区的生产者─消费者问题解法 1、“生产者—消费者”问题 设置两个同步信号量及一个互斥信号量 empty:空缓冲单元的数目,其初值为k。 full:满缓冲单元的数目(即产品数目),其初值为0。 mutex: 所有进程都是互斥访问缓冲池的,所以设一个互斥信号量mutex,初值是1,表示缓冲池的访问权,整个缓冲池是一个临界资源。 1、“生产者—消费者”问题 多缓冲区的生产者─消费者问题解法 思考:P操作的顺序可换吗? “生产者—消费者”问题的算法描述: Var mutex, empty, full : semaphore : = 1, n, 0; buffer : array[0,…,k-1] of item; in,
您可能关注的文档
- 0集合的含义及表示.ppt
- 01 - 网络环境的搭建与基础命令.pdf
- 安全及电磁兼容认证规则.pdf
- 01_矩阵和其基本运算.doc
- 安全及支付7对称加密技术信息加密技术及数字证书.ppt
- 01第1篇 线性规划习题解答.pdf
- 安全网关的初始化连接及管理器安装.doc
- 安装keil4教程及keil4下增加C51支持.doc
- 安卓手机_WIFI_能连接上_但是不能上网问题解决方法.doc
- 岸边缓冲带生态功能和其建设的理论_王东胜.pdf
- 2024《白河生态及水质调研分析报告》4300字.docx
- 2024《高速铁路线路养护维修实训报告》3200字.docx
- 2024《基于近三年数据的东阿阿胶公司营运能力存在的问题及解决对策》8900字.docx
- 2024《ABBIRB2600型号机器人激光切割系统集成设计》10000字.docx
- 2024《百雀羚企业竞争力的培育与提升浅析》5600字.doc
- 2024《A教育集团员工培训过程中问题及完善对策研究(数据图表论文)》10000字.docx
- 2024《杭州桐庐县青年女性体育消费情况的调研分析报告(附问卷)》9300字.doc
- 2024《芭比食品公司信息化战略优化研究(任务书+开题报告)3100字》.docx
- 2024《恒顺醋业产品成本控制问题及完善建议》9600字.doc
- 2024《浪鲸卫浴厨卫电器公司应收账款的管理研究》6300字.docx
文档评论(0)