events - 操作系统上下文中的中断驱动与事件驱动
问题描述
我在一篇文章中看到操作系统是中断驱动的。操作系统是中断驱动还是事件驱动?
谢谢你。
解决方案
操作系统的核心是中断驱动的。话虽如此,操作系统仍然可以利用事件。
试着这样想……想象一个有多种线程的系统,但此时无事可做——也就是说,它处于空闲状态,没有线程准备好运行。由于系统中没有线程在运行,因此系统将保持不变,直到发生某种外部动作。这种外部动作将采用中断的形式。此中断可能来自定时器、串行端口、键盘、鼠标、磁盘驱动器、网络设备……。无论来源如何,都需要处理此中断,并且它有可能导致许多线程准备就绪,并且从而执行。
事件是一种软件构造。一些执行上下文可以等待事件;有些可以发出事件信号;有些人可以两者兼得。在一个复杂的系统中,您可能有各种线程等待和发送事件信号。然而,在其核心,操作系统仍然需要响应中断,只有中断才能让它脱离空闲状态。
推荐阅读
- python - 为什么注册表格中没有显示电子邮件行?
- java - 将我的 ArrayList 转换为某个属性 JAVA 的 String[]
- javascript - 使用嵌套的对象数组创建多级下拉列表
- sql - 只有一个参数的 SQL Oracle UNION
- typescript - 如何从 ionic 的全局服务中获取变量?
- c# - 尝试发布更新时出现角度未定义变量错误
- r - R 包存在于库中,但在需要安装其他包时仍找不到
- javascript - 如何根据当前列选择值更新不同列/单元格的值 - 可编辑网格同步融合(Javascript es5)
- c - 分拣技术 C
- javascript - Photoshop / 从选区中取出颜色