进程和程序的区别_Linux操作系统:什么是进程,进程的特性及进程和程序的区别是什么?...

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:32   2543   0

进程的定义

“进程”是操作系统的最基本、最重要的概念之一。进程最根本的属性是动态性和并发性。

进程可以定义为:程序在并发环境中的执行过程。

进程(或任务)是在20世纪60年代中期由美国麻省理工学院(MIT)J. H.Saltzer首先提出的,并在所研制的MULTICS系统上实现;

b575d2167fec5a84afd5f4e80ead2510.png

什么是程序

“程序”是指令的有序集合,是“静态”概念;而“计算”是指令序列在处理机上的执行过程,是“动态”概念。在并发执行过程中,一个共享程序可被多个用户作业调用,从而形成多个“计算”。

0db5b673d258838936da5f4e37802536.png

为什么会引入进程

操作系统的特征有并发、共享和异步性,其中并发是操作系统最重要的特征;

  • 并发程序的执行过程不再像单道程序系统那样总是顺序连贯的,而具有“执行—暂停—执行”的活动规律,各程序活动的工作状态与所处的系统环境密切相关。多个程序并发执行时的相对速度是不确定的,每个程序都会反复经历“启动停止启动停止”的过程。
  • 并发执行的多个程序共享系统中的资源,系统中很多资源具有独占性质,即一次只让一个程序使用,这就使逻辑上彼此独立的程序由于共用这类独占资源而形成相互制约的关系;
  • 在顺序执行时可连续运行的程序,在并发执行时却不得不暂停下来,等待其他程序释放自己所需的资源。

用程序这个静态概念已不能如实反映程序并发执行过程中的这些特征。所以引入“进程(process)”这一概念来描述程序动态执行过程的性质。

347a9e3f95f4c6dee1001c74e657db5c.png

进程有哪些特征

1、动态性

进程是程序的执行过程,有不同的状态,如:存活,消亡,活动,阻塞等;

2、并发性

多个进程的实体能存在于同一内存中,在一段时间内都得到运行。这样就使得一个进程的程序与其它进程的程序并发执行了。

3、调度性

进程是系统中申请资源的单位,也是被调度的单位。操作系统中有很多调度程序,它们根据各自的策略调度合适的进程,为其运行提供条件。

4、异步性

各进程向前推进的速度是不可预知的,即异步方式运行。这造成进程间的相互制约,使程序执行失去再现性。为保证各程序的协调运行,需要采取必要的措施。

5、结构性

进程有一定的结构,它由程序段、数据段和控制结构等组成。程序规定了该进程所要执行的任务,数据是程序操作的对象,而控制结构中含有进程的描述信息和控制信息,是进程组成中最关键的部分。

f85d07d536fec703b4ffce513bf4648b.png

进程和程序的区别是什么

1、动态性

程序是静态、被动的概念,本身可以作为一种软件资源长期保存;而进程是程序的一次执行过程,是动态、主动的概念,有一定的生命期,会动态地产生和消亡。

2、并发性

传统的进程是作为资源申请和调度单位存在的;而通常的程序是不能作为一个独立运行的单位而并发执行的。多道程序设计中程序的并发执行是通过进程实现的。这也是引入进程的一个目的。

程序在CPU上才能得到真正的执行。系统中以进程为单位进行CPU的分配。因为进程不仅包括相应的程序和数据,还有一系列描述其活动情况的数据结构。

系统中的调度程序能够根据各个进程的当时状况,从中选出一个最适合运行的进程,将CPU控制权交给它,令其运行。而程序是静态的,系统无法区分内存中的程序哪一个更适合运行。所以,程序不能作为独立的运行单位。

3、非对应性

程序和进程无一一对应关系。一个程序可被多个进程共用;一个进程在其活动中又可顺序地执行若干程序。

4、异步性

各个进程在并发执行过程中会产生相互制约关系,造成各自前进速度的不可预测性。而程序本身是静态的,不存在这种异步特征。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP