- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 记录型信号量 信号量概念: 1965年Dijkstra提出了一个信号量和P、V操作的同步机构。 基本原则是多个相互合作的进程间使用简单的信号来协调控制。一个进程检测到某个信号后,就被迫停止在一个特定的地方,直到它收到一个专门的信号才能继续往下执行。这个信号就称为信号量(Semaphore)。 信号灯! * 记录型信号量 设信号量s为一个记录型数据结构,一个整形变量value代表资源数目,另一个进程队列指针L用于链接所有等待该资源的进程。 信号量是一个结构变量,不是简单变量。 * 包含两个数据项,可描述为: 记录型信号量 typedef struct { int value;//表示该类资源可用的数目 PCB *L;//等待使用该类资源的进程排成队列的队头指针 }semaphore ; S Value L * 一点说明 (1)整型变量value:代表该类资源的目前可用数目。如果value0,表示有value个资源可用,如果等于0,表示无资源可用,如果小于0,表示有| value |个进程在等待使用该资源。value的初值应该是非负的。 (2)结构指针L:当value大于等于0时,该指针没有意义,当value小于0时,该指针指向等待该资源的队列的首个进程的PCB的地址。 * 几个并发进程共享一个程序段,而每次只允许两个进程进入该程序段,信号量初值? 几个并发进程共享一个程序段,而每次只允许一个进程进入该程序段,信号量初值? 系统中有三台打印机,为打印机设置信号量,则初值为? 一个电影大厅最多能容纳100人,少于100人时可随时进入,否则,需要等待,为电影大厅设置一个信号量,初值应为? 信号量初值设定 * 记录型信号量 信号量的值可以修改,但是只能由P和V操作原语来访问: P操作P(s):申请资源 也用wait(s)或down(s)。将信号量s.value减去l,若结果小于0,则将调用P(s)的进程插入等待该资源的阻塞队列。 V(s):释放资源 也用signal(s)或up(s)。将信号量s.value加1,若结果不大于0,则从该资源的阻塞队列首部唤醒一个进程插入就绪队列中。 * P(s) Y S .value 0 ? S .value= S .value- 1 N 阻塞自身 (1)将S .value值减1。 (2)若S .value 0,阻塞当前的进程,并将它插入到该信号量的等待队列中。 调度另一就绪进程运行。 (3)若S .value ≥0,则当前进程继续运行(得到资源)。 * V(s) Y N S .value≤ 0 ? S.value = S .value+ 1 唤 醒 一 个 (1)将S .value值增1。 (2)若S .value ≤0,从信号量的等待队列中移出一进程使其由阻塞态转变为就绪态 (即唤醒某一进程)。 当前进程继续运行或者运行进程调度程序。 (3)若S .value 0,当前进程继续运行(没有因等待该资源而阻塞的进程)。 * 信号量机制 记录型信号量 P操作 wait(S): S.value= S.value-1 if S.value0 then block(S.L) V操作 signal(S): S.value= S.value+1 if S.value≤0 then wakeup(S.L) 除了需要一个用于代表资源数目的整型变量value外,还应增加一个进程队列指针L,用于链接上述的所有等待进程。 一个进程由执行状态转入阻塞状态,是这个进程自己调用阻塞原语完成的。 进程由阻塞状态转入就绪状态,是另一个发现者进程用唤醒原语完成的。 * 例子 信号量的结构及PCB等待队列 PCB 1 PCB 2 0 PCB 3 指针L 数值(-3) 信号量 假设信号量代表的是打印机,初值为2,表示系统中有两台打印机可以用,当value值为-3的时候,表示有3个进程在等待使用打印机,那具体是哪3个进程呢? 当信号量的value值为负数的时候,L就表示了该资源的阻塞队列。 * 信号量机制 记录型信号量 说明: 1、s.value初值表示系统中某类资源的数目。 2、wait操作申请资源。 3、s.value0时,资源分配完毕,申请使用该资源的进程阻塞,放弃处理机。| s.value |值表示因申请资源不能满足而阻塞的进程数目。 4、signal操作释放资源。 5、若s.value初值为1,此时信号量为互斥信号量,用于实现进程的互斥。 以一个停车场的运作为例。简单起见,假设停车场
您可能关注的文档
- (1.23)--用信号量解决同步问题.ppt
- (1.24)--5.3节奏与韵律产品形态设计.ppt
- (1.24)--第2章1操作系统原理.ppt
- (1.25)--5.4过渡与呼应产品形态设计.ppt
- (1.25)--第2章2操作系统原理.ppt
- (1.26)--5.5比例与尺度产品形态设计.ppt
- (1.27)--5.6统一与变化产品形态设计.ppt
- (1.27)--第4,5章存储器管理.ppt
- (1.28)--6.1功能主导型产品形态设计.ppt
- (1.28)--第一章 操作系统引论.ppt
- 主题课程整理大班上.doc
- 2026人教版小学语文三年级上册期末综合试卷3套(打印版含答案解析).docx
- 2026人教版小学语文四年级下册期末综合试卷3套(打印版含答案解析).docx
- 2026人教版小学二年级上册数学期末综合试卷精选3套(含答案解析).docx
- 2026人教版小学语文四年级上册期末综合试卷3套(含答案解析).docx
- 2026人教版小学二年级下册数学期末综合试卷3套(打印版含答案解析).docx
- 2026年地理信息行业年终总结汇报PPT.pptx
- 板块四第二十一单元封建时代的欧洲和亚洲 中考历史一轮复习.pptx
- 中考历史一轮复习:板块四第二十单元古代亚、非、欧文明+课件.pptx
- 第二次工业革命和近代科学文化中考历史一轮复习.pptx
最近下载
- 深度剖析初中语文批注式阅读教学:理论、实践与创新.docx VIP
- 上海市城镇给排水管道工程预算定额(2016).pdf VIP
- 2023版《思想道德与法治》课后习题答案(第二章).pdf VIP
- net编程规范net编程规范.doc VIP
- 湖北大学《模拟电子技术基础》2022-2023年第一学期期末试卷A卷.pdf VIP
- Q_GDW 10827-2020 三相智能电能表技术规范.docx VIP
- 知识产权的国际保护.ppt VIP
- DBJ50_T-358-2020:既有住宅增设电梯技术标准.pdf VIP
- 市政工程成品保护措施.docx VIP
- GB/T 10294-2008 绝热材料稳态热阻及有关特性的测定 防护热板法.pdf
原创力文档


文档评论(0)