linux 什么是“进程上下文”,它与“中断上下文”有什么关系?

xzlaal3s  于 2023-05-22  发布在  Linux
关注(0)|答案(2)|浏览(258)

下面这句话是什么意思:* “内核在进程上下文中执行”*?
这是否意味着如果CPU正在执行某个进程,然后发生了某个中断(系统调用、按键等),CPU将保持当前运行进程的页表加载,然后它将执行驻留在进程内核空间中的中断处理程序?
如果这是它的意思,那么它看起来像中断处理程序是在 * 进程上下文 * 中执行的,那么 * 中断上下文 * 是什么意思呢?

gstyhher

gstyhher1#

流程上下文是其当前状态。我们需要保存当前正在运行的进程的context,以便在处理中断后可以恢复它。
进程上下文基本上是它的当前状态(寄存器中的内容)。

esp
ss
eip
cs
and more.

我们需要保存instruction pointer (EIP)CS (Code Segment),以便在中断处理后,我们可以从停止的位置继续运行。
中断处理程序代码驻留在Kernel内存中。一旦发生中断,我们立即从用户模式切换到内核模式。保存当前运行进程的状态,一部分保存在用户堆栈上,另一部分保存在内核堆栈上(取决于体系结构)。假设它是x86,那么通过从TSSInterrupt descriptor table加载适当的sscsespeip来运行中断处理程序。

v7pvogib

v7pvogib2#

process context是在内核中运行的代码,代表用户进程(系统调用或异常)或内核线程。
interrupt context是由于硬件中断而在内核中运行的代码;它运行从硬件IRQ触发的中断服务例程。
我真的不明白你的问题,但简而言之,不,这不是你说的意思。特别是因为你混淆了软件中断,比如系统调用和硬件中断。

相关问题