操作系统-进程状态
2018-03-18 15:19
218 查看
进程的生命周期划分
进程创建进程执行
进程等待
进程抢占
进程唤醒
进程结束
进程创建:
系统初始化
用户请求创建一个新的进程
正在运行的进程执行了创建进程的系统调用
进程执行
选择一个就绪的进程,让他占用处理机并开始执行
进程等待
请求并等待系统服务,无法马上完成。
启动某种操作,无法马上完成。
需要的数据还没有到达。
进程抢占
高优先级进程以及就绪
当前执行的时间片用完
进程唤醒
需要的资源被满足时
等待的时间以及发生
唤醒只能被别的进程或操作系统唤醒
进程结束
正常结束,结果正确
正常结束,结果不正确
异常终止
操作系统的基本职责是控制进程的执行,包括确定交替执行的方式和给进程分配资源。在设计控制进程的程序时,第一步就是描述进程所表现处的行为。
在《操作系统精髓与设计原理》中,大致将进程分为两种状态:运行态与非运行态。
操作系统创建一个进程时,它将该进程以未运行态加入系统,操作系统知道这个进程的存在,并正在等待执行机会,不时地,当前正在运行的进程会被中断,此时操作系统中的分派器部分会将选择一个新的进程投入运行,前一个进程从运行态转换为非运行态,后一个进程从非运行态转换为运行态。
由此可以得出操作系统在设计时的一些设计元素。必须用某种方法来追踪进程,也就是说必须要保存某些与进程相关的信息,即就是进程控制块。
那些处于非运行态的进程就需要处于某种数据结构中,等待执行时机。这种数据结构就是队列,队列中的每项都指向某个特定进程的指针,或队列可以由数据块构成的链表组成,每个数据块表示一个进程。
五状态模型
必要性:队列时“先进先出”表,对于可运行的进程,操作系统采用一种轮转的方式操作。如果存在一些处于非运行态但已就绪等待执行的进程,同时还存在一些另外处于阻塞态等待i/o操作结束的进程。因此,若使用单个队列,分派器不能只考虑选择队列中最老的进程,而应扫描这个列表,查找那些未被阻塞且在队列中时间最长的进程。解决该问题的一种较好方法是将非运行态分成两个状态:就绪态和阻塞态。五状态如下:
运行态:进程正在执行。
就绪态:进程做好了准备,只要有机会就执行。
阻塞态:进程在某些事件发生前不能执行,如i/o操作完成。
新建态:刚刚创建的进程。操作系统还未把它加入可执行进程组,它通常是进程控制块已被创建但还未被加载到内存中的新进程。
退出态:操作系统从可执行进程组释放的进程,要么是自身停止,要么是因为某种原因被取消。
进程之间状态转换如下:
挂起状态模型
必要性:我们都知道每个要被执行的进程都要被加载至内存,因此阻塞队列的所有进程必须驻留在内存中。但是,处理机远快于i/o,当一个进程阻塞时,处理机可以移向另一个进程,但是处理机处理的速度远快于i/o,会出现内存中的进程都在等待i/o的现象。因此,处理机可能在大多数时间内都处于空闲状态。解决方法之一是扩充内存来容纳更多的进程。显然不实际,就内存的价格来说就不是我们首先考虑的办法。
解决方法之二是交换。即把内存中某个进程的一部分或全部移到磁盘中。当内存中不存在就绪态的进程时,操作系统就把阻塞的进程换出到磁盘中的挂起队列。操作系统之后要么从挂起队列中取出另一个进程,要么接受一个新进程的请求,将他放入内存运行。
要使用这种交换模型,就要增加一个新的状态:挂起态。
但是所有已被挂起的进程都处于阻塞态,显然这时把阻塞的进程取回内存没有任何意义,因为它仍然为做好执行的准备。但是由于每个挂起的进程最初都阻塞于某个特定的事件上,因此发生该事件时,进程将不再阻塞而可以继续执行。
所以重新考虑设计方式,引入两个新挂起状态:
阻塞/挂起态
就绪/挂起态
挂起进程具有如下特点:
该进程不能立即执行。
该进程可能在也可能不在等待一个事件。若在等待一个事件,那么阻塞条件不依赖于挂起条件,阻塞事件的发生不会使进程立即执行。
为阻止该进程执行,可通过代理使其置于挂起态,代理可以是进程本身,也可以是父进程或操作系统。
除非代理显式的命令系统进行状态切换,否则该进程无法从这一状态转移。
相关文章推荐
- 操作系统进程的概念,进程的状态及状态转换,进程控制
- 操作系统--进程状态切换以及cpu调度(转)
- 操作系统--进程状态!!
- 操作系统(五)-----进程的状态以及状态之间的转换
- 操作系统学习笔记——进程的状态
- 操作系统进程的概念,进程的状态及状态转换,进程控制
- 操作系统的进程状态及linux实例
- Linux进程状态与实时操作系统进程状态区别
- 操作系统学习笔记(3)——进程描述与进程状态变化
- Linux进程状态与实时操作系统进程状态区别
- Linux操作系统的进程状态介绍
- 操作系统之进程的状态和转换详解
- 操作系统进程的概念,进程的状态及状态转换,进程控制
- 操作系统之进程的状态
- 操作系统学习笔记------进程描述与进程状态变化
- 操作系统进程的概念,进程的状态及状态转换,进程控制
- 操作系统之进程的状态
- 进程状态之间的转换*小记【操作系统】
- 操作系统 - 进程 (中)- 三状态进程模型
- 操作系统进程的概念,进程的状态及状态转换,进程控制