硬碟與記憶體

2021-09-29 13:42:46 字數 1728 閱讀 6589

程式儲存在儲存裝置中,通過有序地被讀出來實現執行,這個機制稱為「儲存程式方式」(程式內建方式)。

程式要載入到記憶體後才開始 執行

計算機中主要的儲存部件是記憶體核磁碟。磁碟中儲存的程式,必須要載入到記憶體後才能執行。在磁碟中儲存的原始程式是無法直接執行的。這是因為,負責解析和執行程式內容的cpu,需要通過內部程式計數器來指定記憶體位址,然後才能讀出程式。即時cpu可以直接讀出並執行磁碟中儲存的程式,由於磁碟讀取速度慢,程式的執行速度是會降低。

磁碟快取(disk cache)指的是把從磁碟中讀出的資料儲存到記憶體空間中,這樣一來,當接下來需要讀取同一資料時,就不用通過實際的磁碟,而是從磁碟快取中把內容讀取出來,使用磁碟快取可大大改善磁碟資料的訪問速度。

磁碟快取提高訪問速度的機制

把低速裝置的資料儲存在高速裝置中,需要時可以直接將其從高速裝置中讀出,這種快取的方式在其他情況下也會用到,例如web瀏覽器中的使用。

虛擬記憶體(virtual memory)是把磁碟的一部分作為假想的記憶體來使用,這與磁碟快取的假想的磁碟(實際上是記憶體)相對,虛擬記憶體是假想的記憶體(實際上是磁碟)。

借助於虛擬記憶體,在記憶體不足時也可執行程式。不過,cpu只能執行載入到記憶體中的程式。虛擬記憶體雖說是把磁碟作為記憶體的一部分來使用,但實際上正在執行的程式部分,在這個時間點上是必須存在記憶體中的。也就是說,為了實現虛擬記憶體,就必須把實際記憶體(物理記憶體)的內容和磁碟上的虛擬記憶體的內容進行部分置換(swap),並同時執行程式。

虛擬記憶體的方式分為分頁式和分段式,windows採用的是分頁式。分頁式是指在不考慮程式構造的情況下,把執行的程式按照一定大小的頁(page)進行分割,並以頁為單位在記憶體和磁碟間進行置換。在分頁式中,我們把磁碟的內容讀出的記憶體稱為pagein,把記憶體的內容寫入磁碟稱為pageout。一般情況下,windows計算機的頁的大小是4kb。也就是說,把大程式用4kb的頁來進行切分,並以頁為單位放入磁碟(虛擬記憶體)或記憶體中。

分頁式虛擬記憶體的機制

dll(dynamic link library)檔案,是在程式執行時可以動態載入library(函式和資料的集合)的檔案。多個應用可以共用同乙個dll檔案,而通過共用同乙個dll檔案則可以達到節約記憶體的效果。

內建函式(靜態鏈結,static link)導致記憶體利用率下降

進行動態鏈結即可節約記憶體

通過呼叫 _stdcall 來減少程式檔案的方法,是用c語言編寫應用時可以利用的高階技巧。c語言中,在呼叫函式後,需要執行棧清理處理指令。棧清理處理是指把不需要的資料從接受到傳遞函式的引數時使用的記憶體上的棧區域中清理出去。

在被呼叫方進行清理處理可節約記憶體

硬碟與記憶體

內存在電腦中起著舉足輕重的作用。記憶體一般採用半導體儲存單元,包括隨機儲存器 ram 唯讀儲存器 rom 以及快取記憶體 cache 只不過因為ram是其中最重要的儲存器,所以通常所說的記憶體即指電腦系統中的ram。ram要求每時每刻都不斷地供電,否則資料會丟失。如果在關閉電源以後ram中的資料也不...

CPU,記憶體與硬碟

電腦之父 馮 諾伊曼 提出了組成計算機的五大部件 輸入裝置 輸出裝置 儲存器 運算器和控制器。主機板cpu 硬碟記憶體 顯示卡電源 連線所有其他裝置的裝置,是其他裝置的載體,主機板主要是為cpu 記憶體 顯示卡 硬碟等提供平台,相當於人體的軀幹,關聯著各個器官。處理單元 cntral pocessi...

CPU 記憶體與硬碟的關係

關於cpu 記憶體與硬碟 三者之間的關係與功能 先來看一下這三者的功能 cpu就是 處理器 英文名稱叫做 central processing unit 是一塊超大規模的積體電路,是一台計算機的運算核心和控制核心。它的功能主要是解釋計算機指令以及處理計算機軟體中的資料。cpu主要包括運算器 算術邏輯...