章2进程控制与同步3.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文档。上传文档
查看更多
章2进程控制与同步3

山东农业大学计算机系 上次问题 描述OS进行进程创建、终止、阻塞、挂起等的过程; 什么是同步; 使并发执行的诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性 控制同步的关键在哪里。 不被打断的进行标志值的判断和修改 同步原则 空闲让进,忙则等待,有限等待,让权等待 第2章 进程管理 2.1 进程基本概念 2.2 进程控制 2.3 进程同步(信号量) 2.4 经典进程同步问题 2.5 进程通信 2.6 线程 2.信号量机制 荷兰科学家Dijkstra(狄克斯特拉)提出的一种卓有成效的进程同步机制。 1) 整型信号量 信号量定义为一个整型量; 根据初始情况赋相应的值; 仅能通过两个原子操作来访问。 例:对临界资源的互斥使用 程序1: wait(s) 使用R signal(s) 程序2: wait(s) 使用R signal(s) 2)记录型信号量 整型信号量符合“有限等待”原则 signal释放资源后,当CPU被分配给等待进程后,等待进程仍可继续执行,可以符合“有限等待”。 但整型信号量不符合“让权等待”原则 整型信号量的wait操作,当s ≤0时,当前进程会占着CPU不断测试; 信号量原语不能被打断,这个占有CPU的进程会一直不断的占据CPU循环下去,陷入忙等。 改进:条件不符时应能够主动放弃CPU 新问题:放弃CPU的进程进入阻塞队列:因等待某信号量而放弃CPU的等待进程会有“若干”个,需将它们组织管理起来,并在合适的时候唤醒。 * 信号量结构信息发生变化 不仅要有值的处理,还有队列的处理。 此时形成记录型数据结构,包括两部分: 整型变量value(代表资源数目) 进程链表L(链接所有等待进程): 代码描述: type Semaphore=record value:integer; L:list of PCB; end; 操作:S.Value,S.L Value0,表示当前可用资源的数量; Value≤0,其绝对值表示等待使用该资源的进程数,即在该信号量队列上排队的PCB的个数。 * P、V操作也有所变化 不仅修改资源数,还要处理进程的阻塞、唤醒等操作。先修改资源数,再判断处理。 定义信号量semaphore代表可用资源实体的数量。又叫信号灯。 当≥0,代表可供并发进程使用的资源实体数 当0,表示正在等待使用该资源的进程数。 建立一个信号量必须经过说明,包括 信号量所代表的意义 赋初值 建立相应的数据结构,以便指向等待使用临界区的进程。 除初值外,信号量的值仅能由标准原子操作P、V操作来改变。 PV操作是荷兰语通过和释放的意思。 3)信号量的基本应用 实现进程互斥 实现进程间的前趋关系(有序) ?实现多个进程互斥 设置一互斥信号量mutex,初值为1。 互斥信号量注意点: 互斥信号量mutex初值为1; 每个进程中将临界区代码置于P(mutex)和V(mutex)原语之间 必须成对使用P和V原语(在同一进程中),不能次序错误、重复或遗漏: 遗漏P原语则不能保证互斥访问 遗漏V原语则不能在使用临界资源之后将其释放(给其他等待的进程); ?实现有序 前趋关系: 并发执行的进程P1和P2中,分别有代码C1和C2,要求C1要在C2开始前完成; 为每对前趋关系设置一个同步信号量S12,并赋初值为0。则只有V操作所在进程获得cpu时能运行 控制同步顺序的注意点 信号量值为0的点是限制的关键所在; 成对使用P和V原语(在有先后关系的两个进程中),不能次序错误、重复或遗漏,否则同步顺序出错。 一个简单同步举例 例:设有一供者和一用者,如何用信号量来控制二者对缓冲区的同步使用。 注意思考: 信号量是针对资源设置的,分析本问题各对象关心的资源,想想需要设置几个信号量,初值又如何? 练习: 1)如何利用互斥信号量解决上次课两个加法进程对共享变量操作的问题? 2)民航售票系统问题 n个售票处。每个售票处通过终端访问系统的公用数据区 假定公用数据区中分别用Ri表示某时间i次航班的现存票数。 Pi表示某售票处的处理进程,试用信号量实现进程间的互斥关系。 3)用信号量实现司机和售票员的同步。 4)AND型信号量 出现原因:一些应用往往需要两个或多个共享资源,而不是前述的一个资源。进程同时要求的共享资源越多,发生死锁可能性越大。 解决思想: 一次性分配给进程所需资源,用完一起释放。Wait操作时对它所有需要的资源都要判断,有AND条件,故称“AND同步”、“同时wait”。 5)信号量集 引入原因: 每次只能获得或释放一个单位的资源,低效; 某些时候资源分配有下限的限制; 修改:在大于可分配设置的下界值t前提下,每次可分配d个。 信号量集的一个特例 只有一个信号量S的几种特殊情

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档