1. interrupt 作为一种事件驱动的编程模式,在操作系统的实现中占有非常重要的地位。
2. interrupt 可分为两大类,分别是 hardware interrupt 和 software interrupt。
3. software interrupt 根据触发方式的不同又可以分为两类,分别是由执行特定机器指令造成的主动触发和由执行指令导致异常造成的被动触发。
4. software interrupt 的被动触发又可以称为 traps 或 exceptions。
5. hardware interrupt 为异步触发方式,该 interrupt 主要用于通知操作系统某些硬件的某些操作已准备就绪或执行完毕,比如:网卡收到数据,键盘输入数据,磁盘读数据完成等。
6. software interrupt 为同步触发方式,其中主动触发主要用于用户程序调用指定的内核代码,比如系统调用,被动触发主要用于捕获cpu上执行代码的异常,比如:访问非法的内存地址,计算时除以0等。
7. hardware interrupt 和 主动触发的 software interrupt 都是一种可预期的,正常的程序行为,它们是为了辅助完成某些系统任务而存在的。
8. 被动触发的 software interrupt(又称为 traps 或 exceptions),是一种不可预期的,非正常的程序行为,它们是为了能捕获程序异常,进而做一些程序上的容错处理而存在的。
本文分享自 Linux内核及JVM底层相关技术研究 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!