Memory 什么';进程和进程映像之间的区别是什么?

Memory 什么';进程和进程映像之间的区别是什么?,memory,process,operating-system,virtual-memory,Memory,Process,Operating System,Virtual Memory,进程和进程映像之间有什么区别 其中一个包含哪些内容而另一个不包含?有什么区别的成分 这都是在进程控制结构和进程在内存中的位置的上下文中进行的。据我所知,进程映像是在执行前为其分配内存时拍摄的进程映像。这是因为,当进行多任务处理时,内核需要重新进入它停止的进程。如果在执行过程中更改流程,则可能会发生不好的情况,因此操作系统会生成流程的只读版本,并在执行过程中使用该版本 当一个程序作为一个进程加载时,它会被分配一段虚拟内存,形成它的可用地址空间。在此过程映像中,通常至少有四个元素: 程序代码(或文本

进程和进程映像之间有什么区别

其中一个包含哪些内容而另一个不包含?有什么区别的成分


这都是在进程控制结构和进程在内存中的位置的上下文中进行的。

据我所知,进程映像是在执行前为其分配内存时拍摄的进程映像。这是因为,当进行多任务处理时,内核需要重新进入它停止的进程。如果在执行过程中更改流程,则可能会发生不好的情况,因此操作系统会生成流程的只读版本,并在执行过程中使用该版本


当一个程序作为一个进程加载时,它会被分配一段虚拟内存,形成它的可用地址空间。在此过程映像中,通常至少有四个元素:

程序代码(或文本)

要执行的程序指令。请注意,这不是必需的 处理器将一个进程的整体读入物理内存 程序运行时的内存,而不是通过称为“动态”的过程 寻呼?根据需要加载下一个指令块,并且可能 可以在进程之间共享

程序数据

可区分为初始变量,包括外部变量 全局变量和静态变量、未初始化变量(称为bss Unix衍生系统上的区域)。数据块不在数据块之间共享 默认情况下处理

堆叠

一个流程通常至少有两个后进先出(LIFO) 堆栈,包括用于用户模式的用户堆栈和用于 内核模式

过程控制块

操作系统控制进程所需的信息


一个过程可能涉及的不仅仅是它的图像。它是一个动态的、不断变化的映像,因此得名为,由CPU运行

一个进程可以在不同的时间间隔内有多个映像,以及它对CPU的影响,这些映像不直接包含在映像中,如算术运算。

进程只是运行程序的抽象。在过程控制结构的上下文中,当引用过程时,通常指的是过程控制块

控制结构概述:操作系统通过系统内存中的进程表/列表跟踪所有进程。它看起来像这样:

Process 1
Process 2
...
Process n
这些列表项中的每一项都是一个进程映像。每个过程映像依次(通常)包含:

  • 用户数据(用户程序、用户堆栈、堆)
  • 过程控制块(过程id、状态信息、过程控制信息)
  • 这样,过程图像就是PCB等等


    总之,操作系统保留一个进程映像列表,其中包括进程控制块和与用户程序相关的所有数据。

    感谢您的回复。那么进程映像只是进程在虚拟内存中分配的空间?因此,过程和过程映像可以包含完全相同的组件(程序代码、程序数据、堆栈、PCB)?是。唯一的区别是进程映像是只读的(换句话说,不可编辑),而进程可以在任何时候更改。它是只读的,是因为它在辅助内存中,而不是在主内存中?如果它在主存中,它将是可编辑的?它是只读的,因为在多任务期间,当轮到内核访问CPU时,内核需要退出并重新输入进程中的指令。如果进程在另一个进程运行时被更改,当调度程序返回到有问题的进程时,它将崩溃,因为进程现在不同了。啊,我明白了。谢谢你的帮助。答案取决于你指的是什么。一个过程只有一个含义,而过程图像可以有多个含义。您认为该术语在何处使用以及如何使用?@user3344003感谢您的回复。这些术语用于进程控制结构和进程在内存中的位置。进一步的研究表明,进程映像只是进程在虚拟内存中分配的空间?因此,过程和过程映像可以包含完全相同的组件(程序代码、程序数据、堆栈、PCB)?如果有人能澄清一下,我将不胜感激。什么意思?那么图像的范围是什么呢??进程地址空间包括系统地址空间。如果您正在考虑一个进程转储,那通常只是用户地址。如果您谈论的是进程的整个映像,则可能包括用户地址范围和系统地址范围。@user3344003 PCB表示进程控制块。那么,您是说进程映像只是进程在虚拟内存中的物理表现吗?