在异步IO完成时

时间:2017-02-24 14:28:25

标签: asynchronous io operating-system

我想知道在完成成功的异步IO(读取)请求后数据是如何可用的。我的意思是请求的数据存在于设备缓冲区或内存中(以某种方式缓存)?

例如,当触发我的异步回调(由操作系统)通知我数据准备就绪时,我是否会提供文件句柄(指向设备)以启动数据传输,或者我已经有回调中的数据(这意味着数据在内存中)。

1 个答案:

答案 0 :(得分:0)

您尚未指定正在使用的系统。在我使用的所有支持异步I / O的系统中,一个调用系统服务并提供用户缓冲区来存储数据。

编程技巧是,当软件中断发生通知应用程序I / O完成时,应用程序必须将I / O请求与缓冲区匹配。

此类系统服务总是包含一个传递某个应用程序ID的参数,该参数ID又传递给I / O完成时调用的软件中断处理程序。

通常你的数据将在缓冲区中等着你。