成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

原理講解有緩沖I/O與無緩沖I/O的區別

存儲 存儲軟件
當你學習Unix高級編程時會遇到不帶緩沖的I/O函數,比如open、read、write、lseek、close等等,那這與帶緩沖的I/O有什么區別????

當你看完這篇文章若是不能理解什么是帶緩沖的I/O與無緩沖的I/O的區別,隨意噴!!!

當你學習Unix高級編程時會遇到不帶緩沖的I/O函數,比如open、read、write、lseek、close等等,那這與帶緩沖的I/O有什么區別????

我們得先說說什么是高速緩沖存儲器,先別急慢慢看,看不懂算我輸!!!這個東東對整個計算機性能的提升有很大的幫助,具體就涉及到兩個器件的運行速度了,也就是cpu與內存的運行速度,想想也知道兩個不同器件的運行速度肯定不一樣,最基本的硬件架構都不一樣。那這就有一個問題產生了,cpu的速度大于內存的,那要是cpu不挺的往內存的某一個地址寫數據,由于內存的速度跟不上,那數據就會被覆蓋了,所以解決方案就是在cpu與內存之間加一個高速緩沖存儲器,高速緩沖存儲器的速度介于cpu與內存之間,那就好辦事了,cpu先把數據放在這個存儲器上,然后內存向存儲器取數據,然后發送到其他地方,在這段時間里,內存向存儲器取的數據不會因為cpu速度過快直接被覆蓋,而是放在了高速緩沖存儲器上,帶內存再次取數據時間就夠了!!!

同樣的道理用在磁盤上,比如你寫了一個進程,這個進程不挺的向磁盤寫數據,若是進程發送的數據過快,磁盤在寫的過程中就極有可能會被新的數據所覆蓋,所以就出現了所謂的磁盤高速緩存來做緩沖,它其實是內存的一部分,也就是我們所說的內存條的一部分,當做緩沖,這就是它的實際的物理意義:就是內存的一部分。那這有什么好處???想想也知道好處大得很,說說原理,有個概念叫局部性原理。局部性原理包含很多的局部性,比如時間的局部性,就是說進程A在t0時刻訪問磁盤的某一地址,在t0+t1時刻又來訪問,就叫時間的局部性。若是訪問的次數特別多,訪問的時間的間隔特別短,那么進程A就要不挺的訪問磁盤,就好比出家門玩的時候,你忘記帶某一東西,你回去拿,忽然發現又忘記帶了,這個時候你肯定想要是有人幫我拿了,在送的路上就好了不必在回家,同樣的道理在進程A與磁盤之間,若是頻繁訪問某一地址,通過磁盤高速緩存來把數據存起來后方便以后在訪問,更何況現在是變成了進程A直接與磁盤高速緩存(或者說內存)之間的訪問了,這不更快了嗎!!!所以一般出現一個某一個特定扇區的I/O請求時,這個請求會先查看所要訪問的數據在不在緩存里面,在就訪問,不在就把這個扇區的數據先拷貝到緩存里面,然后在訪問緩存里面的數據。

是不是感覺又理解了一點操作系統的小知識,我們繼續說!!!那上面這些與I/0有無緩沖有什么聯系???

對于帶緩沖的I/O通過一個叫緩沖區高速緩存最為緩存,其實它就是磁盤高速緩存。若是用戶進程要訪問某一個設備,注意不一定是磁盤,任何一個設備,由于每個I/O設備都與一個特殊文件相關聯,而文件由文件系統所管理,所以對文件的I/O操作,就相當于對設備的操作了;而文件放在磁盤上,而且磁盤高速緩存(內存的一部分)又是被用來作為磁盤的緩存,所以某一設備(文件)的緩存可以是磁盤高速緩存(內存的一部分)其中的一部分!!!如下圖所示:

原理講解有緩沖I/O與無緩沖I/O的區別

這里可以是任意的設備

這個緩沖區就是磁盤高速緩存(內存的一部分)其中的一部分的緩存。某一進程通過文件系統接口向設備對應的文件寫數據,文件系統把數據先存在緩存器中,然后發送到設備驅動程序控制設備。設備由所對應的控制器(可以簡單的理解為寄存器)所管理,學過單片機的都知道,簡單往寄存器寫數據就能控制設備了,比如串口,只要會了串口,藍牙不在話下!!!若是把控制器里面的寄存器映射到內存(也就是所謂I/O映射),再加上磁盤高速緩存是內存的一部分,那不就是數據在內存之間變化了,速度就更快了!!!

而對于無緩沖的I/O就沒有其中的緩沖了,也就是進程通過DMA直接與I/O設備交換數據了,但是執行無緩沖的I/0被鎖定在內存,不能被換出,那么這部分內存不能用了,信息交流的就少了不少,導致整個系統的性能有所下降,但是這是進程執行I/O最快的方法了!!!

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2020-08-07 08:03:37

IONetty

2010-05-11 13:36:50

Unix標準

2012-05-14 11:53:44

IO虛擬化

2024-03-05 18:24:52

I/O聚合優化存儲

2011-01-14 09:25:28

LinuxIO機制

2013-05-28 10:08:41

IO輸出

2012-06-25 10:53:32

Google IO大會

2025-06-16 09:46:06

2017-01-19 19:14:20

Linux重定向命令

2020-06-10 08:28:51

Kata容器I

2011-03-29 16:14:04

Cacti硬盤監控

2021-02-22 17:06:58

Linux改動代碼

2020-12-11 11:04:07

NettyIO

2020-06-03 17:30:42

LinuxIO

2011-01-27 13:52:11

Android 3.0I\O大會

2011-05-24 10:27:18

GoogleAndroidChrome

2023-06-26 07:39:10

2017-03-25 21:33:33

Linux調度器

2022-04-23 16:30:22

Linux磁盤性能

2021-02-10 08:09:48

Netty網絡多路復用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产高清在线观看 | 精品亚洲一区二区三区四区五区 | 亚洲精品av在线 | 一区在线播放 | 成人av播放 | 日屁视频 | 在线中文视频 | 国产美女福利在线观看 | 久久久久久久久91 | 欧美日韩福利视频 | 国产乱码精品一区二区三区忘忧草 | 国产精品1区2区 | 黄色网址免费看 | 久久久久久国产精品免费免费男同 | 日韩av一区二区在线观看 | 蜜桃视频在线观看免费视频网站www | 久久伊人精品 | 99tv成人影院| 亚洲激情在线视频 | 国产资源在线观看 | 欧美日韩高清免费 | 国产成人99久久亚洲综合精品 | 超碰在线人人 | 97影院在线午夜 | 欧美男人天堂 | 欧美一级片在线看 | 精产国产伦理一二三区 | 午夜ww| 亚洲一区二区在线电影 | 欧美片网站免费 | 波多野结衣一二三区 | 91精品久久久久久久久中文字幕 | 日日操日日舔 | 国产成人精品免费 | 91中文视频 | 黄色免费观看 | 91免费看片 | 一区二区国产精品 | 国产精品网址 | 国产色网 | 国产精品国产三级国产aⅴ无密码 |