A. 虛擬存儲管理的基本原理是什麼
虛擬存儲器的概念 為解決內存小而作業大、作業多的矛盾, 以及執行過程中只是把當前運行需要的那部分程序和數據裝入內存。 所以,操作系統把各級存儲器統一管理起來。
就是說, 應該把一個程序當前正在使用的部分放在內存, 而其餘部分放在磁碟上,就啟動執行它。
操作系統根據程序執行時的要求和內存的實際使用情況, 隨機地對每個程序進行換入/換出。 這樣, 就給用戶提供一個比正式的內存空間大的多的地址空間, 這就是虛擬存儲器。
所謂虛擬存儲器是用戶能作為可編址內存對待的存儲空間, 在這種計算機系統中虛地址被映射成實地址。
簡單地說,虛擬存儲器:是由操作系統提供的一個假想的特大存儲器。
就是說, 虛擬存儲器並不是實際的內存,它的大小比內存空間大的多;
用戶感覺所能使用的「內存」非常大, 但這是操作系統對物理內存的擴充。 它的物質基礎是:
二級存儲器結構、和動態地址轉換(DAT)。
機構虛擬存儲器的基本特徵:
虛擬擴充。 虛擬存儲器不是物理上擴充內存空間, 而是邏輯上擴充了內存容量。 部分裝入。
每個作業不是全部一次的裝入內存, 而是分成若幹部分。 離散分配。 一個作業分成多個部分,沒有全部裝入內存。
即使裝入內存的那些部分也不必佔用連續的內存空間, 而是「見縫插針」。 多次對換。
在一個進程運行期間, 它所需的全部程序和數就要分成多次調入內存。
注意:
虛擬存儲器的容量雖然提供了特大的地址空間, 用戶在編程時一般不應考慮可用空間有多大。 但是, 虛擬存儲器的容量不是無限大的。
它主要受兩方面的限制:
(1)機器指令中表示地址的二進制數是有限的;
(2)外存的容量也是有限的。
B. 虛擬存儲器技術主要用於解決什麼問題簡述虛擬存儲器的基本工作原理。
虛擬存儲器技術主要解決電腦內存不夠的問題,電腦中所運行的程序均需經由內存執行,若執行的程序佔用內存很大或很多,則會導致內存消耗殆盡。
為解決該問題,Windows中運用了虛擬內存技術,即勻出一部分硬碟空間來充當內存使用。當內存耗盡時,電腦就會自動調用硬碟來充當內存,以緩解內存的緊張。若計算機運行程序或操作所需的隨機存儲器(RAM)不足時,則 Windows 會用虛擬存儲器進行補償。
工作原理
1、中央處理器訪問主存的邏輯地址分解成組號a和組內地址b,並對組號a進行地址變換,即將邏輯組號a作為索引,查地址變換表,以確定該組信息是否存放在主存內。
2、如該組號已在主存內,則轉而執行④;如果該組號不在主存內,則檢查主存中是否有空閑區,如果沒有,便將某個暫時不用的組調出送往輔存,以便將這組信息調入主存。
3、從輔存讀出所要的組,並送到主存空閑區,然後將那個空閑的物理組號a和邏輯組號a登錄在地址變換表中。
4、從地址變換表讀出與邏輯組號a對應的物理組號a。
5、從物理組號a和組內位元組地址b得到物理地址。
6、根據物理地址從主存中存取必要的信息。
(2)虛擬存儲管理系統原理擴展閱讀:
相關概念
1、實地址與虛地址
用戶編製程序時使用的地址稱為虛地址或邏輯地址,其對應的存儲空間稱為虛存空間或邏輯地址空間;而計算機物理內存的訪問地址則稱為實地址或物理地址,其對應的存儲空間稱為物理存儲空間或主存空間。程序進行虛地址到實地址轉換的過程稱為程序的再定位。
2、虛擬內存的訪問過程
虛存空間的用戶程序按照虛地址編程並存放在輔存中。程序運行時,由地址變換機構依據當時分配給該程序的實地址空間把程序的一部分調入實存。
每次訪存時,首先判斷該虛地址所對應的部分是否在實存中:如果是,則進行地址轉換並用實地址訪問主存;否則,按照某種演算法將輔存中的部分程序調度進內存,再按同樣的方法訪問主存。
3、異構體系
從虛存的概念可以看出,主存-輔存的訪問機制與cache-主存的訪問機制是類似的。這是由cache存儲器、主存和輔存構成的三級存儲體系中的兩個層次。cache和主存之間以及主存和輔存之間分別有輔助硬體和輔助軟硬體負責地址變換與管理,以便各級存儲器能夠組成有機的三級存儲體系。
C. 虛擬存儲器基於什麼原理
虛擬存儲器的概念
為解決內存小而作業大、作業多的矛盾, 以及執行過程中只是把當前運行需要的那部分程序和數據裝入內存。 所以,操作系統把各級存儲器統一管理起來。就是說, 應該把一個程序當前正在使用的部分放在內存, 而其餘部分放在磁碟上,就啟動執行它。操作系統根據程序執行時的要求和內存的實際使用情況, 隨機地對每個程序進行換入/換出。
這樣, 就給用戶提供一個比正式的內存空間大的多的地址空間, 這就是虛擬存儲器。所謂虛擬存儲器是用戶能作為可編址內存對待的存儲空間, 在這種計算機系統中虛地址被映射成實地址。簡單地說,虛擬存儲器:是由操作系統提供的一個假想的特大存儲器。就是說, 虛擬存儲器並不是實際的內存,它的大小比內存空間大的多; 用戶感覺所能使用的「內存」非常大, 但這是操作系統對物理內存的擴充。
它的物質基礎是:二級存儲器結構、和動態地址轉換(DAT)。
機構虛擬存儲器的基本特徵:
虛擬擴充。 虛擬存儲器不是物理上擴充內存空間, 而是邏輯上擴充了內存容量。
部分裝入。 每個作業不是全部一次的裝入內存, 而是分成若幹部分。
離散分配。 一個作業分成多個部分,沒有全部裝入內存。 即使裝入內存的那些部分也不必佔用連續的內存空間, 而是「見縫插針」。
多次對換。 在一個進程運行期間, 它所需的全部程序和數就要分成多次調入內存。
注意: 虛擬存儲器的容量雖然提供了特大的地址空間, 用戶在編程時一般不應考慮可用空間有多大。 但是, 虛擬存儲器的容量不是無限大的。 它主要受兩方面的限制:(1)機器指令中表示地址的二進制數是有限的;(2)外存的容量也是有限的。
更多:
http://www.fjtu.com.cn/fjnu/courseware/0333/course/_source/web/lesson/char2/j4.htm
D. 簡述虛擬化存儲技術的三種實現方法及工作原理
從系統的觀點看,有三種主要的存儲虛擬化方法:
基於主機的虛擬存儲;
基於存儲設備的虛擬存儲;
基於網路的虛擬存儲。
方法1:基於主機的虛擬存儲
基於主機的虛擬存儲依賴於代理或管理軟體,它們安裝在一個或多個主機上,實現存儲虛擬化的控制和管理。由於控制軟體是運行在主機上,這就會佔用主機的處理時間。因此,這種方法的可擴充性較差,實際運行的性能不是很好。基於主機的方法也有可能影響到系統的穩定性和安全性,因為有可能導致不經意間越權訪問到受保護的數據。這種方法要求在主機上安裝適當的控制軟體,因此一個主機的故障可能影響整個SAN系統中數據的完整性。軟體控制的存儲虛擬化還可能由於不同存儲廠商軟硬體的差異而帶來不必要的互操作性開銷,所以這種方法的靈活性也比較差。
但是,因為不需要任何附加硬體,基於主機的虛擬化方法最容易實現,其設備成本最低。使用這種方法的供應商趨向於成為存儲管理領域的軟體廠商,而且目前已經有成熟的軟體產品。這些軟體可以提供便於使用的圖形介面,方便地用於SAN的管理和虛擬化,在主機和小型SAN結構中有著良好的負載平衡機制。從這個意義上看,基於主機的存儲虛擬化是一種性價比不錯的方法。
方法2:基於存儲設備的虛擬化
基於存儲設備的存儲虛擬化方法依賴於提供相關功能的存儲模塊。如果沒有第三方的虛擬軟體,基於存儲的虛擬化經常只能提供一種不完全的存儲虛擬化解決方案。對於包含多廠商存儲設備的SAN存儲系統,這種方法的運行效果並不是很好。依賴於存儲供應商的功能模塊將會在系統中排斥JBODS(Just a Bunch of Disks,簡單的硬碟組)和簡單存儲設備的使用,因為這些設備並沒有提供存儲虛擬化的功能。當然,利用這種方法意味著最終將鎖定某一家單獨的存儲供應商。
基於存儲的虛擬化方法也有一些優勢:在存儲系統中這種方法較容易實現,容易和某個特定存儲供應商的設備相協調,所以更容易管理,同時它對用戶或管理人員都是透明的。但是,我們必須注意到,因為缺乏足夠的軟體進行支持,這就使得解決方案更難以客戶化(customzing)和監控。
方法3:基於網路的虛擬存儲
基於網路的虛擬化方法是在網路設備之間實現存儲虛擬化功能,具體有下面幾種方式:
1. 基於互聯設備的虛擬化
基於互聯設備的方法如果是對稱的,那麼控制信息和數據走在同一條通道上;如果是不對稱的,控制信息和數據走在不同的路徑上。在對稱的方式下,互聯設備可能成為瓶頸,但是多重設備管理和負載平衡機制可以減緩瓶頸的矛盾。同時,多重設備管理環境中,當一個設備發生故障時,也比較容易支持伺服器實現故障接替。但是,這將產生多個SAN孤島,因為一個設備僅控制與它所連接的存儲系統。非對稱式虛擬存儲比對稱式更具有可擴展性,因為數據和控制信息的路徑是分離的。
基於互聯設備的虛擬化方法能夠在專用伺服器上運行,使用標准操作系統,例如Windows、Sun Solaris、Linux或供應商提供的操作系統。這種方法運行在標准操作系統中,具有基於主機方法的諸多優勢--易使用、設備便宜。許多基於設備的虛擬化提供商也提供附加的功能模塊來改善系統的整體性能,能夠獲得比標准操作系統更好的性能和更完善的功能,但需要更高的硬體成本。
但是,基於設備的方法也繼承了基於主機虛擬化方法的一些缺陷,因為它仍然需要一個運行在主機上的代理軟體或基於主機的適配器,任何主機的故障或不適當的主機配置都可能導致訪問到不被保護的數據。同時,在異構操作系統間的互操作性仍然是一個問題。
3. 基於路由器的虛擬化
基於路由器的方法是在路由器固件上實現存儲虛擬化功能。供應商通常也提供運行在主機上的附加軟體來進一步增強存儲管理能力。在此方法中,路由器被放置於每個主機到存儲網路的數據通道中,用來截取網路中任何一個從主機到存儲系統的命令。由於路由器潛在地為每一台主機服務,大多數控制模塊存在於路由器的固件中,相對於基於主機和大多數基於互聯設備的方法,這種方法的性能更好、效果更佳。由於不依賴於在每個主機上運行的代理伺服器,這種方法比基於主機或基於設備的方法具有更好的安全性。當連接主機到存儲網路的路由器出現故障時,仍然可能導致主機上的數據不能被訪問。但是只有聯結於故障路由器的主機才會受到影響,其他主機仍然可以通過其他路由器訪問存儲系統。路由器的冗餘可以支持動態多路徑,這也為上述故障問題提供了一個解決方法。由於路由器經常作為協議轉換的橋梁,基於路由器的方法也可以在異構操作系統和多供應商存儲環境之間提供互操作性。
E. 虛擬存儲器工作原理
你所謂的虛擬存儲器是不是虛擬內存
虛擬內存是用硬碟空間做內存來彌補計算機RAM空間的缺乏。當實際RAM滿時(實際上,在RAM滿之前),虛擬內存就在硬碟上創建了。當物理內存用完後,虛擬內存管理器選擇最近沒有用過的,低優先順序的內存部分寫到交換文件上。這個過程對應用是隱藏的,應用把虛擬內存和實際內存看作是一樣的。
在Windows2000(XP)目錄下有一個名為pagefile.sys的系統文件(Windows98下為Win386.swp),它的大小經常自己發生變動,小的時候可能只有幾十兆,大的時候則有數百兆,這種毫無規律的變化實在讓很多人摸不著頭腦。其實,pagefile.sys是Windows下的一個虛擬內存,它的作用與物理內存基本相似,但它是作為物理內存的「後備力量」而存在的,也就是說,只有在物理內存已經不夠使用的時候,它才會發揮作用。
F. 虛擬內存的工作原理
虛擬存儲器是由硬體和操作系統自動實現存儲信息調度和管理的。它的工作過程包括6個步驟:
①中央處理器訪問主存的邏輯地址分解成組號a和組內地址b,並對組號a進行地址變換,即將邏輯組號a作為索引,查地址變換表,以確定該組信息是否存放在主存內。
②如該組號已在主存內,則轉而執行④;如果該組號不在主存內,則檢查主存中是否有空閑區,如果沒有,便將某個暫時不用的組調出送往輔存,以便將這組信息調入主存。
③從輔存讀出所要的組,並送到主存空閑區,然後將那個空閑的物理組號a和邏輯組號a登錄在地址變換表中。
④從地址變換表讀出與邏輯組號a對應的物理組號a。
⑤從物理組號a和組內位元組地址b得到物理地址。
⑥根據物理地址從主存中存取必要的信息。
調度方式有分頁式、段式、段頁式3種。頁式調度是將邏輯和物理地址空間都分成固定大小的頁。主存按頁順序編號,而每個獨立編址的程序空間有自己的頁號順序,通過調度輔存中程序的各頁可以離散裝入主存中不同的頁面位置,並可據表一一對應檢索。頁式調度的優點是頁內零頭小,頁表對程序員來說是透明的,地址變換快,調入操作簡單;缺點是各頁不是程序的獨立模塊,不便於實現程序和數據的保護。段式調度是按程序的邏輯結構劃分地址空間,段的長度是隨意的,並且允許伸長,它的優點是消除了內存零頭,易於實現存儲保護,便於程序動態裝配;缺點是調入操作復雜。將這兩種方法結合起來便構成段頁式調度。在段頁式調度中把物理空間分成頁,程序按模塊分段,每個段再分成與物理空間頁同樣小的頁面。段頁式調度綜合了段式和頁式的優點。其缺點是增加了硬體成本,軟體也較復雜。大型通用計算機系統多數採用段頁式調度。
G. 什麼是虛擬存儲器和局部性原理
虛擬存儲器:是指具有請求調入功能和置換功能,能從邏輯上對內存容量進行擴充的一種存儲器系統。在虛擬存儲器系統中,作業無需全部裝入,只要裝入一部分就可運行。
引入虛擬存儲技術之後,可以:
1、提高內存利用率;(如:定義100*100大小的數組,可能只用到10*10個元素)
2、程序不再受現有物理內存空間的限制;編程變得更容易;
3、可以提高多道程序度,使更多的程序能夠進入內存運行。程序局部性原理:虛擬存儲管理的效率與程序局部性程序有很大關系。根據統計,進程運行時,在一段時間內,其程序的執行往往呈現出高度的局限性,包括時間局部性和空間局部性。
1、時間局部性:是指若一條指令被執行,則在不久的將來,它可能再被執行。
2、空間局部性:是指一旦一個存儲單元被訪問,那它附近的單元也將很快被訪問。
H. 系統虛擬內存的工作原理
內存在計算機中的作用很大,電腦中所有運行的程序都需要經過內存來執行,如果執行的程序很大或很多,就會導致內存消耗殆盡。為了解決這個問題,Windows中運用了虛擬內存技術,即拿出一部分硬碟空間來充當內存使用,當內存佔用完時,電腦就會自動調用硬碟來充當內存,以緩解內存的緊張。舉一個例子來說,如果電腦只有128MB物理內存的話,當讀取一個容量為200MB的文件時,就必須要用到比較大的虛擬內存,文件被內存讀取之後就會先儲存到虛擬內存,等待內存把文件全部儲存到虛擬內存之後,跟著就會把虛擬內里儲存的文件釋放到原來的安裝目錄里了。下面,就讓我們一起來看看如何對虛擬內存進行設置吧。
虛擬內存的設置
對於虛擬內存主要設置兩點,即內存大小和分頁位置,內存大小就是設置虛擬內存最小為多少和最大為多少;而分頁位置則是設置虛擬內存應使用那個分區中的硬碟空間。對於內存大小的設置,如何得到最小值和最大值呢?你可以通過下面的方法獲得:選擇「開始→程序→附件→系統工具→系統監視器」(如果系統工具中沒有,可以通過「添加/刪除程序」中的Windows安裝程序進行安裝)打開系統監視器,然後選擇「編輯→添加項目」,在「類型」項中選擇「內存管理程序」,在右側的列表選擇「交換文件大小」。這樣隨著你的操作,會顯示出交換文件值的波動情況,你可以把經常要使用到的程序打開,然後對它們進行使用,這時查看一下系統監視器中的表現值,由於用戶每次使用電腦時的情況都不盡相同,因此,最好能夠通過較長時間對交換文件進行監視來找出最符合您的交換文件的數值,這樣才能保證系統性能穩定以及保持在最佳的狀態。
找出最合適的范圍值後,在設置虛擬內存時,用滑鼠右鍵點擊「我的電腦」,選擇「屬性」,彈出系統屬性窗口,選擇「性能」標簽,點擊下面「虛擬內存」按鈕,彈出虛擬內存設置窗口,點擊「用戶自己指定虛擬內存設置」單選按鈕,「硬碟」選較大剩餘空間的分區,然後在「最小值」和「最大值」文本框中輸入合適的范圍值。如果您感覺使用系統監視器來獲得最大和最小值有些麻煩的話,這里完全可以選擇「讓Windows管理虛擬內存設置」。
調整分頁位置
Windows 9x的虛擬內存分頁位置,其實就是保存在C盤根目錄下的一個虛擬內存文件(也稱為交換文件)Win386.swp,它的存放位置可以是任何一個分區,如果系統盤C容量有限,我們可以把Win386.swp調到別的分區中,方法是在記事本中打開System.ini(C:\Windows下)文件,在[386Enh]小節中,將「PagingDrive=C:WindowsWin386.swp」,改為其他分區的路徑,如將交換文件放在D:中,則改為「PagingDrive=D:Win386.swp」,如沒有上述語句可以直接鍵入即可。
而對於使用Windows 2000和Windows XP的,可以選擇「控制面板→系統→高級→性能」中的「設置→高級→更改」,打開虛擬內存設置窗口,在驅動器[卷標]中默認選擇的是系統所在的分區,如果想更改到其他分區中,首先要把原先的分區設置為無分頁文件,然後再選擇其他分區。
或者,WinXP一般要求物理內存在256M以上。如果你喜歡玩大型3D游戲,而內存(包括顯存)又不夠大,系統會經常提示說虛擬內存不夠,系統會自動調整(虛擬內存設置為系統管理)。
如果你的硬碟空間夠大,你也可以自己設置虛擬內存,具體步驟如下:右鍵單擊「我的電腦」→屬性→高級→性能 設置→高級→虛擬內存 更改→選擇虛擬內存(頁面文件)存放的分區→自定義大小→確定最大值和最小值→設置。一般來說,虛擬內存為物理內存的1.5倍,稍大一點也可以,如果你不想虛擬內存頻繁改動,可以將最大值和最小值設置為一樣。
44》虛擬內存使用技巧
對於虛擬內存如何設置的問題,微軟已經給我們提供了官方的解決辦法,對於一般情況下,我們推薦採用如下的設置方法:
(1)在Windows系統所在分區設置頁面文件,文件的大小由你對系統的設置決定。具體設置方法如下:打開"我的電腦"的"屬性"設置窗口,切換到"高級"選項卡,在"啟動和故障恢復"窗口的"寫入調試信息"欄,如果你採用的是"無",則將頁面文件大小設置為2MB左右,如果採用"核心內存存儲"和"完全內存存儲",則將頁面文件值設置得大一些,跟物理內存差不多就可以了。
小提示:對於系統分區是否設置頁面文件,這里有一個矛盾:如果設置,則系統有可能會頻繁讀取這部分頁面文件,從而加大系統盤所在磁軌的負荷,但如果不設置,當系統出現藍屏死機(特別是STOP錯誤)的時候,無法創建轉儲文件 (Memory.dmp),從而無法進行程序調試和錯誤報告了。所以折中的辦法是在系統盤設置較小的頁面文件,只要夠用就行了。
(2)單獨建立一個空白分區,在該分區設置虛擬內存,其最小值設置為物理內存的1.5倍,最大值設置為物理內存的3倍,該分區專門用來存儲頁面文件,不要再存放其它任何文件。之所以單獨劃分一個分區用來設置虛擬內存,主要是基於兩點考慮:其一,由於該分區上沒有其它文件,這樣分區不會產生磁碟碎片,這樣能保證頁面文件的數據讀寫不受磁碟碎片的干擾;其二,按照Windows對內存的管理技術,Windows會優先使用不經常訪問的分區上的
頁面文件,這樣也減少了讀取系統盤里的頁面文件的機會,減輕了系統盤的壓力。
(3)其它硬碟分區不設置任何頁面文件。當然,如果你有多個硬碟,則可以為每個硬碟都創建一個頁面文件。當信息分布在多個頁面文件上時,硬碟控制器可以同時在多個硬碟上執行讀取和寫入操作。這樣系統性能將得到提高。
小提示:
允許設置的虛擬內存最小值為2MB,最大值不能超過當前硬碟的剩餘空間值,同時也不能超過32位操作系統的內存定址范圍——4GB
滑鼠右擊「我的電腦」,選「屬性」,點「高級」標簽,點「性能」框的「設置」,再點「高級」標簽,點「虛擬內存」框的「更改」,點「自定義大小」,再將虛擬內存的數字范圍提高一點,(就改為最小值600最大值1000)再點旁邊的「設置」,再點「確定」便可。
虛擬內存不足,其實是不關你的內存的事的。虛擬內存是從硬碟里提取的存儲空間。當你在運得游戲或是運行大量的程序的時候,由於你的內存空間太小,以至於要用到大量的虛擬內存來幫助。
虛擬內存的工作原理是,當接收到一部分信息時,會解決當前的信息,然在處理過程中,又收到另外一個信息,虛擬內存則會把數據作為一個分頁存儲在硬碟當中,以便處理完上一次信息後,從中取出這一次的信息進行處理。但是由於硬碟中的分頁碎片不斷的壘積,垃圾文件就過於的多拉。所以原先定放的虛擬內存空間就顯得不足了。
通常虛擬內存的設置分為兩的極。即最大值和最小值。
通常人們設定虛擬內存是根據自己實際內存的大小來設定的。最小值應設為實際內存的1。5倍而最大值應設為實際內存的倍。比如說。你現在的虛擬內存是128M,則虛擬內存的范圍則可以設置為:最小值:128*1.5=192M。最大值:128*2=256M。當然還有更容易的。你可以用優化大師這款軟體。它可以根據你的實際內存來精算出你的虛擬內存的最佳設置范圍。
最後我要補充一點的是,你應該隔一段時間就清理虛擬內存里的分頁碎片。養成良好的清理習慣。(優化大師里有這樣的全面功能)要不然即使你的虛擬內存設置的再大也會被垃圾數據填充。
I. 虛擬存儲器管理中的基礎是()原理
程序的主存儲器原理
存儲管理策略的基礎是局部性原理,即進程往往會不均勻地高度局部化地訪問主存。局部性表現在時間局部性和空間局部性兩方面。其中,時間局部性是指最近被訪問的存儲位置,很可能不久將還會被訪問;空問局部性是指存儲訪問有成組的傾向,當訪問某位置後,很可能也要訪問其附近的位置。虛擬存儲器管理中的基礎是程序的主存儲器原理。
(9)虛擬存儲管理系統原理擴展閱讀:
存儲訪問局部性最有意義的結果是:只要進程所需要的頁面子集駐留在主存中,進程就可以有效地運行。根據局部性訪問特性,Denning闡述了程序性能的工作集理論。工作集是進程活躍地訪問的頁面集合。工作集理論指出,為使進程有效地運行,它的頁面工作集應該駐留在內存中,否則由於進程頻繁地從輔存請求頁面,會出現抖動的頁面調度活動。