linux学习中
分类: LINUX
2014-10-17 14:40:39
本节目标:
进程的三种基本状态
就绪(Ready)状态
当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。
执行(Running)状态
当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。
阻塞(Blocked)状态
正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件可有多种,例如,等待I/O完成、申请缓冲区不能满足、等待信件(信号)等。
状态转换图:
一个进程在运行期间,不断地从一种状态转换到另一种状态,它可以多次处于就绪状态和执行状态,也可以多次处于阻塞状态。
(1) 就绪→执行
处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。
(2) 执行→就绪
处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完或更高优先级的进程抢占而不得不让出处理机,于是进程从执行状态转变成就绪状态。
(3) 执行→阻塞
正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。
(4) 阻塞→就绪
处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。
(5) 运行→终止
程序执行完毕,撤销而终止
以上是最经典也是最基本的三种进程状态,但现在的操作系统都根据需要重新设计了一些新的状态。
如linux:
其和浅度睡眠基本类似,但有一点就是不可被其他进程信号或时钟中断唤醒。Linux 使用TASK_UNINTERRUPTIBLE 宏表示此状态。
状态转换图如下:
就绪态在支持虚拟内存的操作系统中可能分为:在内存中就绪和在交换空间就绪,因为支持虚拟内存的操作系统会将当前不太活跃的一些进程交换到交换空间,交换空间就绪进程要运行要先换人内存出入内存就绪态,在由cpu调度执行。
进程描述信息:
进程控制信息:
资源信息:
现场保护信息(cpu进行进程切换时):
可以通过:cat /proc/sys/kernel/pid_max 查看系统支持多少进程
init进程实际上是用户进程,它是一个程序,在/sbin/init,linux启动的第一个进程
实际上linux中还存在0号进程(内核进程),它是一个空闲进程,它进行空闲资源的统计及交换空间的换入换出,1(init)进程是由0号进程创建的。
进程终止时操作系统做以下工作: