流程和流程图像之间有什么区别?
另一个没有包含什么?有什么区别?
这都在过程控制结构和内存中的进程位置的上下文中。
答案 0 :(得分:11)
据我所知,过程映像是在执行之前为其分配内存时所采取的过程的映像。发生这种情况是因为,当多任务处理时,内核需要重新进入它停止的进程。如果在执行中期更改过程,则可能会发生错误,因此操作系统会创建该过程的只读版本并在执行期间使用该版本。
答案 1 :(得分:1)
一个过程所涉及的不仅仅是其形象。这是一个实时且不断变化的图像,因此命名,由CPU运行。
单个进程可以以不同的时间间隔拥有多个映像,并且它对CPU的影响不像映像算术运算那样直接包含在映像中。
答案 2 :(得分:1)
进程只是一个正在运行的程序的抽象。在进程控制结构的上下文中,当进程被引用时,通常指的是进程控制块。
控制结构的概述:操作系统通过系统内存中的进程表/列表跟踪所有进程。它看起来像这样:
Process 1
Process 2
...
Process n
这些列表项中的每一项都是一个过程映像。每个进程映像依次(通常)包含:
这样,过程映像就是 PCB 等等。
总而言之,操作系统保留了一个进程映像列表,其中包含进程控制块和与用户程序相关的所有数据。
答案 3 :(得分:0)
在将程序作为进程加载时,会为其分配虚拟内存的一部分,以形成其可用的地址空间。在此过程映像中,通常至少包含四个元素:
程序代码(或文本)
要执行的程序指令。请注意,没有必要 让处理器将整个过程读入物理 运行程序时的内存,而不是通过称为“动态”的过程 分页?下一条指令块将按要求加载,并且可能 在进程之间共享。
程序数据
可以区分为包括外部变量在内的初始化变量 全局和静态变量,未初始化的变量(称为bss Unix衍生系统上的区域)。数据块之间不共享 默认情况下进行处理。
堆栈
一个流程通常将至少具有两个后进先出(LIFO) 堆栈,包括用于用户模式的用户堆栈和用于 内核模式。
过程控制块
操作系统控制过程所需的信息。