gpt4 book ai didi

linux - 为什么 linux 和 unix 的中断服务方式存在设计差异?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:11:03 24 4
gpt4 key购买 nike

在 Maurice 的 The Design of the Unix Operating System 一书中提到,中断是在正在运行的进程的上下文中得到服务的,因为它不会产生新的进程来服务中断。

因此,在 Unix 中,处理器正在做以下两件事之一:1. 在用户空间,在一个进程中执行用户代码2. 在内核空间中,在进程上下文中,代表特定进程执行。

但是,在包括 Linux 在内的许多操作系统中,中断处理程序并不在进程上下文中运行。相反,它们在不与任何进程关联的特殊中断上下文中运行。这种特殊上下文的存在只是为了让中断处理程序快速响应中断,然后退出。

因此,在 Linux 中,处理器正在做以下三件事之一:1. 在用户空间,在一个进程中执行用户代码2. 在内核空间中,在进程上下文中,代表特定进程执行。3. 在内核空间中,在中断上下文中,与进程无关,处理中断。

我想了解为什么会发生这种设计变化?如果我们在运行进程的上下文中服务中断,会不会更快?

最佳答案

听起来您对术语感到困惑。我怀疑你所说的“特殊中断上下文”(当然 Linux 文档使用该术语)实际上只是硬件制造的中断堆栈的转变。我怀疑 Linux 的“中断上下文”只是为了禁用不应在中断中完成的特定于进程的事件。

如果任何操作系统在中断期间执行实际的进程上下文切换(因此被中断的进程正在为中断服务),我会感到震惊。

关于linux - 为什么 linux 和 unix 的中断服务方式存在设计差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36916548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com