分享
 
 
 

基本的虛擬記憶體概念

王朝厨房·作者佚名  2007-01-05
窄屏简体版  字體: |||超大  

摘要:基本的虛擬記憶體概念

4.3. 基本的虛擬記憶體概念

現代儲存技術之後所用的科技著實令人印象深刻;但系統管理者不太需要了解這些細節。事實上,系統管理者只要記得一點就夠了:

記憶體永遠不夠!

這句話乍聽之下「笑」果十足;但事實上,作業系統的設計師早已花上許多精力,只為了解決記憶體不足的窘境。這方法就是「虛擬記憶體(virtual memory)」 — 將實際的 RAM 與較慢的硬碟結合起來,讓系統所擁有的記憶體看起來比實際的還多。

4.3. 基本的虛擬記憶體概念

現代儲存技術之後所用的科技著實令人印象深刻;但系統管理者不太需要了解這些細節。事實上,系統管理者只要記得一點就夠了:

記憶體永遠不夠!

這句話乍聽之下「笑」果十足;但事實上,作業系統的設計師早已花上許多精力,只為了解決記憶體不足的窘境。這方法就是「虛擬記憶體(virtual memory)」 — 將實際的 RAM 與較慢的硬碟結合起來,讓系統所擁有的記憶體看起來比實際的還多。

4.3.1. 虛擬記憶體的兩三事

我們就從一個假設性的應用程式看起。假設這個應用程式的機械碼大小為 10,000 位元組,還需要 5,000 位元組的空間儲存資料與 I/O 緩衝區。這表示這作業系統需要 15,000 位元組的記憶體才能執行;少一個位元組都不行。

這 15,000 位元組就稱為應用程式的「定址空間(address space)」,這是需要容納應用程式與其資料的獨一無二空間大小。在第一批電腦上,記憶體的大小就得比最大的應用程式還大;不然的話,執行這程式就會得到「記憶體不足」的錯誤訊息。

之後的解決方法稱為「覆疊(overlaying)」,能讓程式設計師決定在何時、應用程式的哪一個部份要載入到記憶體中。用這種方式,程式中初始化的部份只要在一開始的時候載入,然後接下來要運行的程式載入時,會覆蓋先前初始化的程式碼,以善用同一塊空間。覆疊功能可以減輕記憶體不足的問題,但這過程非常複雜,又容易出錯。覆疊也沒有辦法解決執行期間,整個系統記憶體不足的問題。換句話說,覆疊的程式所需的記憶體比沒有覆疊的程式要來得少,但如果系統的記憶體比覆疊過後的程式還少,那結果還是一樣的 — 「記憶體不足」。

虛擬記憶體則賦予應用程式的定址空間一個全新的意義:它不在乎應用程式執行時,需要多「多」記憶體;相反地,它不斷的在尋找一個問題:「應用程式執行時,需要多麼『少』的記憶體?」

根據我們假想的應用程式,它需要 15,000 位元組的空間,回想一下第 4.1 節中的討論 — 記憶體存取傾向於循序、發生在鄰近的地點。所以,同一時間內執行這應用程式所需的記憶體數量會低於 15,000 位元組 — 通常要低得多。想想一個執行週期所需要用到的記憶體存取類型:

從記憶體讀取指令。

從記憶體讀取資料。

指令完成後,將結果寫回記憶體。

每次存取所需要的記憶體數量會因為 CPU 的架構、實際指令、以及資料型態而有所不同。然而,即使每個指令存取記憶體時,會用到 100 位元組的記憶體,那麼總共 300 位元組還是遠低於 15,000 位元組的定址空間。如果我們有個方法可以在應用程式執行時,監控程式的記憶體使用量,那麼我們就可以用遠低於定址空間的記憶體,執行這個程式。

但這不禁讓我們想問一個問題:

如果在某個特定時間,應用程式有一部分在記憶體中,那麼其他部份到哪裡去了?

4.3.2. 後勤單位 — 虛擬記憶體的最高指導原則

這答案很簡單,應用程式的其他部份都在硬碟上。換句話說,硬碟就像記憶體的「後勤單位」;用空間大、速度慢的儲存媒體,當作速度快、容量小儲存媒體的「備用空間」。乍看之下,這似乎會產生很大的效能問題 — 畢竟硬碟要比記憶體慢得多。

這說的沒錯,但我們可以利用應用程式循序與鄰近的存取模式,讓硬碟太慢的效能問題降到最低。我們可以仔細架構虛擬記憶體子系統,以確保應用程式現在需要的部份 — 或很快就會用到的部份 — 能保存在記憶體中,讓真正需要的時候,立即派得上用場。

這觀念跟快取與主記憶體間的依存關係很像:結合小量的快速儲存空間、以及大量的慢速空間,成為一個看似又快又大的儲存體。

有了這點概念之後,我們就可以深入探討這個過程。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有