来自Computer Organization and Design, by Patterson et al
为什么" I / O设备请求"外部中断?
" I / O设备请求"是指用户程序通过系统调用请求I / O设备服务?如果是,系统调用是不是内部异常?
感谢。
答案 0 :(得分:1)
它指的是需要注意的外围设备,例如。现在已准备好满足先前收到的读取请求的磁盘控制器硬件(或已完成读取请求数据的DMA处理)。
答案 1 :(得分:1)
因为中断不是由处理器或程序生成的。它是连接到状态改变的中断控制器的物理线。由设备的控制器驱动,处理器外部。中断处理程序通常位于驱动程序中,该驱动程序知道如何处理设备控制器的服务请求。
"调用操作系统"是软件中断,通常将处理器切换到保护模式以处理请求。
"算术溢出"通常是由处理器上的浮点单元生成的陷阱。
"使用未定义的指令"是另一个陷阱,由处理器本身生成,因为指令无效而无法再执行代码。
处理器通常有更多类似的陷阱。喜欢除零。或者执行特权指令。或虚拟内存尚未映射到物理内存时的页面错误。或者程序读取未映射的虚拟内存地址时出现保护错误。
答案 2 :(得分:1)
操作系统的路径是一个指针数组。根据系统的不同,该进位可能有不同的名称。我将其称为"调度表。"调度表处理需要操作系统注意的所有内容:中断,故障和陷阱。最后两个是集体"例外"。
执行指令导致异常。他们同步。 中断是由执行进程/线程外部发生的事件引起的。
用户通过执行导致陷阱的指令同步调用操作系统(在英特尔芯片上他们错误地命名了这样的陷阱"软件中断")。这样的偶数是指令流的同步,可预测的结果。
这样的陷阱将用于将I / O请求排队到设备。 "从用户程序调用操作系统"在你的桌子里。
当请求完成时,设备会导致中断。这就是" I / O设备请求"在你的桌子里。
混淆是操作系统通过调度表以相同的方式处理中断,故障和陷阱。而且,正如我所说,在英特尔的土地上,他们称之为陷阱和中断,并且#34; Interrupts"。