首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >操作系统中的半同步和半异步模式

问操作系统中的半同步和半异步模式
EN

Stack Overflow用户
提问于 2013-09-02 06:36:11
回答 1查看 1.4K关注 0票数 1

在下面的链接中,我正在阅读大约一半同步/半异步模式。

http://www.cs.wustl.edu/~schmidt/PDF/PLoP-95.pdf

http://www.cs.wustl.edu/~schmidt/PDF/HS-HA.pdf

在8.2节中提到过,确定短期任务并使用异步I/O实现它们。 使用被动的被动对象模型实现这些短期任务.被动对象从其他地方借用它们的控制线程(例如调用方或单独的中断堆栈)。因此,这些任务必须使用异步I/O,因为它们不能长期阻塞。不阻塞的主要原因是确保其他系统任务有足够的响应时间。

我的问题是

  1. 作者从独立的中断堆栈中借用线程是什么意思?

编程简单性的需要:编写异步I/O模型可能很复杂,因为输入和输出操作是由中断触发的。当当前控制线程被中断处理程序抢占时,异步可能会导致微妙的计时问题和争用条件。此外,中断驱动程序除了运行时堆栈外,还需要额外的数据结构.

  1. 作者的意思是,aysnc会引起微妙的计时问题(这里的请求示例)?
  2. 为什么中断驱动程序除了运行时堆栈之外还需要额外的数据结构.
  3. 通常,作者提到信号或中断为异步和多线程,多进程为同步?为什么?

我是新手,所以这里需要你的帮助。

谢谢你的时间和帮助。

EN

回答 1

Stack Overflow用户

发布于 2013-11-14 17:45:00

  1. 可以将操作系统编码为使用一个线程从网络读取数据包,使用另一个线程处理数据包。但是,如果这样做效率很低,则使用相同的线程来读取和处理数据包。如果您认为线程“属于”读取数据包的操作系统中的代码,那么在某种意义上,它被处理数据包的代码“借用”了。即使线程优先级或权限在线程操作期间发生更改,它仍然是相同的线程。 另外,如果创建和销毁线程的成本是一个问题,那么可以将一组线程预先分配为线程池。线程可以从这个池“借用”并随后返回。

  1. 异步处理容易产生竞争条件,因此编程比同步处理更具挑战性。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18566991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档