中断中涉及的主要流程
一个简要的中断流程目录归纳,万一以后遗忘方便回顾(流程的部分详细内容在《CPU篇中断02、03》中有总结)。
- 异常流程:fault、trap、abort和int
- 缺页异常
- 一个主要
- 多个次要
- 多个错误
- NMI
- 系统调用
- int 0x80
- sysenter
- syscall
- 缺页异常
- 中断流程
- 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
- reschedule
- invalidate TLB
- call function
- 涉及的软中断流程
- softirqs
- tasklet
- workqueue
- IO中断
本文概述了操作系统中中断和异常的处理流程,包括缺页异常、NMI(非屏蔽中断)、系统调用(如int0x80、sysenter、syscall)以及IO中断如网卡和磁盘中断。时钟中断和IPI( inter-processor interrupt)如reschedule中断也在讨论范围内,涉及到的软中断流程包括tasklet和workqueue。在中断处理过程中,涉及到了进程调度、时间片更新以及TLB失效处理等关键操作。
5595

被折叠的 条评论
为什么被折叠?



