中断中涉及的主要流程
一个简要的中断流程目录归纳,万一以后遗忘方便回顾(流程的部分详细内容在《CPU篇中断02、03》中有总结)。
异常流程:fault、trap、abort和int
缺页异常
一个主要多个次要多个错误NMI系统调用
int 0x80sysentersyscall中断流程
IO中断
网卡中断磁盘中断时钟中断
全局时钟中断局部时钟中断timer_interrupt(ISR)-> do_timer_interrupt-> update_process_times-> scheduler_tick:对于一般进程sched_normal,O(1)算法会更新当前进程的时间片,如果为0,则将当前进程的need_resched置一;CFS会根据实际运行的时间按照比例更新当前进程的vruntime,如果大于其预计的运行时间ideal_runtime,则将当前进程的need_resched置一。然后再中断返回或者系统调用返回用户态的时候,再检查当前进程的need_resched标志,如果为1,则调用schedule进行进程调度IPI
rescheduleinvalidate TLBcall function涉及的软中断流程
softirqstaskletworkqueue