做搜狗pc网站排,优化方案化学2023版电子版,自由做图网站,网络架构要求包括如果这篇博客对您有用的话#xff0c;可以给我点个赞吗#xff0c;这对我很重要#xff0c;谢谢#xff01;❤️ 2.1.3 进程控制
知识总览 2.1.3.1 进程控制的过程
进程控制的主要功能是对系统中的所有进程实施有效的管理#xff0c;它具有创建新进程、撤销已有进程、实… 如果这篇博客对您有用的话可以给我点个赞吗这对我很重要谢谢❤️ 2.1.3 进程控制
知识总览 2.1.3.1 进程控制的过程
进程控制的主要功能是对系统中的所有进程实施有效的管理它具有创建新进程、撤销已有进程、实现进程状态转换等功能。
如果是简单理解的话就是进程控制就是实现进程状态转换。 如果一个进程处于创建态那么他需要初始化PCB、分配系统资源。当所有东西分配结束后此时创建态变为就绪态转变的过程实际上是修改PCB内容和相应的队列此时该进程的PCB被放入了就绪队列中。 当处于就绪态的进程想要转换为运行态那么需要恢复进程运行的环境并且修改PCB内容和相应队列。之所以要恢复进程运行的环境是因为这个进程的上一次运行可能出现意外退出这种情况。 当处于运行态的进程想要转换为阻塞态需要保存进程运行环境并且修改PCB内容和相应的队列。 当处于阻塞态说明是等待资源问题或者是其他进程的等待问题。所以当转换为就绪态时需要修改PCB内容和相应队列。如果等待的是资源则还需为进程分配系统资源。 运行态转换为就绪态的时候需要保存进程运行环境并且修改PCB内容和相应队列。 如果运行态转换为终止态的时候需要回收进程拥有的资源撤销PCB。 2.1.3.1 实现进程控制
用原语实现进程控制。原语的特点是执行期间不允许中断只能一气呵成。这种不可被中断的操作即原子操作。
原语采用关中断指令和开中断指令实现。当要用原语实现进程控制时此时执行关中断指令如果有外部中断信号要中断进程是会被忽略掉的而在执行完原语代码后就会执行开中断指令如果这时候有外部中断信号就不会被忽略。
显然关/开中断指令的权限非常大必然是只允许在核心态下执行的特权指令。 2.1.3.2 进程控制相关的原语
进程控制会导致进程状态的转换。无论哪个原语要做的无非三类事情
更新PCB中的信息如修改进程状态标志、将允许环境保存到PCB、从PCB恢复允许环境 所有的进程控制原语一定都会修改进程状态标志剥夺当前运行进程的CPU使用权必然需要保存其运行环境某进程开始运行前必然要恢复其运行环境 将PCB插入合适的队列分配/回收资源 进程的创建 状态历程无→创建态→就绪态 创建原语分为以下的工作 申请空白PCB为新进程分配所需资源初始化PCB将PCB插入就绪队列 引起进程创建的事件有 事件说明用户登录分时系统中用户登录成功系统会为其建立一个新的进程作业调度多道批处理系统中有新的作业放入内存时会为其建立一个新的进程提供服务用户向操作系统提出某些请求时会新建一个进程处理该请求应用请求由用户进程主动请求创建一个子进程进程的终止 状态历程就绪态/阻塞态/运行态→终止态→无 撤销原语分为以下的工作 从PCB集合中找到终止进程的PCB若进程正在运行立即剥夺CPU将CPU分配给其他进程终止其所有子进程将该进程拥有的所有资源归还给父进程或操作系统删除PCB 引起进程终止的事件有 正常结束异常结束外界干预 进程的阻塞 状态历程运行态→阻塞态 阻塞原语分为以下的工作 找到要阻塞的进程对于的PCB保护进程运行现场将PCB状态信息设置为“阻塞态”暂时停止进程运行将PCB插入相应时间的等待队列 引起进程阻塞的事件有 需要等待系统分配某种资源需要等待相互合作的其他进程完成工作 进程的唤醒 状态历程阻塞态→就绪态 唤醒原语分为以下的工作 在事件等待队列中找到PCB将PCB从等待队列移除设置进程为就绪态将PCB插入就绪队列等待被调度 引起进程唤醒的事件有 等待的事件发生因何事阻塞就应由何事唤醒 进程的切换 状态历程运行态→阻塞态/就绪态 就绪态→运行态 切换原语分为以下的工作 将运行环境信息存入PCBPCB移入相应队列选择另一个进程执行并更新其PCB根据PCB恢复新进程所需的运行环境 引起进程切换的事件有 当前进程时间片到了有更高优先级的进程到达当前进程主动阻塞当前进程终止 2.1.3.3 小结