流程上下文与流程控制块

时间:2016-02-02 07:15:36

标签: operating-system

我知道Process Context是在进程被抢占时存储的内容,其中包含稍后重新启动进程所需的所有信息。

我也知道Process Control BlockPCB)包含了该过程的所有必要属性。

那么,这是否意味着Process ContextPCB的一部分?或者是周围的其他方式?或者这些是分开的吗?请帮助我理解一个人的结局和另一个人的开始 - 以及他们如何一起使用。

流程边界究竟是什么?

此外,在上下文切换期间PCB如何受到影响(如果有的话)?

2 个答案:

答案 0 :(得分:2)

您所描述的内容主要取决于系统。通常当谈论过程上下文[块]时,一个是指过程的硬件状态。换句话说,用于将范围受限的硬件寄存器的值保存到单个进程的存储器位置。

过程控制块(或等效物)可以是操作系统想要的任何东西。例如,它可以包括用户名和进程配额。如果我们假设进程控制块包含操作系统维护的关于进程的所有内容,它将包含进程上下文块或具有指向它的链接。

这里的混淆是首字母缩略词PCB。至少在这些日子里,PCB指的是硬件Process Context Block。显然,有些教科书使用相同的缩写来指代软件过程控制块(就像操作系统上一本特别差的教科书一样,这个教科书会引起很多混乱和问题)。

进一步增加了混淆,我没有使用的系统有这样的教科书和维基百科中描述的过程控制块。我怀疑这个概念是创建教科书编写者来描述操作系统用来集体管理一个过程的各种数据结构。

  

此外,在上下文切换期间PCB如何受到影响(如果有的话)?

如果您指的是硬件过程上下文块,则在切换操作系统之前,执行SAVE PROCESS CONTEXT(或等效)指令,将过程的硬件寄存器保存到内存块。某些处理器需要多条指令才能执行此操作然后,OS执行LOAD PROCESS CONTEXT指令,该指令从另一个Process Context Block读取并从另一个进程加载已保存的寄存器。一旦这样的指令执行,该过程就会被切换。

关于可以在理论过程控制块中保存的内容,可以是操作系统想要的任何内容。例如,统计信息。如果硬件PCB是软件过程控制块的一部分,则上述段落是您答案的一部分。

  

流程边界究竟是什么?

这是一个加载的问题,因为事实上有一个过程的多个边界。

从内存的角度来看,在用户模式下,可以说进程的边界是其用户模式地址空间。

当过程改变模式时,这会改变。当它进入内核模式时,该过程实际上没有边界。它可以直接访问进程地址空间和共享系统地址空间,但也可以访问其他进程的地址空间(至少是间接访问)。

从磁盘角度来看,可以说进程的边界是文件系统强加的边界。

答案 1 :(得分:1)

在上下文切换期间,只有进程的状态(包括程序计数器等)存储在进程控制块中,以便此信息可以在稍后的某个时间点使用恢复执行。

此操作状态数据称为process context,而process control block是包含过程标识数据,过程状态数据和过程控制数据的数据结构。

相关问题