传统读操作
2022-04-14 10:13:24 1 举报
传统读操作
作者其他创作
大纲/内容
磁盘
read()
JAVA用传统方式进行读操作时,整体流程如上图,具体如下:应用程序发起读数据操作,JVM会发起read()系统调用。这时操作系统OS会进行一次上下文切换(把用户空间切换到内核空间)通过磁盘控制器把数据copy到内核缓冲区中,这里的就发生了一次DMA Copy然后内核将数据copy到用户空间的应用缓冲区中,发生了一次CPU Copyread调用返回后,会再进行一次上下文切换(把内核空间切换到用户空间)我们看一下一个读操作,发了2次上下文切换,和2次数据copy,一次是DMA Copy,一次是CPU Copy。注意一点的是 内核从磁盘上面读取数据 是 不消耗CPU时间的,是通过磁盘控制器完成;称之为DMA Copy。
CPU Copy
内核空间
应用程序缓冲区
应用程序
内核缓冲区Read Buffer
DMA Copy
用户空间
0 条评论
下一页