美文网首页
进程管理

进程管理

作者: KillerManA | 来源:发表于2016-07-04 23:07 被阅读40次

    首先我们弄清楚,进程在linux中的含义:
    程序本身并不是进程,进程是处于执行期的程序以及相关资源的总称。注意,有两点:

    • 执行期的程序
    • 相关资源

    补充一点:在Linux中,进程的另一个名字就是叫做task,任务。

    那么进程在如何存放的?

    • Linux将进程放置在任务队列中,并且用进程描述符进行表示,描述符中包含了进程相关的所有信息。

    进程如何区分?

    • 通过PID给每个进程编号,以此来区分进程。

    进程有哪些状态?

    进程描述符中state中存储着进程的状态信息,系统中的进程必然处于下列五种状态中:

    • task_running(运行)
    • task_interruptible(可中断)--睡眠(阻塞)
    • task_uninterruptible(不可中断)--除了收到信号不会被中断或者准备投入运行,其它与上面一样
    • task_traced(被跟踪进程)
    • task_stop(停止)

    有时候我们在执行ps(1)命令时,会有被标记为D状态而又不能被杀死的进程的原因就是这个进程的状态为: 不可中断状态。

    Linux进程家族树?

    • 延续UNIX风格,所有进程都是PID为1的进程的后代。

    进程最终会结束,那么结束之后就要进行一系列的操作,主要操作有以下几步:
    1.设置task_struct为PF_EXITING
    2.释放进程内资源
    3.重新为子进程寻找父类(防止孤儿进程出现)
    4.删除进程描述符

    这一章我们了解到进程的一些基本信息及生存周期里面的一些动作。下一章为进程调度,讲解内核以某种机制来控制进程的运行顺序。

    相关文章

      网友评论

          本文标题:进程管理

          本文链接:https://www.haomeiwen.com/subject/fxpcjttx.html