UNIX标准把进程定义为
一个其中运行着一个或者多个线程的地址空间和这些线程所需要的系统资源,我们可以将进程看作是正在运行的程序。
进程与程序的区别
- 程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念。(如图中查看执行文件的内部段就是程序,好比菜谱)
- 进程是一个动态概念,它是程序执行的过程,包括创建、调度和消亡。(就是程序当下的一种状态,好比按照菜谱做菜,)
- 下面更加具体地介绍程序与进程:
进程与线程
- 进程是资源管理的最小单位
(如上图)一旦启动进程,系统就会为其分配一整套资源(信号处理,内容,文件等)因此,系统是以进程来管理的。 - 线程是系统调度的最小单位
- 一个进程中能够拥有多个线程,线程之间可以共享资源。
- 但是内核在调度进程给CPU运行时,调度的对象是线程。
查看进程的属性与状态
进程的“身份证”
- 每一个进程都拥有唯一的”身份证号码“,称之为PID
- 每一个进程都拥有其双亲进程,称之为父进程
使用ps -ef
来查看:每一行代表一个进程
pstree更加直观地查看进程之间的”父辈关系“