停车场与记录型信号量资料.pptVIP

  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文档。上传文档
查看更多
S.value= -1 L 等待 S.value= -2 L 等待 ?S.value0:其绝对值表示在该信号量链表中已阻塞进程的数目。 S.value数值含义 若信号量S.value的初值为2,当前值为-1,则表示有( )个进程等待。 A、0 B、1 C、2 D、3 S.value值的含义 B 1.wait(S)和signal(S)是原子操作; 2.信号量的值仅由wait、signal操作改变; 3.必须给信号量赋初值,且只能赋一次初值; 4.互斥信号量为1 使用信号量时注意几点: 1.对于两个并发进程,设互斥信号量为mutex,若mutex=0,则( ) A、表示没有进程进入临界区 B、表示有一个进程进入临界区 C、表示有一个进程进入临界区,另一个进程等待 D、表示有2个进程进入临界区 2.每执行一次wait操作,信号量的数值S减1。 若S=0,则该进程???????????? ; 若S0,则该进程?????????????? 。 3.每执行一次signal操作,信号量的数值S加1。 若????????????? ,则该进程继续执行; 否则,从对应的??? ????????队列中移出一个进程 并???????? 状态赋予该进程。 4.信号量的物理意义是当信号量值大于零时表示____;当信号量值小于零时,其绝对值为____。 5.操作系统中,对信号量S的wait原语操作定义中,使进程进入相应等待队列等待的条件是______。 练习 * * 信号量机制是一种卓有成效的进程同步机制,它已被广泛地应用于各种类型的 OS中。 如同汽车进入停车位必须先申请停车证一样,进程访问公共资源必须先申请信号量。停车位就相当于系统资源,汽车相当于进程,停车证是信号量。信号量机制从整型信号量经记录型信号量,进而发展为“信号量集”机制。 * 记录型结构,包含两个数据项,List of process进程链表,s.value初始值表示系统中某类资源的数目,又称为资源信号量。 定义一个记录型数据结构S.L用来链接等待S.value所表示的该类资源的所有进程,初值为空 L链表是一个阻塞队列,一个(空或非空)的等待队列,申请不到资源的进程就进入到链表中,处于阻塞态。 * 当S.value0时,表示该类资源已分配完毕,因此进程应调用block原语,进行自我阻塞,放弃处理机,并插入到信号量链表S.L中。可见,该机制遵循了“让权等待”准则。 * Signal释放一个资源 Laiwu Vocational and Technical college 莱芜职业技术学院 Laiwu Vocational and Technical college 莱芜职业技术学院 记录型信号量 信号量机制 进程同步机制:协调进程间执行次序 信号量机制:使用信号量及有关的P、V操作原语来实现进程的互斥与同步。是一种卓有成效的进程同步机制 信号量:semaphore,控制进程的执行 1、整型信号量机制 2、记录型信号量机制 3、信号量集机制 记录型信号量 数据结构: type semaphore=record value: integer; L: list of process; end 初值为资源信号量的数目。 链表L用于链接所有等待的进程。 等待 系统 资源 进程 信号量 整型变量 场景模拟 L 2. signal操作 3. S.value值的含义 1. wait操作 wait操作和signal操作 wait操作: Procedure wait(S) var S: semaphore; begin S.value:=S.value( )1; if S.value( )0 then block(S.L) ; end signal操作: Procedure signal(S) var S: semaphore; begin S.value:=S.value( )1; if S.value( )0 then wakeup(S.L) ; end

文档评论(0)

三四五 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档