linux PCB存储在内存中的位置

vc9ivgsu  于 2023-08-03  发布在  Linux
关注(0)|答案(2)|浏览(237)

我想知道PCB(进程控制块)在Linux操作系统中存储在内存中的位置。当中断发生或调度器被调用时,上下文切换代码将替换当前进程PCB并将其放置在某个位置,并将新进程PCB加载到内存中。
我完全同意它存储在RAM中。但是RAM中这样的区域的名称是什么。
地址空间和PCB有什么区别?都是一样的。

e4eetjau

e4eetjau1#

在大多数系统上没有进程控制块(我认为可以肯定地说Linux没有这样的“PCB”)。进程控制块是一些写得很差的操作系统教科书中使用的教学概念。这些书所指的实际上是可以存储在不同位置的多个数据结构。
初始化PCB通常指的是过程上下文块,它是存储过程上下文(即寄存器)的区域。

emeijp43

emeijp432#

在Linux OS中,进程控制块(PCB)存储在内核的存储器空间中。PCB包含有关进程的基本信息,例如其状态、程序计数器、堆栈指针、CPU寄存器、调度信息等。当调用中断或调度器时,上下文切换代码将当前进程的PCB保存在存储器中,并将新进程的PCB加载到存储器中以继续其执行。
PCB是内核数据结构的一部分,位于RAM的指定区域,称为内核空间或内核地址空间。内核空间是一个受保护的内存区域,只能由内核访问,并且与用户空间分离,常规用户级进程驻留在用户空间中。
地址空间和PCB不是一回事。地址空间是指进程可以访问的内存地址范围。每个进程都有自己的地址空间,它是由操作系统Map到物理内存的虚拟地址空间。另一方面,PCB是操作系统用来管理和存储有关进程的信息的数据结构。它包含与特定进程相关的信息,内核使用它来管理和控制进程的执行。

相关问题