程序、可执行文件和进程之间有什么区别?
10 回答
简单来说——
程序:程序是一组人类可读格式的指令。(HelloWorld.c)
Executable: Executable 是程序的编译形式(HelloWorld.exe 文件)
进程:进程是操作系统正在运行的可执行文件。您在任务管理器或任务列表中看到的那个(双击它时的HelloWord.exe进程。)
程序或计算机程序本质上为操作系统或计算机提供序列指令(或算法,如果您愿意的话)。这些计算机程序以操作系统识别并可用于直接执行指令的可执行形式出现。
本质上,可执行文件是计算机可以直接执行的格式的文件,而不是无法直接执行且必须首先编译的源文件。可执行文件是编译的结果。我提到操作系统可以识别可执行文件,它是通过扩展来识别的。用于 Windows 可执行文件的常见扩展名是 .exe。
一旦一个可执行文件被执行,一个进程就开始了。进程只是计算机程序的一个实例。您可以将进程视为计算机程序中包含的指令的执行。当您在 Windows 计算机上查看任务管理器时,您可以看到所有当前进程。进程拥有资源,例如虚拟内存、操作系统描述(句柄、数据源、接收器等)、安全属性和有效处理所需的各种其他元素。
进程基本上是正在执行的程序。与每个进程相关的是它的地址空间,一个从 0 到某个最大值的内存位置列表,进程可以读取和写入。地址空间包含可执行程序、程序的数据及其堆栈。与每个进程相关联的还有一组资源,通常包括寄存器(包括程序计数器和堆栈指针)、打开文件列表、未完成警报、相关进程列表以及运行程序所需的所有其他信息. 进程基本上是一个容器,它包含运行程序所需的所有信息,这是一组由用户/开发人员定义的指令。
程序是一组指令和一个被动实体。程序是进程的一部分,而进程处于程序的运行状态,它是系统中的一个工作单元。
程序:它是一个被动实体,就像存储在硬盘上的文件的内容一样。换句话说,它就像您磁盘上的另一个文本文件。大多数情况下,它将采用人类可读的格式(例如:.java 文件)。
可执行文件:它又是一个被动实体。它只是磁盘上的另一个文件,它是通过编译程序导出的。因此,它是程序文件的机器可读版本(例如:.class 文件。)。请注意,它仍然在磁盘上,当前没有执行。
进程:它是程序/可执行文件的活动部分。加载到内存(RAM)并执行的程序/可执行文件称为进程。一个进程由一组指令组成。CPU 会一一执行这些指令。(例如:JVM 加载您的 .class 文件并向 CPU 发出指令)。
您也可以让两个进程执行相同的程序/可执行文件。
程序是您编写的用于执行某些功能的某些高级语言的源文件的集合,例如,实现排序列表的 C++ 文件。可执行文件是编译器从这些源文件创建的文件,其中包含可以在 CPU 上执行的机器指令。进程是可执行文件在 CPU 和内存中的主动执行。包括内存管理信息、当前PC、SP、HP、寄存器等。
进程是程序的一部分。进程是该特定程序的逻辑存在的部分。程序作为一组过程给出。在某些情况下,我们可能会将问题分成若干部分。在这些时候,我们为每个称为流程的部分编写单独的逻辑。
像这样考虑它。
程序是蓝图。就像建筑的蓝图。没有建筑物,而是建筑物外观的抽象。
过程是根据蓝图建造的建筑物的实际建造。
在建造建筑物时,会同时发生许多事情。您正在准备混凝土,同时建造多个房间,铺设电缆等。这些将是线程。
没有不同。记住,没有勺子。
程序是静态实体,而进程是动态实体。
程序只不过是包含在文件中。其中进程是正在执行的程序。
3.程序不使用CPU寄存器组,而进程使用CPU寄存器组来存储中间结果和最终结果。