操作系统:第2章.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.2.2 进程控制块(PCB)的内容 随操作系统的不同,PCB的格式、大小以及内容也不尽相同。一般地,在PCB中大致应包含如图2-5所示的4方面的信息。 表2-1是实时操作系统RTOS中PCB的具体构成,每个PCB占用22个字节的存储区,两个字节为一个字,各字的内容和作用如下: (1)TPC:随时记录该进程所对应的程序执行地址。最初它是程序的入口地址,随后是进程暂停时的断点地址。 (2)TAC0~TAC3:该操作系统运行的主机共有4个工作寄存器AC0~AC3。进程程序暂停执行时,就将工作寄存器的当前内容保存在此,所以这4个字加上TPC就构成了进程PCB中的现场保护区。 (3)TPRST:记录该进程运行过程中的状态变化和进程的优先数。 (4)TDELAY:当要主动让进程推迟一段时间再执行时,在此存放所需要延迟的时间间隔。 (5)TLNK:这是PCB的队列指针,里面总是存放队列中下一个进程的PCB地址。若该PCB位于队列尾,则TLNK=-1。 (6)TUSP:该进程专用的堆栈指针,是进程程序运行时的工作区。 (7)TELN:若本PCB不够使用时,可以开辟一个PCB扩展区,并用这个指针指向扩展区的起始地址。 (8)TID:进程的标识,也就是该进程的名。 2.2.3 进程控制块队列 在多道程序设计环境里,同时会创建多个进程。当计算机系统只有一个CPU时,每次只能让一个进程运行,其他的进程或处于就绪状态,或处于阻塞状态。为了对这些进程进行管理,操作系统要做三件事。 (1)把处于相同状态的进程的PCB,通过各自的队列指针链接在一起,形成一个个队列。 (2)为每一个队列设立一个队列头指针,它总是指向排在队列之首的进程的PCB。 (3)排在队尾的进程的PCB,它的“队列指针”项内容应该为“-1”,或一个特殊的符号,以表示这是该队的队尾PCB。 在单CPU系统,任何时刻系统中都只有一个进程处于运行状态,因此运行队列中只能有一个PCB;系统中所有处于就绪状态的进程的PCB排成一队,称其为“就绪队列”。一般地,就绪队列中会有多个进程的PCB排在里面,它们形成处理机分配的候选对象。如果就绪队列里没有PCB存在,则称该队列为空;所有处于阻塞状态进程的PCB,应该根据阻塞的原因进行排队,每一个都称为一个“阻塞队列”。比如等待磁盘输入/输出进程的PCB排成一个队列,等待打印机输出进程的PCB排成一个队列等。所以,系统中可以有多个阻塞队列,每个阻塞队列中可以有多个进程的PCB,也可以为空。图2-6是进程各队列的示意图。 从图上可以看出,现在名为PCB1的进程正在CPU上运行,因为它的PCB排在运行队列中。现在就绪队列中有四个进程排在里面,它们分别是PCB2、PCB3、PCB7和PCB6。要注意,进程名只是创建进程时系统所给的一个编号。系统正常运行时,谁的PCB排在队列的前面,谁的PCB排在队列的后面,那是无法预料的。现在进程PCB5和PCB8排在阻塞队列1中,它们被阻塞的原因相同。现在进程PCB10、PCB9和PCB4排在阻塞队列2中,它们被阻塞的原因相同。 假定现在又创建了一个进程,名为PCB11。对于一个刚被创建的进程,系统总是赋予它“就绪”状态,因此它的PCB应该排在就绪队列中。至于PCB11应该排在队列的什么位置,那将由系统所采取的处理机分配策略来确定。假定我们把它排在队列之尾,那么图2-6中的就绪队列就变为图2-7所示的情形。 2.3 进程的调度与管理 2.3.1 进程调度算法 1.先来先服务调度算法 先来先服务调度算法的基本思想是:以到达就绪队列的先后次序为标准来选择占用处理机的进程。一个进程一旦占有处理机,就一直使用下去,直至正常结束或因等待某事件的发生而让出处理机。采用这种算法时,应该这样来管理就绪队列:到达的进程的PCB总是排在就绪队列末尾;调度程序总是把CPU分配给就绪队列中的第一个进程使用。图2-8是先来先服务调度算法的示意图。 2.时间片轮转调度算法 时间片轮转调度算法的基本思想是:为就绪队列中的每一个进程分配一个称为“时间片”的时间段,它是允许该进程运行的时间长度。在使用完一个时间片后,即使进程还没有运行完毕,也要强迫其释放处理机,让给另一个进程使用。它自己则返回到就绪队列末尾,排队等待下一次调度的到来。采用这种调度算法时,对就绪队列的管理与先来先服务完全相同。主要区别是进程每次占用处理机的时间由时间片决定,而不是只要占用处理机就一直运行下去,直到运行完毕或为等待某一事件的发生而自动放弃。图2-9是时间片轮转调度算法的示意图。 3.优先数调度算法 如何确定进程的优先数(也就是进程的优先级)可以从如下几个方面考

文档评论(0)

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

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

1亿VIP精品文档

相关文档