1、Why进程?(为什么要有进程)
假设你有很多奇思妙想,然后写程序去实现这些想法。ok,努力鏖战后,终于把程序写完了,是不是就ok啦?
NO!那只是程序,一堆供人阅读的代码,只有将它运行起来,你的想法才会变成现实!所以运行起来的代码才叫进程。
2、What 进程?
进程是将程序及其数据在计算机内运行一次的活动,进程是一个动态过程。
3、进程与程序的区别
- 进程是一个运行过程,是一个动态的概念。程序才是进行运行的原料(即实体),离开程序进程无从谈起。程序是一组指令集合,是一种静态概念。
- 进程是程序的一次执行过程,他是动态的创建和消亡,具有一定的生命周期,短暂的存在;程序是一组代码集合,静态永久存在,可长期保留。
- 一个进程可以执行多个程序,一个程序可构成多个进程。进程创建进程,而程序不能形成新程序。
- 进程与程序组成不同。进程由程序、数据、进程控制块(PCB)组成,程序由一组有序的指令集合组成。
- 进程具有并发性,程序没有。
4、进程组成及作用
- 程序:描述进程完成的功能。
- 数据集合:程序执行所需的数据和工作区。
- 程序控制块:包含进程描述信息、控制信息、他是进程存在的唯一标志。
5、进程与线程的关系
图1 进程构造简图
进程是系统资源分配的最小单位,线程是系统独立调度的最小单位。线程是比进程更小的可独立运行的基本单位,可以看作轻量级的进程。
线程如图1所示,一个线程内可以有多个进程,并且进程内的多个线程可并发执行。多个线程共享一个进程空间和其他资源。因此,线程可以通过读写进程空间(如数据段全局变量)实现线程间通信。
注意:
不同进程间线程通信本质还是进程间通信,因为不同进程间无法直接访问进程空间实现通信,只能通过进程间通信。
图2 进程切换
关于操作系统的详细内容请查阅参考内容。