码迷,mamicode.com
首页 > 系统相关 > 详细

linux进程控制

时间:2016-06-30 23:35:06      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:睡眠状态   linux   中文名   程序   用户   

每个进程都有非负的整型表示唯一的进程ID。

进程是一个数据结构变量,有多少个进程,就有多少个PCB。


几个典型进程的ID及其类型和功能:

 ID      进程名         中文名       类型           作用

  0      swapper    交换进程  系统进程     它是内核的一部分,不执行磁盘上的程序,是调度进程。

  1         init            init进程     用户进程     永不停止,启动系统,读取系统初始化的文件。

 

  一些常用的进程标识符:

    pid           当前进程ID

   ppid          当前父进程ID

    uid           实际用户ID

   euid          有效用户ID

    gid           实际组ID

   egid         有效组ID

 

进程状态:

运行状态:注意这并不意味着进程一定正在运行,它表明进程要么在运行中要么在运行队列中。
睡眠状态(可中断睡眠):进程正在等待事件的完成。
磁盘休眠状态(不可中断睡眠):这个状态的进程通常会等待IO的结束。
暂停状态:可以通过SIGSTOP暂停进程,通过SIGCONT使进程继续运行。
僵尸状态:当进程退出并且父进程(使用wait()系统调用)没有读取到子进程退出的返回代码时就会产生僵死进程。僵死进程会以终止状态保持在进程表中,并且会一直等待父进程读取退出状态代码。
死亡状态:是内核中的do_exit()函数返回的状态。
 

进程优先级:

        进程cpu资源分配就是指进程的优先权,优先级高的进程有优先执行权利。

        要了解进程的优先级必须掌握两个重要的标识符:

        PRI:代表进程可被执行的优先级,其值越小越早被执行。

        NI:代表当前进程的nice值。

        这两个标识符之间的关系为:PRI(new)=PRI(old)+ nice,当nice值为负的时候,那么进程的优先级值将会变小,即其优先级会变高,则越快被执行。需注意,进程的nice值不是进程的优先级,但nice值会修改进程的优先级。

 

进程创建:

        fork():父进程在调用fork创建子进程时会把自己的环境变量表也复制给子进程,环境变量定义了进程的运行环境。
在终端创建的进程的父进程都是bash,fork函数创建的是当前进程的子进程,有两个返回值,分别返回0和子进程的pid。
子进程和父进程不可以共享数据(存储位置),可以共享代码。
        execve():使用execve()创建一个新进程,系统调用会销毁所有的内存段去重建一个新的内存段,还需要一个可执行文件或脚本作为参数。
fork(),execve()创建的进程都是运行进程的子进程。
        孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么这些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。

 

本文出自 “hah-yn” 博客,请务必保留此出处http://hah11yn.blog.51cto.com/10879860/1794703

linux进程控制

标签:睡眠状态   linux   中文名   程序   用户   

原文地址:http://hah11yn.blog.51cto.com/10879860/1794703

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!