Architecture 操作系统中的半同步半异步模式
Architecture 操作系统中的半同步半异步模式,architecture,operating-system,Architecture,Operating System,我在下面的链接中读到了关于半同步/半异步模式的内容
第8.2节中提到了识别短期任务和
使用异步I/O实现它们
使用被动的被动对象实现这些短期任务
模型被动对象从其他地方借用其控制线程
(例如调用方或单独的中断堆栈)。因此,
任务必须使用异步I/O,因为它们不能长时间阻塞
一段时间。不阻塞的主要动机是确保
对其他系统任务有足够的响应时间
我的问题是
作者从station上面的独立中断堆栈借用线程是什么意思
编程简单性的需求:编程异步I/O模型
可能会很复杂,因为输入和输出操作是由
打断。异步可
我在下面的链接中读到了关于半同步/半异步模式的内容
第8.2节中提到了识别短期任务和
使用异步I/O实现它们
使用被动的被动对象实现这些短期任务
模型被动对象从其他地方借用其控制线程
(例如调用方或单独的中断堆栈)。因此,
任务必须使用异步I/O,因为它们不能长时间阻塞
一段时间。不阻塞的主要动机是确保
对其他系统任务有足够的响应时间
我的问题是
作者从station上面的独立中断堆栈借用线程是什么意思
编程简单性的需求:编程异步I/O模型
可能会很复杂,因为输入和输出操作是由
打断。异步可能会导致微妙的计时问题和竞争
当前控制线程被
中断处理程序。此外,中断驱动的程序需要额外的资源
运行时堆栈之外的数据结构
作者所说的aysnc导致微妙的时间问题是什么意思(这里的请求示例)
为什么中断驱动程序除了运行时堆栈之外还需要额外的数据结构
一般来说,作者提到信号或中断是异步的,多线程、多进程是同步的?为什么?
我不熟悉aysnc的概念,所以这里需要你的帮助
谢谢你的时间和帮助
操作系统可以编码为使用一个线程从网络读取数据包,另一个线程处理数据包。然而,当这是低效的,那么相同的线程用于读取和处理数据包。如果您认为线程“属于”读取数据包的操作系统中的代码,那么在某种意义上,它是由处理数据包的代码“借用”的。即使线程的优先级或特权在线程操作期间发生变化,它仍然是同一个线程
此外,如果需要考虑创建和销毁线程的成本,则可以将一组线程预先分配为线程池。线程可以从此池中“借用”并随后返回
异步处理容易出现竞争条件,因此编程比同步处理更具挑战性
操作系统可以编码为使用一个线程从网络读取数据包,另一个线程处理数据包。然而,当这是低效的,那么相同的线程用于读取和处理数据包。如果您认为线程“属于”读取数据包的操作系统中的代码,那么在某种意义上,它是由处理数据包的代码“借用”的。即使线程的优先级或特权在线程操作期间发生变化,它仍然是同一个线程
此外,如果需要考虑创建和销毁线程的成本,则可以将一组线程预先分配为线程池。线程可以从此池中“借用”并随后返回
异步处理容易出现竞争条件,因此编程比同步处理更具挑战性