- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章A - 程的描述与控制
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3. 进程控制块的组织方式 为了有效地对进程控制块进行管理,应该采用适当的方式把它们组织起来。 目前常用的组织方式有以下两种: 按链接方式组织PCB (队列) 按索引方式组织PCB (表) 其他方式:线性表或链表 链接方式 不同状态进程分别组成队列: 执行队列 就绪队列 阻塞队列 图2-13 PCB链接队列示意图 索引方式 对具有相同状态的进程,分别设置各自的PCB索引表。索引表目记录PCB在PCB表中的地址 图2-14 按索引方式组织PCB 返回 进程控制是对系统中所有进程从产生、存在到消亡的全过程实行有效的管理和控制。 进程控制一般是由操作系统的内核来实现,内核在执行操作时,往往是通过执行各种原语操作来实现的。进程控制原语包括: 进程创建 ? 创建原语 进程撤销 ? 撤销原语 进程阻塞 ? 阻塞原语 进程唤醒 ? 唤醒原语 进程挂起 ? 挂起原语 进程激活 ? 激活原语 2.3 进程控制 返回 进程图是一棵有向树(如下图),结点代表进程。一棵树表示一个家族,根结点为该家族的祖先(Ancestor)。 2.3.1 进程图 A B C D E F G H I J K L M 图2-15 进程树 返回 1. 进程的创建 进程的创建有两种: 由系统内核统一创建:由系统统一创建的进程之间的关系是平等的,它们之间一般不存在资源继承关系。例如: 批处理系统中,由操作系统的作业调度程序为用户作业创建相应的进程以完成用户作业所要求的功能; 在分时系统中,用户在终端键入登录命令后,如果是合法用户,系统将为该终端建立一个进程; 当运行中的用户程序提出某种请求后,系统将专门创建一个进程来提供用户所需要的服务。 由父进程创建:用进程树来描述进程之间的关系——属于某一个家族的进程可以继承其父进程所拥有的资源 2.3.2 进程的创建与撤销 申请空白PCB 申请获得唯一的数字标识 索取空白PCB 为新进程分配资源 分配必要的内存 初始化进程控制块 初始化标识信息 初始化处理机状态信息 初始化处理机控制信息:设置状态、优先级 将新进程插入就绪队列 进程创建的步骤 功能:创建一个具有指定标识符进程 入口信息:进程标识符、优先级、进程开始地址、初始CPU状态、资源清单等 进程创建流程 图2-16 进程创建流程 2. 进程的撤销 进程完成其任务,希望终止时,调用撤销进程的系统调用(进程撤消原语)撤销进程,以便释放资源和PCB结构本身。撤销进程的调用应由其父进程或祖先进程发出,进程一般不能自己撤销自己。 进程的撤销有三种情况: 正常结束:该进程已完成所要求的功能而正常终止 异常结束:由于某种错误导致非正常终止。如:越界错、保护错、特权指令错、非法指令、运行超时、I/O故障等 外界干预:操作员干预、父进程要求终止 根据被终止进程的标识符,从PCB链中检索出该进程的PCB,从中读出该进程的状态 若为执行态的进程则终止执行,并引起处理机重新调度 若有子孙进程则撤消所有子孙进程 释放该进程所占用的所有资源:释放内外存空间、关闭所有打开文件、释放当前目录、释放共享内存段和各种锁定lock 将该进程从所在队列中移出,回收空白PCB 进程撤销的步骤 功能:撤销一个指定的进程 入口信息:被撤销的进程名 进程撤销流程 图2-17 进程撤销流程 返回 2.3.3 进程的阻塞与唤醒 1. 进程的阻塞 处于执行状态的进程,在其执行过程中期待某一事件发生,如等待键盘输入、等待磁盘数据传输完成、等待其它进程发送消息,当被等待的事件未发生时,由进程自己执行阻塞原语,使自己由执行态变为阻塞态。 引起进程阻塞和唤醒的事件: 请求系统服务:如请求打印机 启动某种操作:如启动I/O 新数据尚未到达 无新工作可做:等待新任务的到达 功能:停止调用进程的执行,变为阻塞。 入口信息:可省 进程阻塞流程 图2-18 进程阻塞流程 一个正在运行的进程会因等待某事件的发生,由执行状态转换成阻塞状态,当它等待的事件发生后,这个进程将由阻塞状态转换成就绪状态。这种转换由进程唤醒操作完成。 引起唤醒的原因 系统服务由不满足到满足 I/O完成 新数据到达 进程提出新请求(服务) 当等待队列中的进程所等待的事件发生时,等待该事件的进程将被唤醒。显然,一个处于阻塞状态的进程不可能自己唤醒自己。唤醒一个进程有两种方法: 一种是由系统进程唤醒 一种是由事件发生进程唤醒 阻塞与唤醒原语是一对作用刚好相反的原语,因此应该成对地出现 2. 进程的唤醒 功能:唤醒某一处于阻塞队列当中的进程。 入口信息:被唤醒进程的名字 进
文档评论(0)