一.进程简介
1.什么是进程
进程就是处于执行期的程序(目标代码存放在某种存储介质上)。但进程并不仅仅局限于一段可执行程序代码(Unix 称为代码段,text section)。通常进程还要包含其他资源,像打开的文件,挂起的信号,内核内部数据,处理器状态,一个或多个具有内存映射的内存地址空间及一个或多个执行线程(thread of execution),当然还包括用来存放全局变量的数据段等。实际上,进程就是正在执行的程序代码的实时结果。内核需要有效而又透明地管理所有细节。
简单来说
进程就是已启动的可执行程序的运行实例,进程有以下组成部分:
• 已分配内存的地址空间;
• 安全属性,包括所有权凭据和特权;
• 程序代码的一个或多个执行线程;
• 进程状态。
程序: 二进制文件,静态 /usr/bin/passwd ,/usr/sbin/useradd
进程: 是程序运行的过程, 动态,有生命周期及运行状态。
2.进程的状态
进程状态包括以下五种:
(1)task_running(运行态):进程是可执行的;或者正在执行,或者在运行队列中等待执行。
(2)task_interruptible(可中断睡眠态):进程被阻塞,等待某些条件的完成。一旦完成这些条件,内核就会将该进程的状态设置为运行态。
(3)task_uninterruptible(不可中断睡眠态):进程被阻塞,等待某些条件的完成。与可中断睡眠态不同的是,该状态进程不可被信号唤醒。
(4)task_zombie(僵死态):该进程已经结束,但是其父进程还没有将其回收。
(5)task_stop(终止态):进程停止执行。通常进程在收到sigstop、sigttin、sigttou等信号的时候会进入该状态。
3.Linux中进程的生命周期和它们涉及的调用:
(1)父进程调用fork() 产生一个新的自进程;
(2)子进程调用exec() 指定自己要执行的代码;
(3)子进程调用exit() 退出,进入zombie状态;
(4)父进程调用wait(),等待子进程的返回,回收其所有资源
二.进程管理process
1.静态查看进程 ps
ps指令的意思
precess status的缩写
中文释义为过程状态
我们以一个进程为例
如·下图·