記憶體讀資料和磁碟讀資料的區別

2021-08-28 00:00:10 字數 642 閱讀 4817

當程式要讀取的資料時傳入記憶體位址(行位址+列位址),如果資料不在主存中時,會觸發乙個缺頁異常,此時系統會向磁碟發出讀盤訊號,通過柱面號,磁頭號,扇區號定位磁碟位置,找到資料的起始位置並向後連續讀取一頁或幾頁載入記憶體中。

於儲存介質的特性,磁碟本身訪問就比主存慢很多,再加上機械運動耗費,磁碟的訪問速度往往是主存的幾百分分之一,因此為了提高效率,要儘量減少磁碟i/o。為了達到這個目的,磁碟往往不是嚴格按需讀取,而是每次都會預讀,即使只需要乙個位元組,磁碟也會從這個位置開始,順序向後讀取一定長度的資料放入記憶體。這樣做的理論依據是電腦科學中著名的區域性性原理:

當乙個資料被用到時,其附近的資料也通常會馬上被使用。

程式執行期間所需要的資料通常比較集中。

由於磁碟順序讀取的效率很高(不需要尋道時間,只需很少的旋轉時間),因此對於具有區域性性的程式來說,預讀可以提高i/o效率。

預讀的長度一般為頁(page)的整倍數。頁是計算機管理儲存器的邏輯塊,硬體及作業系統往往將主存和磁碟儲存區分割為連續的大小相等的塊,每個儲存塊稱為一頁(在許多作業系統中,頁得大小通常為4k),主存和磁碟以頁為單位交換資料。當程式要讀取的資料不在主存中時,會觸發乙個缺頁異常,此時系統會向磁碟發出讀盤訊號,磁碟會找到資料的起始位置並向後連續讀取一頁或幾頁載入記憶體中,然後異常返回,程式繼續執行。

讀資料保持

always posedge clk or negedge rst b if rst b ram ren d1 1 b0 else ram ren d1 ram ren always posedge clk or negedge rst b if rst b ram dout d1 else ram...

讀資料(FileInputStream)位元組輸入流

fileinputstream string name 通過開啟與實際檔案的連線來建立乙個 fileinputstream 該檔案由檔案系統中的路徑名 name命名。1.建立位元組輸入流物件 2.呼叫位元組輸入流物件的讀資料方法 3.釋放資源public class fileinputstreamd...

hbase寫資料 和 讀資料過程

一 獲取region儲存位置資訊 寫資料和讀資料一般都會獲取hbase的region的位置資訊。大概步驟為 1 從zookeeper中獲取.root.表的位置資訊,在zookeeper的儲存位置為 hbase root region server 2 根據.root.表中資訊,獲取.meta.表的位...