Architecture 什么';驱动程序和中断处理程序的区别是什么?

Architecture 什么';驱动程序和中断处理程序的区别是什么?,architecture,linux-device-driver,system,Architecture,Linux Device Driver,System,我正在学习一门操作系统课程,在I/O设备一章中,我对驱动程序和中断处理程序非常困惑。在教科书中,驱动程序被定义为“管理特定设备的操作系统中的代码:它配置设备硬件,通知设备执行操作,处理产生的中断,并与可能正在等待设备I/O的进程交互。”因此,当设备向操作系统发送中断时,操作系统做什么?调用中断处理程序?还是司机? 书中还说,驱动程序通常分为上半部分和下半部分,为什么要这样做?是否有一些实际的例子来解释?您需要记住硬件平台的图片。在最简单的情况下(没有MMU的CPU、PIC、定时器和其他设备),操

我正在学习一门操作系统课程,在I/O设备一章中,我对驱动程序和中断处理程序非常困惑。在教科书中,驱动程序被定义为“管理特定设备的操作系统中的代码:它配置设备硬件,通知设备执行操作,处理产生的中断,并与可能正在等待设备I/O的进程交互。”因此,当设备向操作系统发送中断时,操作系统做什么?调用中断处理程序?还是司机?
书中还说,驱动程序通常分为上半部分和下半部分,为什么要这样做?是否有一些实际的例子来解释?

您需要记住硬件平台的图片。在最简单的情况下(没有MMU的CPU、PIC、定时器和其他设备),操作系统只是调度算法+定时器驱动程序+PIC驱动程序。您的另一个设备驱动程序只是在系统中注册,连接到IRQ(假设PIC驱动程序提供API)。所以,通过定时器中断(系统的滴答声)操作系统为驱动程序的主流分配时间,但如果设备生成IRQ,操作系统(PIC)将为其提供服务,并从设备驱动程序(中断处理程序)调用代码。有点乱,但我希望你明白了。