一.进程状态
1 .创建状态
流程由创建生成。 创建流程是一个非常复杂的过程,通常需要通过多个步骤来完成。 例如,最初申请过程是空白的过程控制块(PCB ),并向PCB写入控制和管理过程的信息。 然后,为进程分配执行所需的资源。 最后,将进程转换到就绪状态,并将其插入就绪队列。
2 .准备完毕状态
这是指进程准备运行的状态,即进程分配给除CPU以外的所有必需资源后,重新获得CPU即可立即运行。 当系统中有许多处于就绪状态的进程时,它们通常根据一个称为就绪队列的策略进行排队。 有执行资格,没有执行权的进程。
3 .运行状态
其中是指进程已经获取了CPU,并且进程正在运行的状态。 在任何时刻,在单处理器系统中,只有一个进程处于运行状态,并且在多处理器系统中,多个进程处于运行状态。 同时具有执行资格和执行权限的进程。
4 .阻塞状态
这里指的是正在运行的进程由于发生I/O请求、缓冲区请求失败等事件而暂时无法继续执行的状态,即进程的执行被阻止的状态。 此时,发生进程调度,操作系统将处理器分配给准备就绪的其他进程,使被屏蔽的进程暂时停止的状态一般称为暂时停止状态
5 .结束状态
过程的结束也有两个步骤。 首先,等待操作系统进行善后处理,最后清除PCB,将PCB空间返还给系统。 当一个进程到达自然端点、出现无法克服的错误、由操作系统终止或由其他具有终止权限的进程终止时,将进入终止状态。 进入退出状态的进程以后不能再运行,但操作系统中的xxdls存储并记录了状态代码和一些计时统计数据,以供其他进程收集。 当其他进程完成信息提取后,操作系统将删除该进程。 也就是说,清除PCB并将空白的PCB返回给系统。
为什么要划分准备完成和封锁状态呢
a )就绪状态只需要等待处理器,屏蔽状态有可能在等待输入输出,即使分配给处理器也没有用,所以两种状态图是不合适的。 对于计划进程,阻塞状态可以迁移到就绪队列,因此您只需等待就绪队列中的进程。
流程5状态
新状态:进程已创建,但不被操作系统接受为可执行进程。 (还没有申请相应的资源。
准备完毕(流程已准备好,准备运行) (只需等待处理机。
运行状态:此进程正在运行(单处理器,在某个时刻只有一个进程占用处理器)。
阻塞状态在事件发生之前无法执行,例如等待I/O完成。
结束状态。
问题:多个进程的争用内存资源l内存资源紧张
没有l就绪队列。 处理器处于空闲状态。 I/O速度比处理器慢得多,所有进程都可能被阻止并等待I/O。
解决方法
l交换技术:将暂时无法执行的部分进程交换到外部存储器(仅交换程序和数据,不交换PCB ),以释放内存空间,并允许调用新进程执行。
l虚拟存储技术:每个进程只能加载部分程序和数据
挂起:进程被交换到外部存储器并进入挂起状态的4.1进程挂起的原因(p91 ) ) ) ) )。
l进程全部被阻止,处理器处于空闲状态。
l系统负荷过重,内存空间紧张。 (让其他进程先执行)
l操作系统的必要性。 操作系统可能需要挂起后台进程、服务进程或可能导致故障的进程。
l最终用户请求。
l父流程需求。
4.2保留程序的特点
l不能马上执行
l有可能正在等待某个事件的发生,如果是这样的话,阻断条件与暂停条件是独立的,即使发生阻断事件,其进程也无法执行。
n个屏蔽和锁定没有连接。
如果现在a进程请求输入数据,那么此时a进程处于阻塞状态,在选择挂起进程时,有可能首先选择阻塞进程(a进程)。 此时,a进程正在挂起,输入数据,并输入内存缓冲区。 输入数据后,命令数据将发送到处理器,阻塞事件将被解除,但实际上已锁定,因此仍处于挂起状态。
l挂起的进程是自身、父进程、OS。
只有挂起l进程,才能从挂起状态更改为其他状态。
4.3阻塞和锁定
l进程是否等待时间:是否阻止。
l进程是否已从内存中移除:是否已挂起。
4 .四种状态的组合
l就绪:进程位于内存中,准备运行。
l块:进程在内存中,等待事件。
lready/suspend :进程存储在外部,只需传输到内存即可运行。
l块/挂起—进程保存在外部并等待事件。
4.5处理器可以调度执行的进程有两种
l新创建的流程
l或切换到以前挂起的进程
通常,系统运行时会替换以前挂起的进程,以避免增加系统负载。
4.6存在挂起状态的进程状态转移
l块-块/挂起:操作系统通常交换块进程以释放内存空间
l阻止/挂起就绪/挂起:如果发生阻止/挂起进程正在等待的事件,可以转换为就绪/挂起。
l就绪/挂起就绪:操作系统需要转入一个进程运行。
l就绪就绪/挂起:操作系统通常会挂起块进程。 但是,准备进程可能会挂起,从而释放足够的内存空间。
L就绪/挂起(新就绪) )创建新进程后,可以将其插入就绪队列或就绪、挂起队列。 如果没有足够的内存分配给新进程,则需要新就绪/挂起。