Chinaunix首页 | 论坛 | 博客
  • 博客访问: 657991
  • 博文数量: 185
  • 博客积分: 1875
  • 博客等级: 上尉
  • 技术积分: 2107
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-23 23:21
个人简介

有时候,就是想窥视一下不知道的东东,因为好奇!

文章分类

全部博文(185)

文章存档

2024年(1)

2023年(3)

2020年(1)

2019年(1)

2018年(1)

2017年(2)

2016年(69)

2015年(53)

2014年(14)

2013年(1)

2012年(5)

2011年(25)

2010年(9)

分类: LINUX

2016-08-31 22:16:47

linux内核相关资料收集
    
    进程描述符包含了一个进程的所有信息。下图示意性描述了linux的进程描述符task_struct。
    其中的state字段描述了进程当前所处的状态。


2.1 进程状态
        进程描述符中的state字段描述了进程当前的状态。linux2.6版本中,进程的这些状态是互斥的。下面是进程可能的状态:

    可运行状态(TASK_RUNNING)
            或者在CPU上执行,或者准备执行
    可中断等待状态(TASK_INTERRUPTIBLE)
            进程被挂起,直到某个条件变为真。产生一个硬件中断,释放进程正等待的系统资源,或传递一个信号都可以唤醒进程,
        把进程状态放回到TASK_RUNNING
    不可中断等待状态(TASK_UNINTERRUPTIBLE)
            
与TASK_INTERRUPTIBLE状态类似,进程处于睡眠状态,但是把信号传递到睡眠进程不能改变它的状态。如打开设备文件探测相应的硬
        件设备时,设备驱动不能被中断,使用TASK_UNINTERRUPTIBLE状态对进程进行保护,以避免进程与设备交互的过程被打断,造成设备
        陷入不预知的状态。

    暂停状态(TASK_STOPPED)
            进程执行被暂停。进程收到SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU信号后,进入暂停状态。
    跟踪状态( TASK_TRACED)
            进程执行已经由debugger程序暂停。当一个进程被另一个进程监控时(如debugger执行pstrace系统调用监控一个测试程序),
        任何信号都可以把这个进程置于TASK_TRACED       
    僵死状态(EXIT_ZOMBIE)
        进程执行被终止,但是父进程还没有调用wait4()或waitpid(),返回有关死亡进程的信息。
    僵死撤消状态(EXIT_DEAD)
        最终状态:父进程已调用wait4()或waitpid(),因而进程由系统删除。
2.2 相关接口
    set_task_state和set_current_state宏,分别指定进程的状态和当前进程的状态。


阅读(998) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~