核心概念:linux
用戶空間+內核空間+磁盤硬件網絡
1.最原始的BIO場景下IO操做流程。併發
讀取磁盤上的文件,而後通過網絡,將文件發送到另一個磁盤的過程。4次上下文切換,2次文件複製。操作系統
一、JVM發出read() 系統調用。
二、OS上下文切換到內核模式(第一次上下文切換)並將數據讀取到內核空間緩衝區。(第一次拷貝:hardware ----> kernel buffer)
三、OS內核而後將數據複製到用戶空間緩衝區(第二次拷貝: kernel buffer --> user buffer),而後read系統調用返回。而系統調用的返回又會致使一次內核空間到用戶空間的上下文切換(第二次上下文切換)。
四、JVM處理代碼邏輯併發送write()系統調用。
五、OS上下文切換到內核模式(第三次上下文切換)並從用戶空間緩衝區複製數據到內核空間緩衝區(第三次拷貝: user buffer ——> kernel buffer)。
六、write系統調用返回,致使內核空間到用戶空間的再次上下文切換(第四次上下文切換)。將內核空間緩衝區中的數據寫到hardware(第四次拷貝: kernel buffer ——> hardware)。blog
2.除去了用戶空間和內核空間的文件複製。內存
3.DMAit