谁控制进程控制块(PCB)?

5

最近,我在学习内核,并发现一个问题:是谁控制进程控制块(PCB)?

是内核还是进程本身?在不同的平台(windows/Linux)中有何区别?

目前为止,我知道 PCB 在硬件中被控制,但我无法得到正确的答案。

1个回答

1
这个过程完全是由操作系统内核创建和维护的软件抽象。进程控制块是表示操作系统中进程的数据结构。操作系统在 PCB 中跟踪有关系统中运行的每个进程的所有必要信息。例如,哪些线程正在运行此特定进程,它使用哪些内存,哪个用户启动了此进程,它具有哪些权限。因此,每个操作系统根据其认为是进程的内容定义其私有格式的 PCB。
一些操作系统实现进程(Windows / Linux),而其他一些则不这样做(MS-DOS)。甚至有一些操作系统维护线程但不维护进程。不同的操作系统定义不同格式的 PCB。例如,Linux 将文件表作为进程抽象的一部分实现,但几乎所有微内核操作系统都不将文件表视为进程的一部分。传统的 UNIX 系统不支持线程概念,因此没有跟踪运行在进程中的线程。同时,现代的 Linux 实现了线程并在 PCB 中跟踪所有相关数据。所有操作系统共享的进程抽象的唯一永久部分是私有虚拟地址空间。
再次强调,PCB完全是软件抽象,而不是硬件抽象!我没有看到处理器实现或直接支持进程。然而,在操作系统级别上实现进程抽象通常需要一些硬件支持。例如,虚拟内存和不同特权级别的支持。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接