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的概念,所以这里需要你的帮助

    谢谢你的时间和帮助

  • 操作系统可以编码为使用一个线程从网络读取数据包,另一个线程处理数据包。然而,当这是低效的,那么相同的线程用于读取和处理数据包。如果您认为线程“属于”读取数据包的操作系统中的代码,那么在某种意义上,它是由处理数据包的代码“借用”的。即使线程的优先级或特权在线程操作期间发生变化,它仍然是同一个线程

    此外,如果需要考虑创建和销毁线程的成本,则可以将一组线程预先分配为线程池。线程可以从此池中“借用”并随后返回

  • 异步处理容易出现竞争条件,因此编程比同步处理更具挑战性

  • 操作系统可以编码为使用一个线程从网络读取数据包,另一个线程处理数据包。然而,当这是低效的,那么相同的线程用于读取和处理数据包。如果您认为线程“属于”读取数据包的操作系统中的代码,那么在某种意义上,它是由处理数据包的代码“借用”的。即使线程的优先级或特权在线程操作期间发生变化,它仍然是同一个线程

    此外,如果需要考虑创建和销毁线程的成本,则可以将一组线程预先分配为线程池。线程可以从此池中“借用”并随后返回

  • 异步处理容易出现竞争条件,因此编程比同步处理更具挑战性