【发布时间】:2012-02-11 07:24:09
【问题描述】:
当我遇到这个时,我正在阅读 linux 在我的操作系统手册中的工作原理..
[...] 内核被创建为一个单一的、单一的二进制文件。主要原因是为了提高性能。因为所有内核代码和数据结构都保存在单个地址空间中,所以当进程调用操作系统函数或传递硬件中断时,不需要上下文切换。
这对我来说听起来很神奇,肯定它必须在运行到内核模式以处理中断之前存储进程的上下文。但是好的,我现在就买它。几页后,在描述进程的调度上下文时,它说:
进程执行时发生的系统调用和中断都将使用此堆栈。
“this stack”是内核存储进程寄存器等的地方。
这不是与第一句话直接矛盾吗?我是否以某种方式误解了它?
【问题讨论】:
标签: process linux-kernel context-switch