早期的计算机没有中断的 时候,就是执行完一个程序接着执行另外一个程序。
有了中断也就有了多道程序设计。也就是系统里跑多个程序。线程是一个程序的执行流
那么从这个执行流怎么切换到另外一个程序中呢?
当中断发生的时候,cpu帮我们做了一些事情,cpu把当前的eip,esp,ebp都压到内核堆栈中去,然后eip指向中断处理程序的入口。
cpu和内核代码共同实现了保护现场和恢复现场的工作。
早期的计算机没有中断的 时候,就是执行完一个程序接着执行另外一个程序。
有了中断也就有了多道程序设计。也就是系统里跑多个程序。线程是一个程序的执行流
那么从这个执行流怎么切换到另外一个程序中呢?
当中断发生的时候,cpu帮我们做了一些事情,cpu把当前的eip,esp,ebp都压到内核堆栈中去,然后eip指向中断处理程序的入口。
cpu和内核代码共同实现了保护现场和恢复现场的工作。