想理解虛擬記憶體,首先要說一下傳統記憶體,對比一下,更好理解其然所以然。
一次性操作和資料必須一次性全部裝入記憶體後,方能開始執行。這會導致兩種情況發生:
a、當資料量很大,不能全部被裝入記憶體時,將使該程式無法執行;
b、當大量程式要求執行時,由於記憶體不足以容納所有資料,只能使少數程式先執行,導致多道程式度的下降。
駐留性操作和資料被裝入記憶體後,就一直駐留在記憶體中,其任何部分都不會被換出,直至作業執行結束。
由以上特性可知,許多在程式執行中不用或暫時不用的程式(資料)佔據了大量的記憶體空間,而一些需要執行的作業又無法裝入執行,顯然浪費了寶貴的記憶體資源。
基於區域性性原理,在程式裝入時,可以將程式的一部分裝入記憶體,而將其餘部分留在外存,就可以啟動程式執行。在程式執行過程中,當所訪問的資訊不在記憶體時,由作業系統將所需要的部分調入記憶體,然後繼續執行程式。另一方面,作業系統將記憶體中暫時不使用的內容換出到外存上,從而騰出空間存放將要調入記憶體的資訊。這樣,系統好像為使用者提供了乙個比實際記憶體大得多的儲存器,稱為虛擬儲存器。
多次性是指無需在程式執行時一次性地全部裝入記憶體,而是允許被分成多次調入記憶體執行。
對換性是指無需在程式執行時一直常駐記憶體,而是允許在程式的執行過程中,進行換進和換出。
虛擬性是指從邏輯上擴充記憶體的容量,使使用者所看到的記憶體容量,遠大於實際的記憶體容量。
虛擬記憶體中,允許將乙個程式分多次調入記憶體。釆用連續分配方式時,會使相當一部分記憶體空間都處於暫時或假永久的空閒狀態,造成記憶體資源的嚴重浪費,而且也無法從邏輯上擴大記憶體容量。因此,虛擬記憶體的實需要建立在離散分配的記憶體管理方式的基礎上。虛擬記憶體的實現有以下三種方式:
1)請求分頁儲存管理。
2)請求分段儲存管理。
3)請求段頁式儲存管理。
不管哪種方式,都需要有一定的硬體支援。一般需要的支援有以下幾個方面:
1)一定容量的記憶體和外存。
2)頁表機制(或段表機制),作為主要的資料結構。
3)中斷機構,當使用者程式要訪問的部分尚未調入記憶體,則產生中斷。
4)位址變換機構,邏輯位址到實體地址的變換。
計算機作業系統 虛擬儲存
請求分頁儲存管理方式 虛擬儲存的情況下 相較於傳統的儲存 將程序所需要的全部裝入記憶體 虛擬儲存時在程序執行之前只把程式資料只裝入一部分先要執行的進去執行 後面需要的資料再慢慢裝入 拿分頁式來說就是某個程序在執行時 有一部分頁時裝進了記憶體有一部分不在記憶體 需要進行頁面置換 也就是將一部分磁碟記憶...
計算機作業系統
為什麼要有作業系統 計算機系統是乙個複雜的系統,如果每位程式設計師在程式設計時都必須掌握計算機系統的所有細節,就會嚴重影響程式設計師的開發效率 作業系統可以對計算機硬體加以管理和優化使用,為使用者程式提供更好的執行環境。作業系統以及其位置 作業系統組成 作業系統功能 應用程式直接與作業系統及其抽象打...
計算機作業系統
實驗一 熟悉linux作業系統 程序觀測 實驗目的 1 了解在linux作業系統中程序的特點和表現形式 2 掌握linux檢視程序的方式與方法 3 在乙個程序中建立另乙個程序的方法 4 掌握父程序和子程序的關係和fork的用法 實驗內容 1 編寫乙個簡單的程式,使用ps或top工具觀察該程序的的id...