进程管理(计算机基础).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文档。上传文档
查看更多
计算机技术概论 Introduction to Computer Technologies 重点概念和内容提示 进程的概念、进程与程序的区别 进程的状态及转换 进程的通信 3. 进程的创建(Creation of Progress) (1)申请空白PCB。 (2) 为新进程分配资源。 (3) 初始化进程控制块。 (4) 将新进程插入就绪队列,如果进程就绪队列能够接纳新进程, 便将新进程插入就绪队列。 创建进程必须调用创建原语来实现。 一个典型的进程创建原语可描述如下: Create (s0,m0,pi) { p=Get_New_PCB(); //分配新的PCB pid=Get_New_PID(); //分配进程的PID p—ID=pid; //设置进程的PID p-CPU_State=s0; //CPU的状态 p -Memory=m0; //内存 p -Priority=pi; //优先级 p -Status.Type=‘Ready’; //进程状态 p -Status.List=RL; //进程队列 …………………… Insert(RL,p); //将进程p插入就绪队列 Scheduler(); //调度程序 } 4.3.3.1 进程的创建 引起进程撤销的事件 4.3.3.2 进程的撤销 1) 正常结束 2) 异常结束 由于出现某些错误和故障而迫使进程撤销。常见的有: ① 越界错误 ② 保护错。例如,进程试图去写一个只读文件; ③ 非法指令。程序试图去执行一条不存在的指令。④ 特权指令错。⑤ 运行超时。进程的执行时间超过了指定的最大值; ⑥ 等待超时。进程等待某事件的时间, 超过了规定的最大值;⑦ 算术运算错,如被0除;⑧ I/O故障 3) 外界干预 ① 操作员或操作系统干预。 ② 父进程请求 ③ 父进程撤销。 当父进程撤销时,OS也将他的所有子孙进程撤销。 2. 进程的撤销过程 (1) 根据被撤销进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态。 (2) 若被撤销进程正处于执行状态,应立即撤销该进程的执行,并置调度标志为真,用于指示该进程被撤销后应重新进行调度。 (3) 若该进程还有子孙进程,还应将其所有子孙进程予以撤销,以防他们成为不可控的进程。 (4) 将被撤销进程所拥有的全部资源,或者归还给其父进程, 或者归还给系统。 (5) 将被撤销进程(它的PCB)从所在队列(或链表)中移出, 等待其他程序来搜集信息。 4.3.3.2 进程的撤销 1. 引起进程阻塞和唤醒的事件 请求系统服务 (如I/O操作) 2) 启动某种操作 3) 新数据尚未到达 4) 无新工作可做 进程的阻塞与唤醒 等待相应事件出现后再把它唤醒 2. 进程阻塞过程 正在执行的进程,当发现上述某事件时,由于无法继续执行,于是进程便通过调用阻塞原语block把自己阻塞。可见,进程的阻塞是进程自身的一种主动行为。进入block过程后,由于此时该进程还处于执行状态,所以应先立即停止执行,把进程控制块中的现行状态由“执行”改为阻塞,并将PCB插入阻塞队列。如果系统中设置了因不同事件而阻塞的多个阻塞队列,则应将本进程插入到具有相同事件的阻塞(等待)队列。 最后,转调度程序进行重新调度,将处理机分配给另一就绪进程,并进行切换,亦即,保留被阻塞进程的处理机状态(在PCB中),再按新进程的PCB中的处理机状态设置CPU的环境。 进程的阻塞与唤醒 阻塞原语可描述如下: Block( ) { p=Get_PCB(); //获取当前进程的进程控制块 s=p-Status.Type; //保存当前进程的状态 cpu=p-Processor_ID; //处理机状态 p-CPU_State=Interrupt(cpu); //保存处理机现场 p-Status.Type=‘Blocked’; //将进程的状态改为阻塞 Insert(BL,p); //将进程插入等待队列 Scheduler(); } 进程的阻塞与唤醒 3. 进程唤醒过程 当阻塞的进程所等待的事件出现时(如所需数据已到达,或者等待的I/O操作已经完成),则由另外的与阻塞进程相关的进程(如完成I/O操作

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档