首页 > 代码库 > 进程、程序和线程的差别

进程、程序和线程的差别

??
1、差别
①程序是指令和数据的有序集合,其本身没有不论什么执行的含义。是一个静态的概念。

而进程是程序在处理机上的一次执行过程,它是一个动态的概念。

②程序能够作为一种软件资料长期存在。而进程是有一定生命期的。程序是永久的。进程是临时的。
③进程更能真实地描写叙述并发。而程序不能;
④进程是由进程控制块、程序段、数据段三部分组成;
⑤进程具有创建其它进程的功能,而程序没有。

⑥同一程序同一时候执行于若干个数据集合上,它将属于若干个不同的进程,也就是说同一程序能够相应多个进程。
⑦在传统的操作系统中,程序并不能独立执行,作为资源分配和独立执行的基本单元都是进程。

⑧通常在一个进程中能够包括若干个线程,它们能够利用进程所拥有的资源,在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位。而把线程作为独立执行和独立调度的基本单位,因为线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。


2、进程是一个具有独立功能的程序关于数据集合的一次能够并发执行的执行活动,其基本特征:动态特征、并发特征、独立性、相互制约性。

3、进程有三种主要的调度状态
①就绪状态
进程已获得除处理器外的所需资源,等待分配处理器资源。仅仅要分配了处理器进程就可运行。

就绪进程能够按多个优先级来划分队列。

比如。当一个进程因为时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完毕而进入就绪状态时,排入高优先级队列。

②运行状态
进程占用处理器资源。处于此状态的进程的数目小于等于处理器的数目。

在没有其它进程能够运行时(如全部进程都在堵塞状态),一般会自己主动运行系统的空暇进程。

③等待状态
因为进程等待某种条件(如I/O操作或进程同步)。在条件满足之前无法继续执行。

该事件发生前即使把处理机分配给该进程,也无法执行。


4、进程的引入大大地提高了资源的利用率和系统的吞吐量,而引入线程的目的是为了降低程序并发所付出的系统开销。进程是资源分配的单位,而线程是系统调度的单位。

进程、程序和线程的差别