首先,在谈进程和程序的区别时,我们先来了解一下,何为进程?何为程序?
何为程序?
主要从两方面解释:
1.是完成特定任务的一系列指令的集合;
2.是指编译好的二进制文件,在磁盘上,不占用系统资源(cpu,内存,打开的文件,设备,锁);
何为进程?
1.从用户角度:进程是程序的一次动态执行过程;
2.从内核角度:进程是分配cpu,内存等系统资源的基本单位;
3.每个进程都有自己的状态;
4.每个进程都有自己的虚拟地址空间;
5.进程是程序的一次动态执行过程,需要对进程的现场信息进行维护,就需要相应的数据结构,对应C语言的数据结构,这个结构体叫作pcb;
6.进程是一个抽象的概念,与操作系统原理联系紧密。进程是活跃的程序,占用系统资源,在内存中执行;
进程和程序的区别?
1.从pcb的角度来看程序和进程的区别:
程序:代码+数据;
进程:代码+数据+堆栈+pcb;
2.程序是永存的;进程是暂时的;
3.程序是静态的观念,进程是动态的观念;
4.进程具有并发性,而程序没有;
5.一个程序可对应多个进程;一个进程可以执行一个或几个程序;