linux内核源代码情景分析(第三章 中断、异常和系统调用)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mouse1598189/article/details/87376258

第三章 中断、异常和系统调用


中断有两种,一种是由CPU外部产生的,另一种是由CPU本身在执行程序过程中产生的。
一共有三种类似的机制,中断、陷阱和异常。
不论三种中的那种,CPU的响应过程基本是一致的,就是在执行完当前指令以后,或者在执行当前指令的中途,就根据中断源所提供的中断向量,在内存中找到相应的服务程序入口并调用该服务程序。
外部中断的向量是由软件或者硬件设置好了的,陷阱的向量是在自陷指令中发出的,而各种异常的向量则是CPU的硬件结构中预先规定好的。

3.1 X86 CPU对中断的硬件支持

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 中断向量表IDT的初始化

在这里插入图片描述

3.3 中断请求队列的初始化

在这里插入图片描述
在这里插入图片描述

3.4 中断的响应和服务

[IRQ0x03_interrupt->common_interrupt->do_IRQ()]
[IRQ0x03_interrupt->common_interrupt->…->ret_from_intr->ret_with_reschedule->reschedule]
在这里插入图片描述

3.5 软中断与Bottom Half

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.6 页面异常的进入与返回

[page_fault->error_code->…->ret_from_exception]

3.7 时钟中断

在这里插入图片描述

3.8 系统中断

3.9 系统调用号与跳转表

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/mouse1598189/article/details/87376258