在計算機的5大部件中, 「內存」 和 「磁盤」 都被歸類為 「存儲部件」 。不過,利用 「電流」 來實現存儲的內存,同利用 「磁效應」 來實現存儲的磁盤,還是有差異的。
從存儲容量來看
- 內存是**「高速高價」**
- 磁盤是**「低速廉價」**
不讀入內存就無法運行
計算機中主要的存儲部分是 「內存」 和 「磁盤」 。 「磁盤中存儲的程序,必須要加載到內存后才能運行。在磁盤中保存的原始程序是無法直接運行的」 。這是因為,「負責解析和運行程序內容的CPU,需要通過內部程序計數器
來指定內存地址,然后才能讀出程序」
?存儲在磁盤中的程序需要讀入到內存后才能運行
?
磁盤緩存
磁盤緩存Disk Cache指的是把從磁盤中讀出的數據存儲到 「內存空間」 中的方式。這樣一來,當接下來需要讀取 「同一數據」 時,就不用通過實際的磁盤,而是從磁盤緩存中把內容讀出。
?使用磁盤緩存可以大大改善磁盤數據的訪問速度
?
把 「低速設備」 的數據保存到 「高速設備」 中,需要時可以直接將其從高速設備中讀出,這種 「緩存」 的方式在其他情況下也會用到。
其中一個實例就是在Web瀏覽器
中的使用。由于Web瀏覽器
是通過 「網絡」 來獲取 「遠程」 Web服務器
的數據并將其顯示出來的。因此,在顯示較大的圖片等文件時,會花費不少時間。于是,Web瀏覽器
就可以把獲取的數據 「暫時」 保存在 「磁盤」 中,然后在需要時再顯示磁盤中的數據。也就是, 「把低速的網絡數據保存到相對高速的磁盤中」 。
虛擬內存
虛擬內存Virtual Memory是指把 「磁盤」 的一部分作為 「假想的內存」 來使用。這與磁盤緩存是 「假想的磁盤」 (實際上是內存
)相對,虛擬內存是 「假想的內存」 (實際上是磁盤
)。
「通過借助虛擬內存,在內存不足時也可以運行程序」 。為了實現虛擬內存,就必須把 「實際內存」 (也可稱為 「物理內存」 )的內容,和磁盤上的虛擬內存的內容進行 「部分置換」 ,并同時運行程序。
?虛擬內存的方法有 「分頁式」 和 「分段式」 兩種。
?
Windows
采用的是 「分頁式」 。該方式是指, 「把運行的程序按照一定大小的頁Page進行分割,并以頁
為單位在內存和磁盤間置換」 。
在分頁式中,把磁盤的內容讀出到內存稱為Page In
,把內存的內容寫入磁盤稱為Page Out
。
為了實現虛擬內存功能,Windows
在 「磁盤」 上提供了虛擬內存用的頁文件Page File。該文件由Windows
自動做成和管理。
節約內存的編程方式(DLL文件)
「DLL(Dynamic Link Library)文件」 ,是在程序 「運行時」 可以 「動態」 加載Library
(函數和數據的集合)的文件。并且,多個應用可以 「共有同一個」 DLL文件
。所以, 「通過共有同一個DLL文件
可以達到節約內存的效果」 。
假設我們編寫了一個具有某些處理功能的函數MyFunc()
,應用A
和應用B
都會使用這個函數。如果函數MyFunc()
是獨立的DLL文件
,由于同一個DLL文件
的內容在運行時可以被多個應用共有,因此內存中存在的函數MyFunc()
的程序就只有一個。
?
Windows
的 「操作系統」 本身也是多個DLL文件
的集合體。?
DLL文件
還有一個優點:在不變更可執行文件的情況下,只通過升級DLL文件
就可以更新。
磁盤的物理結構
「磁盤的物理結構是指磁盤存儲數據的形式」 。
?磁盤是通過把其物理表面劃分成多個空間來使用的。
?
劃分的方式有 「扇區方式」 和 「可變長方式」 兩種。
- 「扇區方式」 是指將磁盤劃分為 「固定長度」 的空間
- 「可變長方式」 是指把磁盤劃分為 「長度可變」 的空間
Windows
計算機所使用的硬盤,采用的都是 「扇區方式」 。
扇區方式中,把磁盤表面分成若干個 「同心圓的空間」 就是 「磁道」 ,把磁道按照 「固定大小」 (能存儲的數據長度相同)劃分而成的空間就是 「扇區」 。
?扇區是對磁盤進行 「物理讀寫」 的最小單位,一般一個扇區是512字節
?
不過,Windows
在 「邏輯方面」 (軟件方面
)對磁盤就進行讀寫的單位是扇區的整數倍 「簇」 。根據磁盤容量的不同,1簇可以是512字節(1簇=1扇區)、1KB(1簇=2扇區)、2KB、4KB等。
? 「不同的文件是不能存儲在同一簇中的」 ,否則就會導致只有一方的文件不能被刪除
?
-
cpu
+關注
關注
68文章
10858瀏覽量
211643 -
計算機
+關注
關注
19文章
7490瀏覽量
87889 -
內存
+關注
關注
8文章
3023瀏覽量
74023 -
計數器
+關注
關注
32文章
2256瀏覽量
94499
發布評論請先 登錄
相關推薦
評論