首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谁控制过程控制块(PCB)?

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

Stack Overflow用户
提问于 2015-03-01 23:02:32
回答 1查看 1.9K关注 0票数 5

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

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

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

EN

回答 1

Stack Overflow用户

发布于 2020-04-17 20:00:18

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

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28795024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档