首页 > 编程知识 正文

进程的常见状态,进程基本状态

时间:2023-05-04 00:51:29 阅读:230772 作者:4511

1、进程的状态
①运行状态(Running)
进程已经占用CPU,在CPU上进行
②就绪状态(Ready)
具备运行条件但是由于没有CPU可用,所以暂时不能运行
③阻塞状态(Block)也叫等待状态(Wait)
由于等待某项服务完成或者等待某个学号而不能运行的状态,比如等待系统调用,I/O操作等

2、进程三态模型

*就绪->运行:进程调度
*运行->就绪:时间片到或者被强行占用
*运行->阻塞:请求服务后等待响应,或者等待某个信号的到来
*阻塞->就绪:请求的服务已经完成,或者等待的信号已经到来

3、五大基本状态模型

新建状态:进程刚刚创建
终止状态:进程的执行刚刚结束,还未撤销

多个进程的执行过程中存在内存资源的竞争问题:
①内存资源紧张
②无就绪队列,处理机空闲:I/O速度比处理机速度慢,可能出现全部进程阻塞等待I/O

解决方法:
①交换技术:换出一部分暂时不能运行的进程(阻塞进程)到外存(PCB不变,只能换出程序和数据),腾出内存空间用来调用新进程的执行
②虚拟存储技术:每个进程只能装入一部分程序和数据

4.Linux中的状态定义
(1)可运行态
  ①就绪:在就绪队列中等待调度;
  ②运行:正在运行。
(2)阻塞(等待)态
  ①浅度(可中断)阻塞:能被其他进程的信号或者时钟唤醒;
  ②深度(不可中断)阻塞:不能被其他进程通过信号和时钟唤醒,一般是用来请求文件服务,I/O服务,系统服务。
(3)僵死态
  进程终止运行,释放大部分资源。
(4)挂起态
  进程被挂起,暂停。可用于调试进程。

5.挂起操作和进程状态转换
挂起状态:进程从内存交换到外存(只交换程序和数据,不交换PCB),状态变为挂起
(1) 挂起原因
①进程全部阻塞,处理机处于空闲状态
②系统负荷过重,内存空间紧张
③终端用户发出挂起请求
④父进程的需求
⑤OS的需要(OS可能需要挂起一些服务进程或后台进程,或者某些可能导致故障的进程)

(2) 挂起的特征
①进程不能立即执行
②阻塞与挂起无联系
③可能是等待某事件的发生,若是,则阻塞条件独立于挂起条件,计时阻塞事件发生,该进程也不能执行
④如果A进程现在要求输入数据,此时A进程属于阻塞状态,在选择挂起进程的时候,可能先选择阻塞进程(A进程),此时A进程挂起,正在输入数据,输入到内存缓冲区内。当数据输完了,向处理机发送命令数据已经输入完成,阻塞事件解除,但实际上还是挂起,所以仍是挂起态
⑤使之挂起的进程为:自身、父进程、OS
⑥只有挂起它的进程才能使之由挂起状态转化为其他状态

(3) 阻塞与挂起
①进程是否等待时间:阻塞与否
②进程是否被换出内存至外存:挂起与否

(4) 四种状态组合
就绪:进程在内存准备执行
阻塞:进程在内存,等待事件
就绪/挂起:进程在外存,调入内存即可执行
阻塞/挂起:进程在外存,等待事件

(5) 处理机可调度执行的进程有两种
①创建新进程
②换入一个挂起的进程
**通常情况下,为避免增加系统的负载,系统会还如一个挂起的进程

(6) 具有挂起状态的进程

具有挂起状态的进程状态图

具有创建、终止和挂起状态的进程状态图
①阻塞 → 阻塞/挂起:OS通常将阻塞进程换出,以腾出内存空间
②阻塞/挂起→ 就绪/挂起:当阻塞/挂起进程等待的事件发生时,可以将其转换为就绪/挂起
③就绪/挂起→ 就绪:OS需要调入一个进程执行
④就绪 → 就绪/挂起:一般,OS挂起阻塞进程。但是有时也会挂起就绪进程,释放足够的内存空间
⑤新 → 就绪/挂起(新→ 就绪):新进程创建后,可以插入到就绪队列或就绪,挂起队列,若无足够的内存分配给新进程,则需要新→ 就绪/挂起

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。