我的教科书通常用unix、linux和windows来解释概念。然而,当涉及异步和同步I/O时,它只在windows的上下文中解释它。正因为如此,我想知道异步和同步I/O是否独立于操作系统?所有unix、linux和windows都可以使用这两种类型的I/O吗?或者只有windows操作系统才有这些能力。
谢谢。
发布于 2016-11-12 06:00:06
这是一个非常广泛的问题,答案取决于背景。
CPU和其他外围设备之间的I/O依赖于硬件I/O接口。系统中的大多数设备都使用同步接口,比如PCI总线.其他设备(通常执行速度较慢)可以使用异步接口进行通信,例如串口。
如果您的问题是关于操作系统中的进程间通信,操作系统通常提供同步或异步方法。这是因为某些应用程序特别需要同步通信,而其他应用程序则需要异步通信。您可以考虑以下问题:对于您的程序来说,在做任何其他事情之前等待消息的发送或接收是至关重要的,还是您现在可以忽略它们,然后再检查它们呢?
同步通信要求发送方在收件人成功传递消息之前等待和不做任何操作。同样的情况也适用于接收消息:在接收到预期的消息之前,接收过程将等待而不做任何事情。
在异步通信中,发送方将发送一条消息,然后不等待就继续执行其他任务。接收者也不需要阻塞-等待消息到达。它将定期检查是否有任何消息可用。
https://stackoverflow.com/questions/40559964
复制相似问题