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

时间:2015-03-01 15:02:32

标签: process operating-system kernel

最近,我正在学习内核并找到一个控制过程控制块(PCB)的问题?

内核还是进程本身?它在不同平台(windows / Linux)中是否有所不同?

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

2 个答案:

答案 0 :(得分:4)

PCB是操作系统内核中的一种数据结构,包含管理特定进程所需的信息。它包含各种字段(取决于操作系统)enter image description here

更多阅读wiki articale http://en.wikipedia.org/wiki/Process_control_block

答案 1 :(得分:1)

该过程完全是由操作系统内核专门创建和维护的软件抽象。进程控制块是代表OS中进程的数据结构。操作系统跟踪有关PCB中系统中运行的每个过程的所有必要信息。例如,在此特定进程中正在运行哪些线程,使用什么内存,哪个用户启动了该进程,以及它具有的特权。结果,每个操作系统都根据认为是一个进程的操作系统定义了自己的PCB专用格式。

某些OS实现进程(Windows / Linux),而另一些OS不执行该进程(MS-DOS)。甚至有维护线程但不维护进程的操作系统。不同的操作系统定义了不同的PCB格式。例如,Linux将文件表实现为流程抽象的一部分,但是几乎所有微内核操作系统都不认为文件表是流程的一部分。传统UNIX系统不支持线程概念,因此没有跟踪进程中运行的线程。同时,现代Linux实现线程并跟踪PCB中的所有相关数据。所有操作系统共享的流程抽象的唯一永久部分是私有虚拟地址空间。

再一次,PCB完全是软件抽象,而不是硬件抽象!我还没有看到处理器实现或直接支持流程。但是,在OS级别上实现流程抽象通常需要一些硬件支持。例如,对虚拟内存的支持和不同级别的特权。