cicada
驱动小牛
驱动小牛
  • 注册日期2003-12-09
  • 最后登录2008-07-11
  • 粉丝1
  • 关注0
  • 积分74分
  • 威望15点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:1359回复:3

请问:buffer I/O 和 直接I/O方式比有什么优势?

楼主#
更多 发布于:2005-05-12 20:03
如题
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-05-13 09:19
如题

Buffer I/O驱动只需处理虚拟地址
Direct I/O需要自己用个函数转换为虚拟地址,另外看到MDL函数后面有个带Safe的吗?其实不光是我们,OS自己也要注意正确上下文,所以略有些不安全
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
ypohlai
驱动牛犊
驱动牛犊
  • 注册日期2005-06-30
  • 最后登录2011-03-23
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望26点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-07-27 13:28
buffer I/O适用于small data size,
直接I/O适用于large data size.
journaler
驱动牛犊
驱动牛犊
  • 注册日期2005-07-14
  • 最后登录2005-08-01
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-07-30 14:57
buffer I/O需要由系统在用户进程与驱动之间传递数据,所以每次read/write都要多一次在内核中数据的复制,相当于函数参数的传值方式,效率不高;
direct I/O直接在用户和驱动之间传递地址,每次read/write都是在用户和驱动之间直接传数据,效率高。
游客

返回顶部