系统进程管理
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
进程是已启动的可执行程序的运行实例,进程有以下组成部分。
(1)已分配内存的地址空间。
(2)安全属性,包括所有权凭据和特权。
(3)程序代码的一个或多个执行线程。
(4)进程状态。
程序是二进制文件,在没启动时为静态,存储在磁盘空间中,如/bin/date、/usr/sbin/sshd。进程则是二进制文件或程序运行的过程,展示为动态,有生命周期及运行状态。进程的生命周期如图所示。
进程状态描述如下。
Stopped:停止状态,不会再被调度到CPU上运行。
Ready:就绪状态,在队列中等待运行,只要轮到其运行,就马上可以在CPU上运行。
Executing:正在运行中,说明已获得CPU,并在CPU上运行。在运行当中,可能会因为需要获得其他资源而转入睡眠状态。
Uninterruptible Sleep:睡眠状态(不可中断的睡眠),当进程在运行中需要加载额外的IO资源时,由于IO速度比CPU慢,进程会进入睡眠状态,交出CPU,运行其他进程。之所以睡眠,是因为进程运行时所需要的资源没有正常获取到,或是进程没有更多的事务需要执行。睡眠状态的进程也是可以被内核再次调度到CPU上运行的,但对于这种需要加载额外资源才能运行的进程,在额外资源没有加载完成时,再次调度运行(中断睡眠)没有任何意义,因此说“不可中断”。
Interruptible Sleep:睡眠状态(可中断的睡眠),进程在运行中并不是因为某个额外资源的问题进入睡眠状态,而可能是因为需要执行的事务已经执行完成。例如,某个服务,有用户进行请求时,那么该进程则运行,执行完成用户的请求时,并不能退出运行,所以需要转入睡眠状态。当有用户再次请求时,系统内核则将其再次调度到CPU上运行,是有需要时可以随时调度的睡眠状态,因此说“可中断的睡眠”。
Zombie:僵尸进程,在一个进程运行结束时,如果资源能够被回收,那么该进程正常结束。如果进程运行结束时,资源不能被回收,占用的内存不释放,在内核的数据结构也没法删除,甚至连进程占用了哪些内存都无法得知,导致该进程无法释放内存空间,一直存在内存中不能自动退出。因此,该进程也不会再次被内核调度到CPU上运行了,这类进程称为“僵尸进程”。
进程有如下属性:
ps命令:用于查看进程的相关信息,默认只显示前台进程。
命令使用格式:ps [选项]
1.使用PS命令查看进程,用BSD的格式显示进程常用的选项如下。
常用的选项组合是ps-aux
5种基本状态后还可以加一些字母,如Ss、R+,如图: