虛擬存儲管理原理
1. 求頁式虛擬存儲技術的原理。
虛擬存儲器是根據程序的邏輯地址轉換來的,也稱線性地址空間。一般每個進程,甚至每個段都有一個,以32位為例,則每個最大可達4G。 而主存目前一般為百M。因此程序中所指的存儲單元並不能都放到主存中,也就是並不是每個程序所用的存儲單元,都有具體的物理的存儲器單元與之對應。 但由於程序的兩個局部性原理,在一個時刻,程序只在一個比較小的范圍內運行。所以我們把程序可能用到的整個存儲空間分成一個個相同大小的頁(按頁管理硬體上容易實現),只把其中的一些頁放在主存中,而其它的頁則等需要時再建,或放在輔存(磁碟)中。同時建立一個頁表,對應於每一頁,如果該頁在主存中,則頁表記錄它在主存中的地址;如果不在主存中,則在頁表上作不在主存的標記。 這樣,當程序需要調用某個存儲單元的內容時,先根據它的線性地址,算出其所在的頁。查頁表,看是不是在主存中?如果在,則直接存取。如果查到頁表上是不在的標記,那就是一個page fault。要把主存中的某一頁(LRU策略)換到磁碟上,把要訪問的那個單元所在的頁調入主存,再進行存取。 就象一個預計有一萬學生的學校,理論上每個學生都應有一個位子上課(一萬個虛擬位子),而學校只有一千個(物理)位子。但實際上,學校也不會一萬個人同時上課,只要讓上課的同學有位子(在主存中),而其它同學只要留下聯系方法能找到就好。為了降低管理的復雜性,我們採用按學號分班(頁)管理。每個班要麼一起上課(主存),要麼一起呆在寢室(磁碟)。而在學校保留一個動態表(頁表)表明每個班在哪兒(物理地址)上課,或者沒上課(不在主存)。現在假設我們想按學號找一個同學,而且是女同學,只能在教室說話,呵呵。那麼: 先算出來是哪個班的,查動態表,看該班是否在教室。在,直接按位置找到(hit);不在(page fault),要先找個不上課的班趕回寢室,把要找女生所在的班調到教室,再按位置找那個同學。 動態表(頁表)的大小=表項數*每個表項所需的位數。 表項數=虛擬班數=虛擬人數(虛擬地址空間)/每班人數(每頁大小) 每個表項的位數=Log(教室數)+適當控制位數
麻煩採納,謝謝!
2. 虛擬存儲器基於什麼原理
虛擬存儲器的概念
為解決內存小而作業大、作業多的矛盾, 以及執行過程中只是把當前運鍵衡行需要的那部分程序和數據裝入內存。 所以,操作系統把各級存儲器統一管理起來。就是說, 應該把一個程序當前正在使用的部分放在內存, 而其餘部分放在磁碟上,就啟動執行它。操作系統根據程序執行時的要求和內存的實際使用情況, 隨機地對每個程序進行換入/換出。
這樣, 就給用戶提供一個比正式的內存空間大的多的地址空間, 這就是虛擬存儲器。所謂虛擬存儲器是用戶能作為可編址內存對待的存儲空間, 在這種計算機系統中虛地址被映射成實地址。簡單地說,虛擬存儲器:是由操作系統提供的一個假想的特大存儲器。就是說, 虛擬存儲器並不是實際的內存,它的大小比內存空間大的多; 用戶感覺所能使用的「內存」非常大, 但這是操作系統對物理內存的擴充。
它的物質基礎是:二級存儲器結構、和動態地址轉換(DAT)。
機構虛擬存儲器的基本特徵:
虛擬擴充。 虛擬存儲器不是物理上擴充內存空間, 而是邏輯上擴充了內存容量。
部分裝入。 每個作業不是全部一次的培亮猜裝入內存, 而是分成若幹部分。
離散分配。 一個作業分成多個部分,沒有全部裝入內存。 即使裝入內存的那些部分也不必佔用連續的內存空間, 而是「見縫插針」。
多次對換。 在一個進程運行期間, 它所需的全部程序和數就要分成多次調入內存。
注意: 虛擬存儲器的容量雖然提供了特大的地址空配型間, 用戶在編程時一般不應考慮可用空間有多大。 但是, 虛擬存儲器的容量不是無限大的。 它主要受兩方面的限制:(1)機器指令中表示地址的二進制數是有限的;(2)外存的容量也是有限的。
更多:
http://www.fjtu.com.cn/fjnu/courseware/0333/course/_source/web/lesson/char2/j4.htm
3. 虛擬存儲器管理中的基礎是()原理
程序的主存儲器原理
存儲管理策略的基礎是局部性原理,即進程往往會不均勻地高度局部化地訪問主存。局部性表現在時間局部性和空間局部性兩方面。其中,時間局部性是指最近被訪問的存儲位置,很可能不久將還會被訪問;空問局部性是指存儲訪問有成組的傾向,當訪問某位置後,很可能也要訪問其附近的位置。虛擬存儲器管理中的基礎是程序的主存儲器原理。
(3)虛擬存儲管理原理擴展閱讀:
存儲訪問局部性最有意義的結果是:只要進程所需要的頁面子集駐留在主存中,進程就可以有效地運行。根據局部性訪問特性,Denning闡述了程序性能的工作集理論。工作集是進程活躍地訪問的頁面集合。工作集理論指出,為使進程有效地運行,它的頁面工作集應該駐留在內存中,否則由於進程頻繁地從輔存請求頁面,會出現抖動的頁面調度活動。
4. 虛擬存儲器工作原理
你所謂的虛擬存儲器是不是虛擬內存
虛擬內存是用硬碟空間做內存來彌補計算機RAM空間的缺乏。當實際RAM滿時(實際上,在RAM滿之前),虛擬內存就在硬碟上創建了。當物理內存用完後,虛擬內存管理器選擇最近沒有用過的,低優先順序的內存部分寫到交換文件上。這個過程對應用是隱藏的,應用把虛擬內存和實際內存看作是一樣的。
在Windows2000(XP)目錄下有一個名為pagefile.sys的系統文件(Windows98下為Win386.swp),它的大小經常自己發生變動,小的時候可能只有幾十兆,大的時候則有數百兆,這種毫無規律的變化實在讓很多人摸不著頭腦。其實,pagefile.sys是Windows下的一個虛擬內存,它的作用與物理內存基本相似,但它是作為物理內存的「後備力量」而存在的,也就是說,只有在物理內存已經不夠使用的時候,它才會發揮作用。
5. 虛擬存儲器的基本原理是什麼其容量主要受到什麼限制
虛擬存儲器的基本特徵是:
①虛擬擴充,即不是物理上而是邏輯上擴充了內存容量;
②部分裝入,即每個作業不是全部一次性地裝入內存,而是只裝入一部分;
③離散分配,即不必佔用連續的內存空間,而是"見縫插針";
④多次對換,即所需的全部程序和數據要分成多次調入內存.
虛擬存儲器的容量主要受到指令中表示地址的字長和外存的容量的限制.
6. 虛擬存儲器技術主要用於解決什麼問題簡述虛擬存儲器的基本工作原理。
虛擬存儲器技術主要解決電笑磨腦內存不夠的問題,電腦中所運行的程序均需經由內存執行,若執行的姿擾程序佔用內存很大或很多,則會導致內存消耗殆盡。
為解決該問題,Windows中運用了虛擬內存技術,即勻出一部分硬碟空間來充當內存使用。當內存耗盡時,電腦就會自跡升旦動調用硬碟來充當內存,以緩解內存的緊張。若計算機運行程序或操作所需的隨機存儲器(RAM)不足時,則 Windows 會用虛擬存儲器進行補償。
工作原理
1、中央處理器訪問主存的邏輯地址分解成組號a和組內地址b,並對組號a進行地址變換,即將邏輯組號a作為索引,查地址變換表,以確定該組信息是否存放在主存內。
2、如該組號已在主存內,則轉而執行④;如果該組號不在主存內,則檢查主存中是否有空閑區,如果沒有,便將某個暫時不用的組調出送往輔存,以便將這組信息調入主存。
3、從輔存讀出所要的組,並送到主存空閑區,然後將那個空閑的物理組號a和邏輯組號a登錄在地址變換表中。
4、從地址變換表讀出與邏輯組號a對應的物理組號a。
5、從物理組號a和組內位元組地址b得到物理地址。
6、根據物理地址從主存中存取必要的信息。
(6)虛擬存儲管理原理擴展閱讀:
相關概念
1、實地址與虛地址
用戶編製程序時使用的地址稱為虛地址或邏輯地址,其對應的存儲空間稱為虛存空間或邏輯地址空間;而計算機物理內存的訪問地址則稱為實地址或物理地址,其對應的存儲空間稱為物理存儲空間或主存空間。程序進行虛地址到實地址轉換的過程稱為程序的再定位。
2、虛擬內存的訪問過程
虛存空間的用戶程序按照虛地址編程並存放在輔存中。程序運行時,由地址變換機構依據當時分配給該程序的實地址空間把程序的一部分調入實存。
每次訪存時,首先判斷該虛地址所對應的部分是否在實存中:如果是,則進行地址轉換並用實地址訪問主存;否則,按照某種演算法將輔存中的部分程序調度進內存,再按同樣的方法訪問主存。
3、異構體系
從虛存的概念可以看出,主存-輔存的訪問機制與cache-主存的訪問機制是類似的。這是由cache存儲器、主存和輔存構成的三級存儲體系中的兩個層次。cache和主存之間以及主存和輔存之間分別有輔助硬體和輔助軟硬體負責地址變換與管理,以便各級存儲器能夠組成有機的三級存儲體系。
7. 虛擬內存技術的工作原理
虛擬內存技術的工作原理是什麼?虛擬內存有什麼技術?下面由我來和大家一起了解吧!
虛擬內存技術介紹
虛擬內存別稱虛擬存儲器(Virtual Memory)。電腦中所運行的
程序均需經由內存執行,若執行的程序佔用內存很大或很多,則會導致內存消耗殆盡。為解決該問題,Windows中運用了虛擬內存[2] 技術,即勻出一部分硬碟空間來充當內存使用。當內存耗盡時,電腦就會自動調用硬碟來充當內存,以緩解內存的緊張。若計算機運行程序或操作所需的隨機存儲器(RAM)不足時,則 Windows 會用虛擬存儲器進行補償。它將計算機的RAM和硬碟上的臨時空間組合。當RAM運行速率緩慢時,它便將數據從RAM移動到稱為“分頁文件”的空間中。將數據移入分頁文件可釋放RAM,以便完成工作。 一般而言,計算機的RAM容量越大,程序運行得越快。若計算機的速率由於RAM可用空間匱乏而減緩,則可嘗試通過增加虛擬內存來進行補償。但是,計算機從RAM讀取數據的速率要比從硬碟讀取數據的速率快,因而擴增RAM容量(可加內存條)是最佳選擇。虛擬內存是Windows 為作為內存使用的一部分硬碟空間。虛擬內存在硬碟上其實就是為一個碩大無比的文件,文件名是PageFile.Sys,通常狀態下是看不到的。必須關閉資源管理器對系統文件的保護功能才能看到這個文件。虛擬內存有時候也被稱為是“頁面文件”就是從這個文件的文件名中來的。[2] 內存在計算機中的作用很大,電腦中所有運行的程序都需要經過內存來執行,如果執行的程序很大或很多,就會導致內存消耗殆盡。為了解決這個問題,WINDOWS運用了虛擬內存技術,即拿出一部分硬碟空間來充當內存使用,這部分空間即稱為虛擬內存,虛擬內存在硬碟上的存在形式就是 PAGEFILE.SYS這個頁面文件。
工作原理
虛擬存儲器是由硬體和 操作系統 自動實現存儲信息調度和管理的。它的工作過程包括6個步驟:
①中央處理器訪問主存的邏輯地址分解成組號a和組內地址b,並對組號a進行地址變換,即將邏輯組號a作為索引,查地址變換表,以確定該組信息是否存放在主存內。
②如該組號已在主存內,則轉而執行④;如果該組號不在主存內,則檢查主存中是否有空閑區,如果沒有,便將某個暫時不用的組調出送往輔存,以便將這組信息調入主存。
③從輔存讀出所要的組,並送到主存空閑區,然後將那個空閑的物理組號a和邏輯組號a登錄在地址變換表中。
④從地址變換表讀出與邏輯組號a對應的物理組號a。
⑤從物理組號a和組內位元組地址b得到物理地址。
⑥根據物理地址從主存中存取必要的信息。
8. 虛擬存儲技術的原理
從系統的觀點看,有三種主要的存儲虛擬化方法:
基於主機的虛擬存儲;
基於存儲設備的虛擬存儲;
基於網路的虛擬存儲。
方法1:基於主機的虛擬存儲
基於主機的虛擬存儲依賴於代理或管理軟體,它們安裝在一個或多個主機上,實現存儲虛擬化的控制和管理。由於控制軟體是運行在主機上,這就會佔用主機的處理時間。因此,這種方法的可擴充性較差,實際運行的性能不是很好。基於主機的方法也有可能影響到系統的穩定性和安全性,因為有可能導致不經意間越權訪問到受保護的數據。這種方法要求在主機上安裝適當的控制軟體,因此一個主機的故障可能影響整個SAN系統中數據的完整性。軟體控制的存儲虛擬化還可能由於不同存儲廠商軟硬體的差異而帶來不必要的互操作性開銷,所以這種方法的靈活性也比較差。
但是,因為不需要任何附加硬體,基於主機的虛擬化方法最容易實現,其設備成本最低。使用這種方法的供應商趨向於成為存儲管理領域的軟體廠商,而且目前已經有成熟的軟體產品。這些軟體可以提供便於使用的圖形介面,方便地用於SAN的管理和虛擬化,在主機和小型SAN結構中有著良好的負載平衡機制。從這個意義上看,基於主機的存儲虛擬化是一種性價比不錯的方法。
方法2:基於存儲設備的虛擬化
基於存儲設備的存儲虛擬化方法依賴於提供相關功能的存儲模塊。如果沒有第三方的虛擬軟體,基於存儲的虛擬化經常只能提供一種不完全的存儲虛擬化解決方案。對於包含多廠商存儲設備的SAN存儲系統,這種方法的運行效果並不是很好。依賴於存儲供應商的功能模塊將會在系統中排斥JBODS(Just a Bunch of Disks,簡單的硬碟組)和簡單存儲設備的使用,因為這些設備並沒有提供存儲虛擬化的功能。當然,利用這種方法意味著最終將鎖定某一家單獨的存儲供應商。
基於存儲的虛擬化方法也有一些優勢:在存儲系統中這種方法較容易實現,容易和某個特定存儲供應商的設備相協調,所以更容易管理,同時它對用戶或管理人員都是透明的。但是,我們必須注意到,因為缺乏足夠的軟體進行支持,這就使得解決方案更難以客戶化(customzing)和監控。
方法3:基於網路的虛擬存儲
基於網路的虛擬化方法是在網路設備之間實現存儲虛擬化功能,具體有下面幾種方式:
1. 基於互聯設備的虛擬化
基於互聯設備的方法如果是對稱的,那麼控制信息和數據走在同一條通道上;如果是不對稱的,控制信息和數據走在不同的路徑上。在對稱的方式下,互聯設備可能成為瓶頸,但是多重設備管理和負載平衡機制可以減緩瓶頸的矛盾。同時,多重設備管理環境中,當一個設備發生故障時,也比較容易支持伺服器實現故障接替。但是,這將產生多個SAN孤島,因為一個設備僅控制與它所連接的存儲系統。非對稱式虛擬存儲比對稱式更具有可擴展性,因為數據和控制信息的路徑是分離的。
基於互聯設備的虛擬化方法能夠在專用伺服器上運行,使用標准操作系統,例如Windows、Sun Solaris、Linux或供應商提供的操作系統。這種方法運行在標准操作系統中,具有基於主機方法的諸多優勢--易使用、設備便宜。許多基於設備的虛擬化提供商也提供附加的功能模塊來改善系統的整體性能,能夠獲得比標准操作系統更好的性能和更完善的功能,但需要更高的硬體成本。
但是,基於設備的方法也繼承了基於主機虛擬化方法的一些缺陷,因為它仍然需要一個運行在主機上的代理軟體或基於主機的適配器,任何主機的故障或不適當的主機配置都可能導致訪問到不被保護的數據。同時,在異構操作系統間的互操作性仍然是一個問題。
3. 基於路由器的虛擬化
基於路由器的方法是在路由器固件上實現存儲虛擬化功能。供應商通常也提供運行在主機上的附加軟體來進一步增強存儲管理能力。在此方法中,路由器被放置於每個主機到存儲網路的數據通道中,用來截取網路中任何一個從主機到存儲系統的命令。由於路由器潛在地為每一台主機服務,大多數控制模塊存在於路由器的固件中,相對於基於主機和大多數基於互聯設備的方法,這種方法的性能更好、效果更佳。由於不依賴於在每個主機上運行的代理伺服器,這種方法比基於主機或基於設備的方法具有更好的安全性。當連接主機到存儲網路的路由器出現故障時,仍然可能導致主機上的數據不能被訪問。但是只有聯結於故障路由器的主機才會受到影響,其他主機仍然可以通過其他路由器訪問存儲系統。路由器的冗餘可以支持動態多路徑,這也為上述故障問題提供了一個解決方法。由於路由器經常作為協議轉換的橋梁,基於路由器的方法也可以在異構操作系統和多供應商存儲環境之間提供互操作性。
9. 什麼是虛擬存儲器和局部性原理
虛擬存儲器:是指具有請求調入功能和置換功能,能從邏輯上對內存容量進行擴充的一種存儲器系統。在虛擬存儲器系統中,作業無需全部裝入,只要裝入一部分就可運行。
引入虛擬存儲技術之後,可以:
1、提高內存利用率;(如:定義100*100大小的數組,可能只用到10*10個元素)
2、程序不再受現有物理內存空間的限制;編程變得更容易;
3、可以提高多道程序度,使更多的程序能夠進入內存運行。程序局部性原理:虛擬存儲管理的效率與程序局部性程序有很大關系。根據統計,進程運行時,在一段時間內,其程序的執行往往呈現出高度的局限性,包括時間局部性和空間局部性。
1、時間局部性:是指若一條指令被執行,則在不久的將來,它可能再被執行。
2、空間局部性:是指一旦一個存儲單元被訪問,那它附近的單元也將很快被訪問。
10. 虛擬存儲管理的基本原理是什麼
虛擬存儲器的概念 為解決內存小而作業大、作業多的矛盾, 以及執行過程中只是把當前運行需要的那部分程序和數據裝入內存。 所以,操作系統把各級存儲器統一管理起來。
就是說, 應該把一個程序當前正在使用的部分放在內存, 而其餘部分放在磁碟上,就啟動執行它。
操作系統根據程序執行時的要求和內存的實際使用情況, 隨機地對每個程序進行換入/換出。 這樣, 就給用戶提供一個比正式的內存空間大的多的地址空間, 這就是虛擬存儲器。
所謂虛擬存儲器是用戶能作為可編址內存對待的存儲空間, 在這種計算機系統中虛地址被映射成實地址。
簡單地說,虛擬存儲器:是由操作系統提供的一個假想的特大存儲器。
就是說, 虛擬存儲器並不是實際的內存,它的大小比內存空間大的多;
用戶感覺所能使用的「內存」非常大, 但這是操作系統對物理內存的擴充。 它的物質基礎是:
二級存儲器結構、和動態地址轉換(DAT)。
機構虛擬存儲器的基本特徵:
虛擬擴充。 虛擬存儲器不是物理上擴充內存空間, 而是邏輯上擴充了內存容量。 部分裝入。
每個作業不是全部一次的裝入內存, 而是分成若幹部分。 離散分配。 一個作業分成多個部分,沒有全部裝入內存。
即使裝入內存的那些部分也不必佔用連續的內存空間, 而是「見縫插針」。 多次對換。
在一個進程運行期間, 它所需的全部程序和數就要分成多次調入內存。
注意:
虛擬存儲器的容量雖然提供了特大的地址空間, 用戶在編程時一般不應考慮可用空間有多大。 但是, 虛擬存儲器的容量不是無限大的。
它主要受兩方面的限制:
(1)機器指令中表示地址的二進制數是有限的;
(2)外存的容量也是有限的。