进程概念与属性
什么是进程?
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
(1) 已分配内存的地址空间。
(2) 安全属性,包括所有权凭据和特权。
(3) 程序代码的一个或多个执行线程。
(4) 进程状态。
程序: 二进制文件,在没启动时为静态,存储在磁盘空间上,如: /bin/date,/usr/sbin/sshd
进程: 则是二进制文件或程序运行的过程,展示为动态,有生命周期及运行状态。
进程的生命周期,如图 10-1 所示。
图 10-1 进程生命周期
描述如下:
(1) 父进程复制自己的地址空间创建一个新的(新的进行也称为“子进程”)进程结构。每个新进程分配一个唯一的进程 ID (该 ID 称为 PID),满足跟踪安全性之需。PID和父进程 ID(PPID)是子进程环境的元素,任何进程都可以创建子进程,所有进程都是第一个系统进程的后代。
CentOS5 或 6,PID 为 1 的进程是:init。
CentOS7 或 8,PID 为 1 的进程是:systemd。
(2) 僵尸进程:一个进程使用 fork 创建子进程,如果子进程退出,而父进程并没有调用 wait 或
waitpid 获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵尸进程。
简单描述:就是父进程退出了,子进程没有退出,那么这些子进程就没有父进程来管理了,就
变成僵尸进程。
进程的属性:
(1) 进程 ID(PID):是唯一的数值,用来区分进程。
(2) 父进程的 ID(PPID)。
(3) 启动进程的用户 ID(UID)和所归属的组(GID)。
(4) 进程状态:状态分为运行 R、休眠 S、僵尸 Z。
(5) 进程执行的优先级。
(6) 进程所连接的终端名。
(7) 进程资源占用:比如占用资源大小(内存、CPU 占用量)。