fix:according to the Review

This commit is contained in:
woodpenker
2017-07-18 21:46:35 +08:00
parent 28aa7957ba
commit 8eb7a441ea

View File

@@ -1,4 +1,4 @@
中断描述符 IDT
中断描述符 IDT
================================================================================
三个常见的中断和异常来源:
@@ -13,11 +13,11 @@
* 陷阱 - 在指令导致异常`之后`会被准确地报告。`%rip`保存的指针同样指向故障的指令;
* 终止 - 是不明确的异常。 因为它们不能被明确,中止通常不允许程序可靠地再次启动。
只有当RFLAGS.IF = 1时`可屏蔽`中断触发中断处理程序。 除非RFLAGS.IF位清零否则它们将持续处于等待处理状态。
只有当RFLAGS.IF = 1时`可屏蔽`中断触发中断处理程序。 除非RFLAGS.IF位清零否则它们将持续处于等待处理状态。
`不可屏蔽`中断NMI不受rFLAGS.IF位的影响。 无论怎样一个NMI的发生都会进一步屏蔽之后的其他NMI直到执行IRET中断返回指令。
`不可屏蔽`中断NMI不受RFLAGS.IF位的影响。 无论怎样一个NMI的发生都会进一步屏蔽之后的其他NMI直到执行IRET中断返回指令。
具体的异常和中断来源被分配了固定的向量标识号也称“中断向量”或简称“向量”。中断处理程序使用中断向量来定位异常或中断从而分配相应的系统软件服务处理程序。有至多256个特殊的中断向量可用。前32个是保留的用于预定义的异常和中断条件。请参考[arch / x86 / include / asm / traps.h](http://lxr.free-electrons.com/source/arch/x86/include/asm/traps.h#L121)头文件中对他们的定义:
具体的异常和中断来源被分配了固定的向量标识号也称“中断向量”或简称“向量”。中断处理程序使用中断向量来定位异常或中断从而分配相应的系统软件服务处理程序。有至多256个特殊的中断向量可用。前32个是保留的用于预定义的异常和中断条件。请参考[arch/x86/include/asm/traps.h](http://lxr.free-electrons.com/source/arch/x86/include/asm/traps.h#L121)头文件中对他们的定义:
```
@@ -139,7 +139,7 @@ IDT可以包含三种门描述符中的任何一种
* `IST` - 中断堆栈表;
* `TYPE` - 本地描述符表LDT段描述符任务状态段TSS描述符调用门描述符中断门描述符陷阱门描述符或任务门描述符之一。
`IDT` 描述符在Linux内核中由以下结构表示仅适用于`x86_64`
`IDT` 描述符在 Linux 内核中由以下结构表示(仅适用于`x86_64`
```C
struct gate_struct64 {
@@ -170,9 +170,9 @@ struct ldttss_desc64 {
任务切换期间的异常Exceptions During a Task Switch
--------------------------------------------------------------------------------
任务切换在加载段选择期间可能会发生异常。页错误也可能会在访问TSS时出现。在这些情况下由硬件任务切换机完成从TSS加载新的任务状态然后触发适当的异常处理。
任务切换在加载段选择期间可能会发生异常。页错误也可能会在访问TSS时出现。在这些情况下由硬件任务切换机完成从TSS加载新的任务状态然后触发适当的异常处理机制
**在长模式下,由于硬件任务切换机被禁用,因而在任务切换期间不会发生异常。**
**在长模式下,由于硬件任务切换机被禁用,因而在任务切换期间不会发生异常。**
不可屏蔽中断Nonmaskable interrupt
--------------------------------------------------------------------------------