硬件和软件中断有什么区别?

我要画出我对两者的理解。 我一直在search,但我不知道我的知识。 请纠正我!

硬件中断由操作系统事件调度程序生成,为其他进程重新分配CPU时间。 这是真的?

软件中断可以从正在运行的程序产生,例如读取一个文件,为此,我们需要重新分配cpu给相应的操作系统调用。 这是真的?

还有其他types的软件/硬件中断吗?

硬件和软件中断的主要区别在于它们是如何生成的:硬件中断是由硬件产生的,例如定时器,键盘,网卡等,而软件中断则由特殊的软件指令触发(如int 0x80 )。 它们的作用也有一个相关的区别:硬件中断处理程序应该处理硬件事件(例如到达networking接口的数据包),而软件处理程序应该服务于另一个软件,通常是执行中断指令的应用程序(例如为了请求内核代表应用程序访问文件)。

定时器中断确实被操作系统的调度程序用来周期性地重新获得控制和执行各种操作(例如资源记帐,上下文切换)。

生成软件中断是与内核进行通信的一种方式,可能在某些平台上用于调用系统调用。