为什么
while (1) ;
死循环不会把电脑卡死?
本讲内容
为什么
while (1) ;
死循环不会把电脑卡死?
因为有中断
if (has_interrupt && int_enabled) {
interrupt_handler();
}
比 “函数调用” 复杂一些
%rsp
)中断处理
int $0x80
指令可以产生 128 号异常中断是强制的 (普通的进程不能关闭)
中断发生后,操作系统代码将会切换到另一个进程执行
Abstract Machine
调试 “迷你” 操作系统
-s -S
启动 QEMUtarget remote localhost:1234
应用程序视角
硬件视角