首页 > 解决方案 > 关于进程控制块和执行命令的说明

问题描述

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

PCB 在进程通过 fork 诞生时创建,并在进程终止时回收。虽然诸如 exec 之类的系统调用重写了进程的内存映像,但 PCB(以及它所指向的实体,如内核堆栈)在 exec 或任何其他系统调用期间基本上保持不变,除了轻微的修改(如更改页表)指向新的内存图像)。

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

我理解错了什么概念?

标签: processoperating-systemforkexecchild-process

解决方案


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


推荐阅读