CPU从用户模式切换到内核模式:它到底做了什么?它如何进行这种转换?
编辑:即使它是与体系结构相关的,请为我提供答案。体系结构由您决定。告诉我您熟悉的体系结构。
我想了解其中涉及哪些内容。
编辑:即使它是与体系结构相关的,请为我提供答案。体系结构由您决定。告诉我您熟悉的体系结构。
我想了解其中涉及哪些内容。
注意:这主要与x86架构有关。以下是一个相对简化的解释。
通常情况下,转换是由以下之一引起的:
通常发生的情况是系统检查中断描述符表(IDT)。每个异常(中断、错误等)都有一个与其关联的数字,用于对此表进行索引。
通过此表,CPU 可以确定要运行的中断处理程序。
作为转换的一部分,以下更改(通常)会生效:
现在你处于内核模式。
希望有所帮助 :)
这取决于系统,但通常的机制是某些用户操作会引起软件中断。该中断使处理器切换模式并跳转到内核代码,然后检查程序试图执行什么操作(系统调用?),然后执行请求的操作并跳回用户模式代码。除了软件中断之外,其他机制也可能导致过渡;例如,在抢占式多任务系统中,定时器中断可能触发调度程序运行。