Multithreading 异步编程和中断异常处理程序
我是编程新手,只是一个关于异步编程实际如何工作的问题。 我们知道,中断是异步发生的,这是由于I/O设备发出的信号 在处理器外部。因此,例如,当处理器执行完一条指令,并且处理器注意到中断引脚变高(例如,网络适配器通知有数据到来)时,从系统总线读取异常号,然后调用相应的中断处理程序。当处理程序返回时,它将控制权返回到下一条指令。 所以它需要硬件支持。(分配给I/O的专用pin) 那么,在没有硬件支持的情况下,异步编程如何工作呢?操作系统如何向当前进程发送“Hi the result is ready,come and get it”的“通知”。 据我了解,没有硬件支持,我们只能通过多线程或多进程来实现 因此,它需要硬件支持。(分配给I/O的专用引脚)因此,没有硬件支持,异步编程如何工作,操作系统如何向当前进程发送“结果就绪,请过来获取”的“通知”。据我了解,没有硬件支持,我们只能通过多线程或多进程来实现 理解(通常)有许多层被(通常是有意抽象的)接口分隔开。从最低层到最高层,这些层可能是:Multithreading 异步编程和中断异常处理程序,multithreading,asynchronous,exception,operating-system,Multithreading,Asynchronous,Exception,Operating System,我是编程新手,只是一个关于异步编程实际如何工作的问题。 我们知道,中断是异步发生的,这是由于I/O设备发出的信号 在处理器外部。因此,例如,当处理器执行完一条指令,并且处理器注意到中断引脚变高(例如,网络适配器通知有数据到来)时,从系统总线读取异常号,然后调用相应的中断处理程序。当处理程序返回时,它将控制权返回到下一条指令。 所以它需要硬件支持。(分配给I/O的专用pin) 那么,在没有硬件支持的情况下,异步编程如何工作呢?操作系统如何向当前进程发送“Hi the result is ready
- 平台设施的硬件接口(例如芯片组内置的中断控制器)
- 各种类型设备的硬件接口
- 抽象设备驱动程序接口
- 内核的API
- 一种“运行时”语言(例如,可能是一个或多个共享库,但也可能是像Java的虚拟机这样的虚拟机)
- 由工具(例如编译器、链接器)生成的程序
- 开发人员的源代码