进程和程序

进程与程序的核心区别

1.静态与动态

程序是存储在磁盘中的静态指令和数据的集合,本质上是无生命的代码文件如.exe文件,例如以恶搞为运行的软件安装包就是一个程序。

进程是程序在内存中的动态执行实例,具有生命周期(创建,运行,终止),是操作系统中资源分配和调度的基本单位,例如,运行某个软件后,系统会给这个软件分配内存并运行,此时形成进程。

2.资源管理

程序不占用系统运行资源(cpu,内存),只需要存储空间。

进程运行时需要独占或者共享资源,包括内存地址空间,文件句柄,cpu时间片等,并通过进程控制块记录资源的是由状态,例如,程序崩溃后,系统会自动回收其占用的内存空间。

3.生命周期

程序是永久存在的,除非被删除。

进程是临时的实体,随着程序的启动而创建,随着任务结束或者程序异常终止而结束,例如关闭某个软件,其进程就会终止。

4.并发和隔离

一个程序可以对于多个进程,一个进程也可以执行多个程序,而进程间资源隔离,可以通过进程间的通信来协作。

总结

总结就是程序是逻辑的载体,​进程是执行的实体。简单说就是程序运行起来就是进程,是一个动态的东西,程序是一样的,但进程每次都不一样,程序是静态代码,进程是动态的执行实例,两种通过资源管理和生命周期进行区分。

你可能感兴趣的:(linux,运维,服务器,c++,学习,开发语言,数据库)