Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1362701
  • 博文数量: 277
  • 博客积分: 2551
  • 博客等级: 少校
  • 技术积分: 3918
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 22:46
文章分类

全部博文(277)

文章存档

2017年(3)

2016年(9)

2015年(65)

2014年(27)

2013年(85)

2012年(61)

2011年(27)

分类: 服务器与存储

2011-09-04 12:59:01

      可运行状态(TASK_RUNNING):它是可以调到CPU上执行的。
      可中断的等待状态(TASK_INTERRUPTIBLE):进程被挂起(睡眠),直到某个条件为真,如sleep操作都可以将进程挂起,或是一些阻塞的系统调用都有这个效果。但是可以通过信号将进程唤醒,所谓唤醒的确切含义是:将进程的状态修改为TASK_RUNNING。
      不可中断的等待状态(TASK_UNINTERRUPTIBLE):这个状态意味着把信号传递到睡眠进程不能改变它的状态,它的适用场合可以在这种情况下:当进程打开一个设备文件,其相应的设备驱动开始probe相应的硬件设备,在探测完成之前,设备驱动是不可被中断的。
      暂停状态(TASK_STOPPED):它表示进程的执行被暂停了下来了,那么如何进入这种状态呢,当进程收到SIGSTOP,SIGTSTP,SIGTTIN,SIGTTOU信号后,进入这个状态。
      跟踪状态(TASK_TRACED):这个状态怎么出现的呢?进程的执行已由debugger程序暂停,当一个进程被另一个进程监控时(debugger执行ptrace()系统调用监控一个测试程序),这个时候任何的信号都可以将程序置于TASK_TRACED状态。gdb的实现可能用了ptrace系统调用。
      僵死状态(EXIT_ZOMBIE):这个时候,进程的执行已被终止,发所有的信号都起作用。但是此时父进程还没有执行wait4或waitpid系统调用来返回有关死亡进程的信息。在执行wait系统调用前,内核不能丢弃包含在死亡进程描述符中的数据,因为父进程可能还需要它。
      僵死撤销状态 (EXIT_DEAD):最终状态,由父进程调用wait或waitpid,此时进程由系统删除,为了防止其他执行线程在同一个进程上也执行wait,而把进程的状态由EXIT_ZOMBIE改为EXIT_DEAD
阅读(1358) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~