假设Unix正在执行进程A并且发生更高级别的中断。然后操作系统获得一个中断号,然后从IVT中查找要调用的例程。
现在操作系统如何知道此中断是针对进程A而不是针对进程B.可能是进程B可能已发出磁盘读取,并且在操作系统执行进程A时它返回。
谢谢
答案 0 :(得分:3)
从这开始:http://en.wikipedia.org/wiki/MINIX
去买书并阅读;它真的会有很大的帮助。
中断不是“用于”进程。它们用于设备并由设备驱动程序处理。
设备驱动程序处理中断并更新设备状态。
如果设备驱动程序断定I / O操作已完成,则可以更新其I / O请求队列以确定已完成的操作。该操作将从待处理操作队列中删除。
正在等待该操作的进程现在可以运行并可以继续执行。
答案 1 :(得分:1)
您正在谈论硬件中断,而这些中断并不针对流程。
如果进程A请求文件,则已驻留在内核中的文件系统层将从块设备获取该文件。块设备本身由驱动程序处理。
当由块设备触发中断时,OS会将此中断与驱动程序关联。因此告诉驱动程序处理中断。然后,它将查询读取的块并查看它所请求的内容。
在文件系统被告知所请求的数据准备就绪后,它可以进一步处理它。然后,该过程离开了阻塞状态。
在下一轮调度程序中,调度程序可以选择唤醒此过程。它也可以选择先唤醒另一个进程。
如您所见,中断发生与过程操作完全断开。