linux内核学习笔记----进程状态
2013-06-06 14:24
288 查看
进程描述符中的state字段描述了进程当前所处的状态,它有一组标志组成,每个标志描述一种可能的进程状态,这些状态是互斥的,也就是说在同一时刻,只能设置一个状态
![](https://img-blog.csdn.net/20130606142355250)
一、运行状态:TASK_RUNNING,进程要么在CPU上运行,要么准备执行
二、可中断的等待状态:TASK_INTERRUPTIBLE,进程被挂起,直到收到某个消息,唤醒该进程
三、不可中断的等待状态:TASK_UNINTERRUPTIBLE ,当等待的条件为真时,并不能改变当前进程的状态
四、暂停状态:TASK_STOPPED,当执行的进程收到暂停的信号时,进入暂停状态
五、跟踪状态:TASK_TRACED,进程的执行由debugger程序暂停,当一个进程被另一个进程监控时,任何信号都可以把这个进程设置为跟踪状态
还有两个状态既可以存放在进程描述符的state字段中,也可以放在exit_state字段中,从这两个进程的名字可以看出,只有进程终止时,才有可能进入这两种状态
六、僵死状态:EXIT_ZOMBIE,进程的执行被终止,但是,父进程还没有发布wait4()和waitpid()系统调用来返回有关死亡进程的信息。之前,内核不能丢弃包含在死进程描述符中的数据,父进程还有可能需要它
七、僵死撤销状态:EXIT_DEAD,最终状态,父进程已经发布了wait4()和waitpid()系统调用,因而系统由系统删除,为了防止其他执行线程也在同一进程上执行wait()系统调用,所以把进程的状态由僵死状态改完僵死撤销状态
State字段的值通常用一个简单的赋值语句设置:
p->state=TASK_RUNNING;
内核也使用set_task_state和set_current_state()宏,他们分别设置指定进程的状态和当前进程的状态。o宏宏
一、运行状态:TASK_RUNNING,进程要么在CPU上运行,要么准备执行
二、可中断的等待状态:TASK_INTERRUPTIBLE,进程被挂起,直到收到某个消息,唤醒该进程
三、不可中断的等待状态:TASK_UNINTERRUPTIBLE ,当等待的条件为真时,并不能改变当前进程的状态
四、暂停状态:TASK_STOPPED,当执行的进程收到暂停的信号时,进入暂停状态
五、跟踪状态:TASK_TRACED,进程的执行由debugger程序暂停,当一个进程被另一个进程监控时,任何信号都可以把这个进程设置为跟踪状态
还有两个状态既可以存放在进程描述符的state字段中,也可以放在exit_state字段中,从这两个进程的名字可以看出,只有进程终止时,才有可能进入这两种状态
六、僵死状态:EXIT_ZOMBIE,进程的执行被终止,但是,父进程还没有发布wait4()和waitpid()系统调用来返回有关死亡进程的信息。之前,内核不能丢弃包含在死进程描述符中的数据,父进程还有可能需要它
七、僵死撤销状态:EXIT_DEAD,最终状态,父进程已经发布了wait4()和waitpid()系统调用,因而系统由系统删除,为了防止其他执行线程也在同一进程上执行wait()系统调用,所以把进程的状态由僵死状态改完僵死撤销状态
State字段的值通常用一个简单的赋值语句设置:
p->state=TASK_RUNNING;
内核也使用set_task_state和set_current_state()宏,他们分别设置指定进程的状态和当前进程的状态。o宏宏
相关文章推荐
- Linux内核之进程管理(学习笔记)
- 【Linux内核学习笔记】进程的创建过程
- JAVA学习笔记50——线程状态+停止进程+阻塞进程
- Linux内核设计与实现 学习笔记(二)进程管理
- Linux内核学习笔记之进程创建(十)
- 操作系统学习笔记------进程描述与进程状态变化
- linux内核学习笔记:进程
- 进程的状态和切换(学习笔记)
- UNIX环境编程学习笔记(21)——进程管理之获取进程终止状态的 wait 和 waitpid 函数
- 操作系统学习笔记--进程的三种基本状态
- Linux内核分析第六周学习笔记——分析Linux内核创建一个新进程的过程
- 操作系统学习笔记——进程的状态
- 操作系统学习笔记(3)——进程描述与进程状态变化
- Linux内核学习笔记三——进程调度
- Linux进程(Linux内核设计与实现学习笔记)
- 学习笔记--进程的三种基本状态及其转换
- (笔记)Linux内核学习(二)之进程
- UNIX环境编程学习笔记(21)——进程管理之获取进程终止状态的 wait 和 waitpid 函数
- Linux内核学习笔记之进程切换(八)
- (笔记)Linux内核学习(三)之进程调度