【问题标题】:Clarification on Process control block and exec command关于进程控制块和执行命令的说明
【发布时间】:2020-11-01 14:44:46
【问题描述】:

我大学的操作系统说明如下:

PCB 是进程通过 fork 诞生时创建的,并被回收 当一个进程终止时。而系统调用如 exec rewrite 进程的内存映像、PCB(以及由 它,就像内核堆栈一样)在 exec 或任何 其他系统调用,除了轻微的修改(比如改变 页表指向新的内存映像)。

但是在 fork 系统调用期间,来自父进程的内存映像被擦除,并且为子进程初始化了一个新的内存映像。因此,位于内存映像的内核堆栈中的 PCB 也被擦除,因此我的理解是一个全新的 PCB 被重新写入进程。

我理解错了什么概念?

【问题讨论】:

    标签: process operating-system fork exec child-process


    【解决方案1】:

    进程控制块位于 RAM 的内核空间中。内核空间也有分页表。当调用 exec 系统命令时,进程的内存映像被擦除并为该进程写入新的内存映像,而不影响该进程在内核空间中的进程控制块,但映射逻辑地址和虚拟地址的分页表由于内存映像已更改,因此进程的地址必须更改。因此据我所知,PCB没有被重写。

    【讨论】:

      猜你喜欢
      • 2011-09-13
      • 2020-04-28
      • 1970-01-01
      • 2014-01-25
      • 1970-01-01
      • 1970-01-01
      • 2012-09-09
      • 2021-10-04
      • 2012-10-13
      相关资源
      最近更新 更多