如果发生中断,unix内核如何确定它的进程

时间:2011-02-04 13:59:50

标签: unix

假设Unix正在执行进程A并且发生更高级别的中断。然后操作系统获得一个中断号,然后从IVT中查找要调用的例程。

现在操作系统如何知道此中断是针对进程A而不是针对进程B.可能是进程B可能已发出磁盘读取,并且在操作系统执行进程A时它返回。

谢谢

2 个答案:

答案 0 :(得分:3)

从这开始:http://en.wikipedia.org/wiki/MINIX

去买书并阅读;它真的会有很大的帮助。

中断不是“用于”进程。它们用于设备并由设备驱动程序处理。

设备驱动程序处理中断并更新设备状态。

如果设备驱动程序断定I / O操作已完成,则可以更新其I / O请求队列以确定已完成的操作。该操作将从待处理操作队列中删除。

正在等待该操作的进程现在可以运行并可以继续执行。

答案 1 :(得分:1)

您正在谈论硬件中断,而这些中断并不针对流程。

如果进程A请求文件,则已驻留在内核中的文件系统层将从块设备获取该文件。块设备本身由驱动程序处理。

当由块设备触发中断时,OS会将此中断与驱动程序关联。因此告诉驱动程序处理中断。然后,它将查询读取的块并查看它所请求的内容。

在文件系统被告知所请求的数据准备就绪后,它可以进一步处理它。然后,该过程离开了阻塞状态。

在下一轮调度程序中,调度程序可以选择唤醒此过程。它也可以选择先唤醒另一个进程。

如您所见,中断发生与过程操作完全断开。