概念
什么是进程?以及进程和程序的一个区别:
(1)程序是静态的,进程是动态的。程序是有序代码的集合;进程是程序的一次执行。
(2)进程是暂时的,程序是永久的。进程是一个变化的过程,具有独立性和异步性,有生命周期,暂时存在,程序没有生命周期,可长久保存。
(3)进程是操作系统资源分配和保护的基本单位,程序没有此功能。
(4)进程与程序的对应关系。通过多次执行,一个程序可以对应多个进程;通过调用关系,一个进程可以包括多个程序。
(5)进程与程序的结构不同。
程序: 把一个源代码文件经过编译器编译之后,生成一个文件,是可以执行的,这个可执行文件就是程序
text | data bss
代码段 数据段(data:全局或者静态(static)已经初始化的变量。bss: 全局或者静态未始化的变量 )
程序不执行,一直存放在磁盘或者硬盘,静态
进程: 是描述程序的一次执行过程。
程序跟进程不是一一对应,如何区分这些程序,通过pid(进程标识符),唯一的表示一个进程。
操作系统会为每一进程分配资源task_struct(PCB) 和程序运行起来之后所需要的地址空间
pid、state状态、nice优先级
r0-r13、cpsr
进程也是系统资源分配的最小单位,
线程是操作执行的最小单位,并不会为你的线程分配地址空间,线程在进程中创建运行