linux进程简介
一.什么是进程?
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
1. 已分配内存的地址空间
2. 安全属性,包括所有权凭据和特权
3. 程序代码的一个或多个执行线程
4. 进程状态
程序:二进制文件,静态/bin/date,/usr/sbin/httpd ,/usr/sbin/sshd,/usr/local/nginx/sbin/ngix
进程:是程序运行的过程,动态,有生命周期及运行状态
二.进程的生命周期
父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。每个新进程分配一个唯一的进程ID(PID),满足跟踪安全性之需。PID和父进程ID(PPID)是子进程环境的元素,任何进程都可以创建子进程,所有进程都是第一个系统进程的后代:
centos5/6:init
centos7:systemd
子进程继承父进程的安全性身份、过去和当前的文件描述符、端口和资源特权、环境变量、以及程序代码。随后,子进程可能exec自己的程序代码。通常,父进程在子进程运行期间处于睡眠(sleeping)状态。当子进程完成时发出(exit)信号请求,在退出时,子进程已经关闭或丢弃了其资源环境,剩余的部分称之为僵停(僵尺zombie)。父进程在子进程退出时收到信号而被唤醒,清理剩余的结构,然后继续执行其自己的程序代码。
三.进程状态:
在多任务处理操作系统中,每个CPU(或核心)在一个时间点上只能处理一个进程,在进程运行时,它对CPU时间和资源分配的要求会不断变化,从而为进程分配一个状态,它随着环境要求而改变。