进程、程序和线程的区别

来源:互联网 发布:淘宝美工工作总结 编辑:程序博客网 时间:2024/05/19 14:01

1、区别
①程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。
②程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的。
③进程更能真实地描述并发,而程序不能;
④进程是由进程控制块、程序段、数据段三部分组成;
⑤进程具有创建其他进程的功能,而程序没有。
⑥同一程序同时运行于若干个数据集合上,它将属于若干个不同的进程,也就是说同一程序可以对应多个进程。
⑦在传统的操作系统中,程序并不能独立运行,作为资源分配和独立运行的基本单元都是进程。
⑧通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源,在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位,由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。

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

3、进程有三种基本的调度状态
①就绪状态
进程已获得除处理器外的所需资源,等待分配处理器资源;只要分配了处理器进程就可执行。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。
②执行状态
进程占用处理器资源;处于此状态的进程的数目小于等于处理器的数目。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。
③等待状态
由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理机分配给该进程,也无法运行。

4、进程的引入大大地提高了资源的利用率和系统的吞吐量,而引入线程的目的是为了减少程序并发所付出的系统开销。进程是资源分配的单位,而线程是系统调度的单位。
1 0
原创粉丝点击