深入理解操作系统——虚拟存储详解
因為程序的大小在不斷的變大,內存的增長速度遠遠跟不上程序增大的速度,所以內存需要外存的配合來完成對程序的運行存儲。虛擬存儲是非連續內存分配的延續,后者是在內存里的存儲空間讓它不連續,前者是在后者的基礎上將一部分內容放在外存中的做法,可以讓應用程序有更大的空間可以使用。為了實現這個目標,有三種技術可以實現:分別是覆蓋、交換和虛擬存儲。
覆蓋技術:是將程序按照功能劃分為相對獨立的模塊,將不會同時執行的模塊共享同一塊內存區域,選擇其中占用較大內存的大小作為該內存區域的大小。但缺點在于程序員需要去完成功能模塊的劃分,增加了編程的難度和復雜度。而且從外存裝入覆蓋模塊也增加了執行時間。
交換技術:覆蓋是一個程序的內存空間不夠,交換是一個程序夠用,但由于多道程序的運行,使得另一個程序占用了內存空間,使得之前的空間不夠。具體做法是將暫時不能運行的程序放到外存。換入換出的基本單位是整個進程的地址空間。這種技術有兩個問題:1、交換時機 2、交換區大小 3、程序換入時的重定位
虛擬存儲:就是只把部分程序放入內存中,從而運行比物理內存大的程序,它的前提思想是局部性原理。虛擬存儲的原理是只把當前指令執行需要的部分頁面或段裝入內存,不在內存中時,操作系統可從外存中把相應的頁面調入內存。實現方式有兩種:虛擬頁式存儲和虛擬段式存儲。
虛擬頁式存儲思路是當用戶程序要裝載到內存運行時,只裝入部分頁面,就啟動程序運行,頁面在內存中不存在時,就發出缺頁異常,然后操作系統在外存中調入相應的頁面,使得進程能繼續運行。
總結
以上是生活随笔為你收集整理的深入理解操作系统——虚拟存储详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: aws saa aws sap认证助理专
- 下一篇: 利用red5搭建一个简单的流媒体直播系统