进程和程序是两个截然不同的概念,除了进程具有程序所没有的PCB结构外,还具有下面一些特征:
- 动态性:进程的实质是进程实体的执行过程,因此,动态性就是进程的最基本的特征。动态性还表现在:“它由创建而产生,由调度而执行,由撤销而消亡。”可见,进程实体有一定的生命期,而程序则只是一组有序指令的集合,并存放于某种介质上,其本身并不具有活动的含义,因而是静态的。
- 并发性:是指多个进程实体同存于内存中。且能在一段时间内同时运行。引入进程的目的也正是为了使其进程实体能和其他进程实体并发执行。因此,并发性是进程的另一重要特征,同时也成为OS的重要特征。而程序(没有建立PCB)是不能参与并发执行的。
- 独立性:在传统的OS中,独立性是指进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位。凡未建立PCB的程序都不能作为一个独立的单元参与运行。
- 异步性:是指进程是按异步方式运行的,即按各自独立的、不可预知的速度向前推进。正是源于此因,才导致了传统意义上的程序若参与并发执行,会产生其结果的不可再现性。为使进程在并发运行时虽具有异步性,但仍能保证进程并发执行的结果是可再现的,在OS中引入了进程的概念,并且配置相应的进程同步机制。