三进程管理.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 进程管理 (一)具体知识点 1.进程的引入和定义 2.进程状态和转换 3.进程产生与终止 4.进程的描述 5.进程控制 6.进程互斥与同步 (二)学习要求 通过对本章节的学习,理解进程是系统中的基本执行单位,对进程控制块有比较深入的掌握,重点是进程的互斥和同步问题 (三)本章节体系 1.进程概念及状态迁移 程序的一次执行就是一个进程,进程概念和程序概念最大的不同之处在于: ??? ●进程是动态的,而程序是静态的。 ??? ●进程有一定的生命期,而程序是指令的集合,本身无“运动”的含义。没有建立进程的程序不能作为1个独立单位得到操作系统的认可。 ???●1个程序可以对应多个进程,但1个进程只能对应1个程序。进程和程序的关系犹如演出和剧本的关系。 生命期内三种状态: 在生命期内,每个进程至少有3种基本状态: ●就绪(Ready)状态? 进程取得了除CPU之外的所有必要的资源,它正在申请处理机资源。这种情况下的进程处于就绪状态。 ●阻塞(Blocked)状态? 进程放弃对处理机的拥有权,又不具备马上再度申请处理机的条件的情况下,进程处于阻塞状态,又称等待状态、睡眠状态。 ●运行状态? 进程取得了对处理机的拥有权的状态。注意,进程取得了对系统资源的拥有权,实际上也就取得了对资源的使用权。但在处理机上真正执行的基本单位是所谓的线程(thread)而不是进程──这是当前操作系统普遍采用的方法。由进程申请处理机的拥有权,然后由它的线程使用 图一:状态变迁图 2.进程互斥与同步 进程是申请系统资源的基本单位,但由于系统资源数量有限,必然导致诸进程间的资源竞争。用户进程与系统进程之间,同一用户作业内部各进程之间,不同用户各作业的进程之间,各系统进程之间都存在资源竞争问题,因此进程之间的关系非常复杂。如果对竞争失控,产生的后果是:要么资源在使用过程中遭到破坏,要么是各进程为争夺资源而形成僵持局面(死锁)。为了规范竞争,提出了进程互斥、同步与死锁防治的措施。 临界资源与临界段: 某些计算机资源固有如下特性:1次仅允许1个进程使用,即本次未使用完之前是不允许别的使用者使用的。例如打印机就是这种资源。甲进程正在使用打印机期间不允许别的进程插进来共用。具备这种特性的资源称为临界资源(critical resource),使用临界资源的那段程序称为临界段(critical section)。临界段代表资源被占用的时间片,在这个时间片内,资源的使用权属于进入临界段的那个进程。换句话说,临界资源是一类必须顺序使用的资源,进程获得对它的使用权就等价于该进程获得进入自己的临界段的权利。为什么进入自己的临界段还要获准呢?因为不这样做有可能违犯顺序使用原则,或者说犯与时间有关的错误。从资源角度看,它被顺序地使用;从进程角度看,它被各个进程互斥地使用。说到底,各进程必须互斥地进入自己的临界段。 互斥工具: 操作系统提供互斥工具才能保证进程互斥地进入临界段。互斥工具应能保证:①当临界资源有空闲时,允许1个进程进入临界段;②当临界资源忙时,试图使用该资源的进程等在该资源上;③退出临界段时,若有等待进程则允许其中的1个进程进入临界段。若无等待者,则置临界资源为空闲。显然互斥工具没有义务防止某个进程永久滞留在临界段。下面介绍2种互斥工具。 测试与设置 由硬件实现,定义如下: ??? TS (var lock: boolean): boolean; { TS= lock;//返回lock的值,它是布尔量 lock=true;//lock为true表示该资源正在使用 }//lock为false, 表示该资源空闲 ? 利用TS指令实现进程互斥的模板如下: ?pi进程 ???...... ?? while TS(lock) do skip//循环测试直到TS(lock) ??? 临界段 i//为false,进入临界段 ?? lock = false//离开临界段时,置lock为false ......//以允许其他进程进入临界段。 有的文献把while语句定义成关锁原语(lock),把lock=false定义成开锁原语(unlock), 统称为互斥锁。 (2)PV操作原语 利用PV操作实现2个进程互斥的模板: PROGRAMmutual-example; VAR mutex: semaphore initial(1)//信号量变量mutex初值量1,队列为空 BEGIN//程序开始 COBEGIN//COBEGIN与COEND之间的进程是并发的。 PROCESSp1 BEGIN ...... P(mutex); 临界段 1//使用临界资源的临界段1 V(mutex); ...... END PROCESSp2 BEGIN ...... P(mutex); 临界段 2//使用临

文档评论(0)

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

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

1亿VIP精品文档

相关文档