探祕磁碟的奧祕:物理結構、快取和虛擬記憶體的作用

2023-10-24 18:00:54

引言

在我們之前的講解中,我們已經詳細介紹了CPU和記憶體的物理結構,這是計算機系統中至關重要的組成部分。然而,除了CPU和記憶體之外,磁碟也扮演著非常重要的角色,它在資料儲存方面起著至關重要的作用。因此,我們將繼續向大家介紹磁碟的物理結構,以便更全面地瞭解計算機系統的工作原理。通過深入瞭解磁碟的物理結構,我們可以更好地理解資料的儲存和存取過程,從而幫助我們更好地進行系統優化和效能提升。讓我們一起深入研究磁碟的組成部分和工作原理,為進一步的學習打下堅實的基礎。

磁碟

磁碟的物理結構

磁碟的物理結構指的是磁碟儲存資料的特定形式。一塊機械硬碟由三個關鍵部件組成,它們分別是盤面、磁頭和懸臂。這些部件共同共同作業,以實現資料的讀取和寫入。盤面是磁碟的主要組成部分,它是一個平坦的圓盤,上面覆蓋著磁性材料。磁頭則是位於盤面上方和下方的裝置,它們負責讀取和寫入資料。而懸臂則起到支撐和定位磁頭的作用。這三個部件的協同工作使得磁碟能夠高效地儲存和存取資料。

在磁碟的物理結構中,磁碟表面被劃分成了若干個同心圓的空間,這些空間被稱為磁軌。而磁軌又按照固定大小的儲存空間被劃分成了磁區。

磁區是磁碟進行物理讀寫的最小單位。在Windows系統中,一般一個磁區的大小為512個位元組。然而,在邏輯層面上,Windows對磁碟進行讀寫的單位是磁區整數倍的簇。根據磁碟容量和功能的不同,一個簇可以是512位元組(即1個磁區)、1KB(2個磁區)、2KB、4KB、8KB、16KB、32KB(64個磁區)。因此,簇和磁區的大小是相等的。

硬碟的基本儲存單位是磁區(Sector),每個磁區通常為512位元組。一個硬碟通常由多個磁碟片組成,每個磁碟片上劃分了若干個同心圓的磁軌,每個磁軌又被劃分為若干個磁區。

一般情況下,一個盤面上會有兩個磁頭,分別位於盤面的正面和背面。盤面的正面和背面都被塗有磁性材料,用於儲存資料。此外,一塊硬碟通常不只有一個盤面,而是由多個盤面堆疊而成,這些盤面是平行排列的。每個盤面的正面和背面都有對應的磁頭,用於讀取和寫入資料。

在資料存取的過程中,我們不能直接從磁碟盤面上將資料傳輸到匯流排上,而是需要通過磁頭進行中轉。首先,磁頭將從盤面上讀取資料,然後通過電路訊號傳輸給控制電路和介面,最終傳送到匯流排上。

讀取資料實際上包含兩個主要步驟。首先,我們需要將盤面旋轉到特定位置。在這個位置上,懸臂能夠準確定位到整個盤面的一個特定子區間。這個子區間的形狀類似於一塊披薩餅,通常被稱為幾何磁區(Geometrical Sector),意味著在「幾何位置上」,所有這些磁區都可以被懸臂存取到。

其次,我們需要將懸臂移動到特定磁軌的特定磁區,也就是在幾何磁區內部定位到我們實際需要的磁區。一旦找到目標磁區,磁頭會降下來,從正對著磁區的位置讀取資料。

綜上所述,資料的讀取過程包括將盤面旋轉到目標位置和將懸臂移動到目標磁區的過程。通過這兩個步驟,我們可以成功讀取到所需的資料。

磁碟快取

正如我們之前提到的,磁碟和記憶體之間通常是互利共生的關係,彼此共同作業並保持良好的合作關係。每次記憶體需要讀取資料時,往往會讀取相同的內容,因此必然會有一個角色負責儲存我們經常需要讀取的內容。就像在軟體開發中經常使用快取技術一樣,在硬體層面也存在磁碟快取。

磁碟快取指的是將從磁碟讀取的資料儲存到記憶體中的一種方式。這樣,在接下來需要讀取相同內容時,就不再需要通過實際的磁碟存取,而是可以直接從磁碟快取中讀取。磁碟快取的出現大大改善了磁碟存取的速度,類似於某種技術或框架的出現,解決了特定問題。

通過磁碟快取,我們能夠提高資料的讀取速度,減少對實際磁碟的頻繁存取,從而提升系統的整體效能。磁碟快取的存在使得資料的讀取更加高效和快速,為我們的計算機系統帶來了許多便利。

虛擬記憶體是計算機系統記憶體管理的一種技術,它通過將磁碟的一部分作為假想記憶體來使用,成為記憶體和磁碟互動的第二個媒介。與假想的磁碟(實際上是記憶體)相對的是磁碟快取,而與假想的記憶體(實際上是磁碟)相對的是虛擬記憶體。

虛擬記憶體的主要作用是使應用程式認為它擁有連續可用的記憶體,即一個完整的地址空間。然而實際上,這個地址空間通常被分割成多個物理碎片,並且其中的一部分儲存在外部磁碟管理器上,需要時進行資料交換。

虛擬記憶體的存在使得即使記憶體不足,仍然可以執行程式。例如,即使只剩下10MB的記憶體空間,仍然可以執行15MB的程式。然而,由於CPU只能執行載入到記憶體中的程式,因此虛擬記憶體的空間需要與記憶體中的空間進行置換(swap),然後才能執行程式。

虛擬記憶體有兩種方法,分別是分頁式和分段式。而Windows採用的是分頁式。分頁式是指在不考慮程式構造的情況下,將執行的程式按照一定大小的頁進行分割,並以頁為單位進行置換。在分頁式中,將磁碟的內容讀入記憶體中稱為Page In,將記憶體的內容寫入磁碟稱為Page Out。Windows計算機的頁大小為4KB,也就是說,需要將應用程式按照4KB的頁來進行切分,並以頁為單位放入磁碟中,然後進行置換。

為了實現虛擬記憶體功能,Windows在磁碟上提供了虛擬記憶體使用的檔案,即頁檔案。該檔案由Windows生成和管理,其大小與虛擬記憶體大小相同,通常是記憶體大小的1-2倍。

至於為什麼選擇分頁式而不是分段式,我們在之前的文章中已經詳細討論過,所以在這裡就不再贅述了。

總結

本文介紹了磁碟的物理結構、磁碟快取和虛擬記憶體三個方面。磁碟的物理結構由盤面、磁頭和懸臂組成,盤面上劃分了多個磁軌和磁區,磁區是磁碟的最小讀寫單位。磁碟快取是將磁碟讀取的資料儲存到記憶體中,提高了資料讀取速度和系統整體效能。虛擬記憶體是通過將磁碟的一部分用作假想記憶體的技術,使應用程式能夠認為擁有連續可用的記憶體。虛擬記憶體的存在使得即使記憶體不足,仍然可以執行程式。通過深入瞭解磁碟的物理結構、磁碟快取和虛擬記憶體,我們可以更好地理解計算機系統的工作原理,為系統優化和效能提升提供基礎。