流程和流程图像之间有什么区别?

时间:2017-01-26 02:57:51

标签: memory process operating-system virtual-memory

流程和流程图像之间有什么区别?

另一个没有包含什么?有什么区别?

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

4 个答案:

答案 0 :(得分:11)

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

Here's a webpage with more details on process images

答案 1 :(得分:1)

一个过程所涉及的不仅仅是其形象。这是一个实时且不断变化的图像因此命名,由CPU运行。
单个进程可以以不同的时间间隔拥有多个映像,并且它对CPU的影响不像映像算术运算那样直接包含在映像中。

答案 2 :(得分:1)

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

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

Process 1
Process 2
...
Process n

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

  1. 用户数据(用户程序、用户堆栈、堆)
  2. 进程控制块(进程ID、状态信息、进程控制信息)

这样,过程映像就是 PCB 等等。

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

答案 3 :(得分:0)

在将程序作为进程加载时,会为其分配虚拟内存的一部分,以形成其可用的地址空间。在此过程映像中,通常至少包含四个元素:

程序代码(或文本)

  

要执行的程序指令。请注意,没有必要   让处理器将整个过程读入物理   运行程序时的内存,而不是通过称为“动态”的过程   分页?下一条指令块将按要求加载,并且可能   在进程之间共享。

程序数据

  

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

堆栈

  

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

过程控制块

  

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

Source