段頁式虛擬存儲器
❶ 電腦內存16g還需要設置虛擬內存嗎
當電腦的內存到16G的時候還需要設置虛擬內存嗎,下面是我帶來的關電腦內存16g還需要設置虛擬內存嗎於的內容,歡迎閱讀!
電腦內存16g還需要設置虛擬內存嗎?
不需要
內存16G的電腦,虛擬內存可以設置為跟物理內存相同的16G,也可以設置為0;推薦設置0.
1、windows一般將 操作系統 的虛擬內設置為物理內存的1~1.5倍大小,在早期win98~win2000時代,內存很小(32M內存居多,後來64M,128M),經常不夠用,所以需要在硬碟上劃定一塊區域,當做“虛擬內存”使用;到XP時代,前期128~256M較多,後期512M~1G內存容量之間
2、隨著操作系統發展,物理內存容量也越來越大;隨著當前大容量內存的使用,操作系統中各種運算都能從物理內存中找到足夠空間;沒必要再在硬碟上劃分一塊虛擬內存區域,畢竟“虛擬內存”運行效率遠不可跟物理內存相比,而且還減少硬碟空間佔用。
虛擬內存的工作原理:
虛擬存儲器是由硬體和操作系統自動實現存儲信息調度和管理的。它的工作過程包括6個步驟:
①中央處理器訪問主存的邏輯地址分解成組號a和組內地址b,並對組號a進行地址變換,即將邏輯組號a作為索引,查地址變換表,以確定該組信息是否存放在主存內。
②如該組號已在主存內,則轉而執行④;如果該組號不在主存內,則檢查主存中是否有空閑區,如果沒有,便將某個暫時不用的組調出送往輔存,以便將這組信息調入主存。
③從輔存讀出所要的組,並送到主存空閑區,然後將那個空閑的物理組號a和邏輯組號a登錄在地址變換表中。
④從地址變換表讀出與邏輯組號a對應的物理組號a。
⑤從物理組號a和組內位元組地址b得到物理地址。
⑥根據物理地址從主存中存取必要的信息。
調度方式有分頁式、段式、段頁式3種。頁式調度是將邏輯和物理地址空間都分成固定大小的頁。主存按頁順序編號,而每個獨立編址的程序空間有自己的頁號順序,通過調度輔存中程序的各頁可以離散裝入主存中不同的頁面位置,並可據表一一對應檢索。頁式調度的優點是頁內零頭小,頁表對程序員來說是透明的,地址變換快,調入操作簡單;缺點是各頁不是程序的獨立模塊,不便於實現程序和數據的保護。段式調度是按程序的邏輯結構劃分地址空間,段的長度是隨意的,並且允許伸長,它的優點是消除了內存零頭,易於實現存儲保護,便於程序動態裝配;缺點是調入操作復雜。將這兩種 方法 結合起來便構成段頁式調度。在段頁式調度中把物理空間分成頁,程序按模塊分段,每個段再分成與物理空間頁同樣小的頁面。段頁式調度綜合了段式和頁式的優點。其缺點是增加了硬體成本,軟體也較復雜。大型通用計算機系統多數採用段頁式調度。
看了"電腦內存16g還需要設置虛擬內存嗎" 文章 內容的人還看:
1. 電腦虛擬內存設置多少合適
2. 1g虛擬內存怎麼設置最好
3. 虛擬內存如何設置
4. 電腦虛擬內存設置多少
5. 筆記本電腦設置虛擬內存的常識和常見誤區
6. win7電腦如何設置虛擬內存
7. 虛擬內存設置多少合適
8. 虛擬內存一般設置多少
9. 電腦虛擬內存怎麼設置最好
10. 怎麼正確設置Windows 7虛擬內存
❷ 什麼是段頁式虛擬存儲器有什麼特點
段式虛擬存儲器是按程序的邏輯結構劃分地址空間,段的長度是隨意的,並且允許伸長,它的優點是消除了內存零頭,易於實現存儲保護,便於程序動態裝配;缺點是調入操作復雜。將這兩種方法結合起來便構成段頁式調度。在段頁式調度中把物理空間分成頁,程序按模塊分段,每個段再分成與物理空間頁同樣小的頁面。
❸ 虛擬存儲器技術主要用於解決什麼問題簡述虛擬存儲器的基本工作原理。
虛擬存儲器技術主要解決電腦內存不夠的問題,電腦中所運行的程序均需經由內存執行,若執行的程序佔用內存很大或很多,則會導致內存消耗殆盡。
為解決該問題,Windows中運用了虛擬內存技術,即勻出一部分硬碟空間來充當內存使用。當內存耗盡時,電腦就會自動調用硬碟來充當內存,以緩解內存的緊張。若計算機運行程序或操作所需的隨機存儲器(RAM)不足時,則 Windows 會用虛擬存儲器進行補償。
工作原理
1、中央處理器訪問主存的邏輯地址分解成組號a和組內地址b,並對組號a進行地址變換,即將邏輯組號a作為索引,查地址變換表,以確定該組信息是否存放在主存內。
2、如該組號已在主存內,則轉而執行④;如果該組號不在主存內,則檢查主存中是否有空閑區,如果沒有,便將某個暫時不用的組調出送往輔存,以便將這組信息調入主存。
3、從輔存讀出所要的組,並送到主存空閑區,然後將那個空閑的物理組號a和邏輯組號a登錄在地址變換表中。
4、從地址變換表讀出與邏輯組號a對應的物理組號a。
5、從物理組號a和組內位元組地址b得到物理地址。
6、根據物理地址從主存中存取必要的信息。
(3)段頁式虛擬存儲器擴展閱讀:
相關概念
1、實地址與虛地址
用戶編製程序時使用的地址稱為虛地址或邏輯地址,其對應的存儲空間稱為虛存空間或邏輯地址空間;而計算機物理內存的訪問地址則稱為實地址或物理地址,其對應的存儲空間稱為物理存儲空間或主存空間。程序進行虛地址到實地址轉換的過程稱為程序的再定位。
2、虛擬內存的訪問過程
虛存空間的用戶程序按照虛地址編程並存放在輔存中。程序運行時,由地址變換機構依據當時分配給該程序的實地址空間把程序的一部分調入實存。
每次訪存時,首先判斷該虛地址所對應的部分是否在實存中:如果是,則進行地址轉換並用實地址訪問主存;否則,按照某種演算法將輔存中的部分程序調度進內存,再按同樣的方法訪問主存。
3、異構體系
從虛存的概念可以看出,主存-輔存的訪問機制與cache-主存的訪問機制是類似的。這是由cache存儲器、主存和輔存構成的三級存儲體系中的兩個層次。cache和主存之間以及主存和輔存之間分別有輔助硬體和輔助軟硬體負責地址變換與管理,以便各級存儲器能夠組成有機的三級存儲體系。
❹ 計算機考研考什麼
計算機歷年考研真題
鏈接:https://pan..com/s/1S0XYQQBxtaFkIAOpoymp9Q
提取碼:cugd
若資源有疑問歡迎追問
❺ 什麼是虛擬內存呀
虛擬內存是計算機系統內存管理的一種技術。它使得應用程序認為它擁有連續的可用的內存(一個連續完整的地址空間),而實際上,它通常是被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁碟存儲器上,在需要時進行數據交換。
別稱虛擬存儲器(Virtual Memory)。電腦中所運行的
程序均需經由內存執行,若執行的程序佔用內存很大或很多,則會導致內存消耗殆盡。為解決該問題,Windows中運用了虛擬內存[1]技術,即勻出一部分硬碟空間來充當內存使用。當內存耗盡時,電腦就會自動調用硬碟來充當內存,以緩解內存的緊張。若計算機運行程序或操作所需的隨機存儲器(RAM)不足時,則 Windows 會用虛擬存儲器進行補償。它將計算機的RAM和硬碟上的臨時空間組合。當RAM運行速率緩慢時,它便將數據從RAM移動到稱為「分頁文件」的空間中。將數據移入分頁文件可釋放RAM,以便完成工作。 一般而言,計算機的RAM容量越大,程序運行得越快。若計算機的速率由於RAM可用空間匱乏而減緩,則可嘗試通過增加虛擬內存來進行補償。但是,計算機從RAM讀取數據的速率要比從硬碟讀取數據的速率快,因而擴增RAM容量(可加內存條)是最佳選擇。
虛擬內存是Windows 為作為內存使用的一部分硬碟空間。即便物理內存很大,虛擬內存也是必不可少的。虛擬內存在硬碟上其實就是為一個碩大無比的文件,文件名是PageFile.Sys,通常狀態下是看不到的。必須關閉資源管理器對系統文件的保護功能才能看到這個文件。虛擬內存有時候也被稱為是「頁面文件」就是從這個文件的文件名中來的。
[1]內存在計算機中的作用很大,電腦中所有運行的程序都需要經過內存來執行,如果執行的程序很大或很多,就會導致內存消耗殆盡。為了解決這個問題,WINDOWS運用了虛擬內存技術,即拿出一部分硬碟空間來充當內存使用,這部分空間即稱為虛擬內存,虛擬內存在硬碟上的存在形式就是 PAGEFILE.SYS這個頁面文件。
2
7虛擬存儲器段頁式調度編輯
[2]段頁式虛擬存儲器是段式虛擬存儲器和頁式虛擬存儲器的結合。實存被等分成頁。每個程序則先按邏輯結構分段,每段再按照實存的頁大小分頁,程序按頁進行調入和調出操作,但可按段進行編程、保護和共享。它把程序按邏輯單位分段以後,再把每段分成固定大小的頁。程序對主存的調入調出是按頁面進行的,但它又可以按段實現共享和保護,兼備頁式和段式的優點。缺點是在映象過程中需要多次查表。在段頁式虛擬存儲系統中,每道程序是通過一個段表和一組頁表來進行定位的。段表中的每個表目對應一個段,每個表目有一個指向該段的頁表起始地址及該段的控制保護信息。由頁表指明該段各頁在主存中的位置以及是否已裝入、已修改等狀態信息。如果有多個用戶在機器上運行,多道程序的每一道需要一個基號,由它指明該道程序的段表起始地址。虛擬地址格式如下:
基號 段號 頁號 頁內地址
8虛擬存儲器變換演算法編輯
[2]虛擬存儲器地址變換基本上有3種形虛擬存儲器工作過程式:全聯想變換、直接變換和組聯想變換。任何邏輯空間頁面能夠變換到物理空間任何頁面位置的方式稱為全聯想變換。每個邏輯空間頁面只能變換到物理空間一個特定頁面的方式稱為直接變換。組聯想變換是指各組之間是直接變換,而組內各頁間則是全聯想變換。替換規則用來確定替換主存中哪一部分,以便騰空部分主存,存放來自輔存要調入的那部分內容。常見的替換演算法有4種。
①隨機演算法:用軟體或硬體隨機數產生器確定替換的頁面。
②先進先出:先調入主存的頁面先替換。
③近期最少使用演算法:替換最長時間不用的頁面。
④最優演算法:替換最長時間以後才使用的頁面。這是理想化的演算法,只能作為衡量其他各種演算法優劣的標准。
虛擬存儲器的效率是系統性能評價的重要內容,它與主存容量、頁面大小、命中率,程序局部性和替換演算法等因素有關。[
9虛擬內存不足的成因編輯
【1】、感染病毒:有些病毒發作時會佔用大量內存空間,導致系統出現內存不足問題。
【2】、虛擬內存設置不當:通常,應設置為物理內存大小的2倍。若設置過小,則會影響系統程序的正常運行。此時便需重設虛擬內存數值,以「Windows XP」為例,右擊「我的電腦」,選擇「屬性」,在「高級」標簽頁點擊「性能」框中的「設置」按鈕,切換至「高級」標簽頁,後在「虛擬內存」框中點擊「更改」按鈕,接著重設虛擬內存數值,再點「設置」並「確定」,完後重啟系統即可。
【3】、系統盤空間不足:在默認情況下,虛擬內存是以名為「Pagefile.sys」的交換文件存於硬碟的系統分區中。若系統盤剩餘容量過小,即會出現該問題。系統盤至少應留有300MB的可用空間,當然此數值需據用戶的實際需要而定。盡量不要將各種應用軟體裝在系統盤,以保證有足夠的空間供虛擬內存文件使用,且最好將虛擬內存文件安放至非系統盤內。
【4】、System用戶許可權設置不當:基於NT內核的Windows系統啟動時,System用戶會為系統創建虛擬內存文件。有些用戶為了系統的安全,採用NTFS文件系統,但卻取消了System用戶在系統盤「寫入」和「修改」的許可權,這樣就無法為系統創建虛擬內存文件,運行大型程序時,也會出現此類問題。對策:重新賦予System用戶「寫入」和「修改」的許可權即可。(註:該僅限於使用NTFS文件系統的用戶。)
10合理設置編輯
如何確定虛擬內存大小?
新手篇
由系統或系統優化軟體分配或設置為物理內存的1.5-3倍。
老手篇
事實上,嚴格按照1.5-3倍的倍數關系來設置並不科學,因此我們可以根據系統的實際應用情況進行設置。在這過程中需要用到Windows 2000/XP Pro/2003自帶的性能監視器。
運行「perfmon.msc」打開性能監視器,展開左側的性能日誌和警報,並點擊選擇計數器日誌,在右側的面板中空白處點擊滑鼠右鍵,選擇新建日誌設置,並命名為Pagefile,然後回車確認。
在常規選項卡下,點擊添加計數器按鈕,在新彈出的窗口的性能對象下拉菜單中選擇Paging File,並選擇「從列表選擇計數器」,然後點擊% Usage Peak,在範例中選擇「_Total」,並接著點擊「添加」按鈕。
然後關閉這個窗口,並點擊圖三中的「確定」按鈕。點擊「是」創建日誌文件。接著打開「日誌文件」選項卡,在日誌文件類型下拉菜單中選則「文本文件(逗號分隔)」,然後記住「例如」框中顯示的日誌文件的路徑。
這樣,點擊確定後這個計數器已經開始運行了,你可以在電腦上進行你的日常操作,並盡可能多的打開和關閉各種經常使用的應用程序和游戲。經過幾個小時的使用,基本上計數器已經可以對你的使用情況做出一個完整的評估。
這時你需要先停止這個記數器的運行,同樣是在計數器日誌窗口中,選中我們新建的Page File記數器,然後右鍵點擊,並且選擇停止。用記事本打開日誌文件。
需要注意的是,在日誌中的數值並不是分頁文件的使用量,而是使用率。也就是說,根據日誌文件的顯示,該系統一般情況下的分頁文件只使用了25%左右,而系統當前設置的分頁文件足有2GB,那麼為了節省硬碟空間,完全可以把分頁文件最大值縮小為512MB大小。而對於最小值,可以先根據日誌中的佔用率求出平均佔用率,然後再與最大值相乘,就可以得到了。
相關信息
虛擬內存的位置
在設置虛擬內存的時候還需要注意,如果你有超過一塊硬碟,那麼最好能把分頁文件設置在沒有安裝操作系統或應用程序的硬碟上,或者所有硬碟中速率最快的硬碟上。這樣在系統繁忙的時候才不會產生同一個硬碟既忙於讀取應用程序的數據又同時進行分頁操作的情況。相反,如果應用程序和分頁文件在不同的硬碟上,這樣才能最大程度降低硬碟利用率,同時提高效率。當然,如果你只有一個硬碟,那麼把頁面文件設置在其他分區,也不會有提高磁碟效率的效果。
虛擬內存頁面文件與磁碟碎片
由於虛擬內存使用了硬碟,硬碟上非連續寫入的文件會產生磁碟碎片,因此一旦用於實現虛擬內存的文件或分區過於零碎,會加長硬碟的尋道時間,影響系統性能。有觀點誤認為Windows系統頻繁讀寫pagefile.sys就會產生磁碟碎片,實則不然。因為pagefile.sys文件一旦創立,在分區中的分布連續形式就固定下來,文件內部讀寫並不增加或減少pagefile.sys的文件大小。僅當頁面文件告罄後系統創建的temppf.sys會帶來磁碟碎片。 而在Linux系統中,將用於虛擬內存的部分置於單獨的分區中,不影響其他的分區或文件,則基本杜絕了磁碟碎片帶來的影響。
虛擬內存太低的解決辦法
一般windowsXP默認情況下是利用C盤的剩餘空間來做虛擬內存的,因此,C盤的剩餘空間越大,對系統運行就越好,虛擬內存是隨著你的使用而動態地變化的,這樣C盤就容易產生磁碟碎片,影響系統運行速率,所以,最好將虛擬內存設置在其它分區,如D盤中。查看虛擬內存設置情況如下:
右鍵點「我的電腦」,左鍵點「屬性」,點選「高級」選項卡,點「性能」里的「設置」按鈕,再選「高級」選項卡,點下面的「更改」按鈕,所彈出的窗口就是虛擬內存設置窗口,一般默認的虛擬內存是從小到大的一段取值范圍,這就是虛擬內存變化大小的范圍,最好給它一個固定值,這樣就不容易產生磁碟碎片了,具體數值根據你的物理內存大小來定,一般為物理內存的1.5到3倍,如512M內存,可以設置256-768MB(內存+虛擬內存之和一般比正常佔用高256MB即可)。1GB的內存的話,設為128-1024MB(內存+虛擬內存之和一般比正常佔用高256-512MB即可),2GB內存以上的話,一般可以禁用虛擬內存了,部分確實會使用大量內存的人,如玩大型3D游戲、製作大幅圖片、3D建模等,並收到系統內存不足警告的,才需要酌情設定虛擬內存[3],設置方法如下:
假設內存為256M,虛擬內存放在D盤,先要將默認的清除,保持C盤為選中狀態,單選「無分頁文件(N)」再按「設置」按鈕,此時C盤旁的虛擬內存就消失了,然後選中D盤,單選「自定義大小」,在下面的「初始大小」和「最大值」兩個方框里都添上512,再點一下「設置」按鈕,會看到D盤的旁邊出現了「512-512」的字樣,這樣就說明設置好了,再一路確定,最終,系統會要重新啟動,重啟一下,便完成了設置。
設置方法
手動設置
找出最合適的虛擬內存大小范圍值後,
①用右鍵點擊桌面上的「我的電腦」圖標,在出現的右鍵菜單中選「屬性」選項打開「系統屬性」窗口。在窗口中點擊「高級」選項卡,出現高級設置的對話框
②點擊「性能」區域的「設置」按鈕,在出現的「性能選項」窗口中選擇「高級」選項卡,打開其對話框。
③在該對話框中可看到關於虛擬內存的區域,點擊「更改」按鈕進入「虛擬內存」的設置窗口。選擇一個有較大空閑容量的分區,勾選「自定義大小」前的復選框,將具體數值填入「初始大小」、「最大值」欄中,而後依次點擊「設置→確定」按鈕即可,最後重新啟動計算機使虛擬內存設置生效。
調整分頁位置
虛擬內存的顯示
Windows9x的虛擬內存分頁位置,其實就是保存在C盤根目錄下的一個虛擬內存文件(也稱為交換文件)Win386.swp,它的存放位置可以是任何一個分區,如果系統盤C容量有限,我們可以把Win386.swp調到別的分區中,方法是在記事本中打開System.ini(C:Windows下)文件,在[386Enh]小節中,將「PagingDrive=C:WindowsWin386.swp」,改為其他分區的路徑,如將交換文件放在D:中,則改為「PagingDrive=D:Win386.swp」,如沒有上述語句可以直接鍵入即可。
而對於使用Windows2000和WindowsXP的,可以選擇「控制面板→系統→高級→性能」中的「設置→高級→更改」,打開虛擬內存設置窗口,在驅動器[卷標]中默認選擇的是系統所在的分區,如果想更改到其他分區中,首先要把原先的分區設置為無分頁文件,然後再選擇其他分區。
或者,WinXP一般要求物理內存在256M以上。如果你喜歡玩大型3D游戲,而內存(包括顯存)又不夠大,系統會經常提示說虛擬內存不夠,系統會自動調整(虛擬內存設置為系統管理)。
注意事項
允許設置的虛擬內存最小值為2MB,最大值不能超過當前硬碟的剩餘空間值,同時也不能超過32位操作系統的內存定址范圍——4GB。
禁用頁面文件
當擁有了1G以上的內存時,頁面文件的作用將不再明顯,因此我們可以將其禁用。方法是:依次進入注冊表編輯器「HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\MemoryManagement」下,在「DisablePagingExecutive」(禁用頁面文件)選項中將其值設為「1」即可。
PS:此舉可能會造成系統不穩定.某些程序無法運行或死機。請根據自己實際情況更改。
1G以上內存就比較夠用了,玩游戲、使用大型軟體不推薦禁用虛擬內存。當然如果內存有2G的時候,可以根據自己的實際情況選擇虛擬內存的使用大小(我個人認為2G內存可以禁用虛擬內存以提升系統性能,VISTA系統內存使用比較大,可以根據實際情況設定)。
清空頁面文件
在同一位置上有一個「ClearPageFileAtShutdown(關機時清除頁面文件)」,將該值設為「1」。這里所說的「清除」頁面文件並非是指從硬碟上完全刪除pagefile.sys文件,而是對其進行「清洗」和整理,根據微軟的說法,這是一個安全選項,與性能無關。
高級話題:使用 SweepRAM 工具。適用於 Windows 2000/XP/2003。網上可以找到 SweepRAM 程序。該程序最大的作用是把所有進程的工作集清空。所謂工作集是指進程已映射的物理內存部分(即這些內存塊全在物理內存中,並且 CPU 可以直接訪問),還有一部分不在工作集中的虛擬內存則可能在轉換列表中(CPU 不能通過虛地址訪問,需要 Windows 映射之後才能訪問),還有一部分則在磁碟上的頁面文件里。工作集在進程運行時會被 Windows 自動調整,頻繁訪問的頁面(4KB 的塊)會留在內存中,而不頻繁訪問的頁面在內存緊張時會被從工作集中移出,暫時保存在內存中的「轉換列表」中,或者進一步換出到頁面文件中。當應用程序再次訪問某一頁面時,操作系統會將它重新加回工作集中。
SweepRAM 工具以一種適中的頻率(大約 40 分鍾一次)反復運行,可以將各進程的工作集清空,而之後各進程的工作集會慢慢恢復。這樣可以保持更好的工作集平衡,從而提高系統性能。
關機自動清除
設置步驟如下:
運行:gpedit.msc進入組策略對象編輯器。
如圖依次打開如下內容:「計算機配置」---「Windows 設置」---「安全設置」---「本地策略」---「安全選項」---「關機:清除虛擬內存頁面」。
右擊「屬性」點擊「已啟用」。
確定,這樣設置就ok了。
對於沒有組策略的解決方案如下:
按系統快捷鍵win+r運行regedit打開注冊表編輯器。
查找到「HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Memory Management」,然後在右邊的列表中雙擊「ClearPageFileAtShutdown」。
在彈出的「編輯DWORD」值對話框中改為1。
重新啟動計算機,使修改生效。
頁面文件,文件的大小由你對系統的設置決定。具體設置方法如下:打開"我的電腦"的"屬性"設置窗口,切換到"高級"選項卡,在"啟動和故障恢復"窗口的"寫入調試信息"欄,如果你採用的是試和錯誤報告了。所以折中的辦法是在系統盤設置較小的頁面文件,只要夠用就行了。
內存,其最小值設置為物理內存的1.5倍,最大值設置為物理內存的3倍,該分區專門用來存儲頁面文件,不要再存放其它任何文件。之所以單獨劃分一個分區用來設置虛擬內存,主要是基於兩點考慮:其一,由於該分區上沒有其它文件,這樣分區不會產生磁碟碎片,這樣能保證頁面文件的數據讀寫不受磁碟碎片的干擾;其二,按照Windows對內存的管理技術,Windows會優先使用不經常訪問的分區上的頁面文件,這樣也減少了讀取系統盤里的頁面文件的機會,減輕了系統盤的壓力。
頁面文件,則其它硬碟分區不設置任何頁面文件。因為過多的分區設置頁面文件,這樣會導致,硬碟磁頭反復的在不同的分區來回讀取。這樣既耽誤了系統速率,也會減少硬碟的壽命。當然,如果你有多個硬碟,則可以為每個硬碟都創建一個頁面文件。當信息分布在多個頁面文件上時,硬碟控制器可以同時在多個硬碟上執行讀取和寫入操作。這樣系統性能將得到提高。[1]
需要注意!設置過大的虛擬內存將導致關機過慢甚至幾十分鍾,例如2G電腦設置16G虛擬內存雖然增加了電腦性能但是關機可能需要幾分鍾。
希望採納!
❻ 實現頁式虛擬存儲器需要哪些軟體支持
不需要軟體的支持。:頁式虛擬存儲器是把程序按邏輯結構分段、每段劃分為固定大小的頁,主存空間也劃分為相等的頁,程序對內存的調入、調出扔以頁為基本傳送單位,因此不許要軟體的支持。虛擬存儲器(VirtualMemory):在具有層次結構存儲器的計算機系統中,自動實現部分裝入和部分替換功能,能從邏輯上為用戶提供一個比物理貯存容量大得多,可定址的「主存儲器」。
❼ 計算機組成原理——虛擬存儲器
(1)程序員在比實際主存大得多的邏輯地址空間中編寫程序
(2)程序執行時,把當前需要的程序段和數據塊掉入主存,其他暫不使用的放在磁碟上
(3)執行指令時,通過硬體將邏輯地址轉化為物理地址。虛擬地址高位為虛頁號,低位為頁內偏移地址
(4)當程序發生數據訪問或程序訪問失效(缺頁時),由操作系統把信息從磁碟調入主存中
(1)基本思想:
內存被分成固定長度且長度較小的存儲塊(頁框,實頁,物理頁)
每個進程也被劃分為固定長度的程序塊(頁,虛頁,邏輯頁)
通過頁表,實現邏輯地址想物理地址的轉化
(2)邏輯地址
程序中指令所使用的地址(進程所在地址空間)
(3)物理地址
存放指令或數據的實際內存地址
(1)與「cache-主存」層次相比,頁大小遠比cache的行大小要大(windows中的頁位4k)
(2)採用全相聯映射方式:磁碟中的任意一個頁能用射到內存中的任意一個頁
因為缺頁導致中斷時,操作系統從磁碟拿數據通常要耗費幾百萬個時鍾周期。增大頁大小,可以減少缺頁中斷
(3)為什麼讓軟體處理「缺頁」
因為訪問磁碟需要好粉幾百萬個時鍾周期,硬體即使能立刻把地址打給磁碟,磁碟也不能立即響應
(4)為什麼地址轉換用硬體實現
硬體實現地址轉換可以加快指令的執行速度
(5)為什麼頁寫會策略採用write back
避免頻繁的慢速磁碟訪問
頁表的首地址放在基址寄存器。採用基址定址方式
每個頁表項前面有一個虛頁號:從0開始遞增的序號。頁表項又分為幾個結構:
(1)裝入位:該頁是否在內存中
(2)修改位:該也在內存中是否被修改
(3)替換控制位:用於clock演算法
(4)其他
(5)實頁號(8進制)
(1)一次磁碟引用需要訪問幾次主存?2次,一次查頁表,一次查物理地址。於是,把經常查的頁表放到cache中。這種在cache頁表項組成的頁表稱為TLB(Translation Lookside Buffer)
(2)TLB的頁表結構:tag + 主存中的頁表項
當採用全相連映射時,tag為頁表項前面的虛頁號。需要把tag和虛頁號一一比較
當採用組相聯映射時,tag被分為tag+index,虛頁號的高位為tag,虛頁號的低位為index,做組內索引(屬於組內第幾行)
1.段式存儲是根據程序邏輯,給程序分段。使得每段大小不同。這種虛擬地址劃分方法適合程序設計
2.段式存儲的虛擬地址由段號和段內偏移地址組成。段式虛擬存儲器到物理地址的映射通過段表實現
3.段式虛擬存儲會造成空頁
1.段頁式虛擬存儲,先把程序按照邏輯分成段,再把每段分成固定大小的頁。
2.程序對主存的調入調出是按照頁面進行的;但他有可以根據段實現共享和保護
3.缺點是段頁式虛擬地址轉換成物理地址需要查詢2個表:段表和頁表。段表找到相應頁表的位置,頁表找到想也頁的位置
4.段頁式細膩地址的結構可以為以下形式:
程序地址: 用戶號(進程pid) | 段號 | 頁號 | 頁內偏移地址
(1)某計算機的cache塊工16塊,採用二路組相聯映射方式,每個主存塊大小為32位元組,按照位元組編制。則主存129號單元的主存塊硬裝如刀cache的組號是:(C)A、0 B、2 C、4 D、6
解:二路組相聯,所以每組2塊,共有16/2=8組,所以組號佔3位。
每塊32位元組,所以塊內地址佔5位。
129轉化為二進制:1000 0001:前3位為組號,100:=4
(2)假設用若干個2K4位的晶元組成一個8K8位的存儲器,則地址0B1FH所在晶元的最小地址為:
解:用2片組成一行,共4行,所以片選地址佔2位。片內地址有2k=211,所以佔11位
0B1FH:000|0 1|011 0001 1111 這三段為前綴,片選地址,片內地址。
該片晶元的最小地址是片內地址全0:000|0 1|000 0000 0000 = 0800H
(3)某計算機的主存地址空間大小為256MB,按位元組編址,指令cache和數據cache分離,均有8個cache行,每行大小為64B,數據cache採用直接映射方式,現有兩個程序A,B對數組int a[256][256]進行遍歷,程序A按行遍歷,程序B按列遍歷。假定int類型數據用32位補碼表示,數組a按行優先方式存儲,其地址為320(十進制)。
問:(1) 若不考慮cache一致性維護和替換演算法所需的控制位,則數據cache的總容量佔多少?
(2) 數組元素a[0][31]和a[1][1]各自所在主存塊對應的cache行號分別為多少(cache從0行開始)?
(3)程序A和B的數據訪問命中率各自為多少?哪個程序的執行時間更短?
解:(1) 因為cache的總容量是cache每行的數據存儲大小+tag位+數據是否有效位+其他一致性控制位。
主存地址空間256MB,佔28位。直接映射方式,8行,行號佔3位。每行64B,所以塊內地址佔6位,因此,tag佔28-3-6=19位
每行有一個數據有效位。因此,cache共(19+1+648)8 = 532位元組
(2) 因為int類型佔32位,所以一個int佔4B。a[0][31] = 320 + 314 = 444 a1 = 320 + 4(256+1) = 1348。
塊內地址佔6位,直接映射下行號佔3位,因此444 = 110 | 111100,所以行號為6
1348 = 10 | 101 | 000100,所以行號為5
(3) 因為1行cache佔64B,每個int數佔4B,所以一行有16個數。第一個數會因cache缺失而不命中,然後調入cache。,使得後面的15個int訪問全部命中。所以命中率為1516 對於程序B,每次調入16個數,小於數組每行的128個元素,因此每次都不會命中,命中率為0
❽ 虛擬存儲器按地址格式不同可分為哪幾種
根據地址格式不同,虛擬存儲器分為:頁式虛擬存儲器、段式虛擬存儲器和段頁式虛擬存儲器。
❾ 虛擬內存的調度介紹
1、頁式虛存地址映射頁式虛擬存儲系統中,虛地址空間被分成等長大小的頁,稱為邏輯頁;主存空間也被分成同樣大小的頁,稱為物理頁。相應地,虛地址分為兩個欄位:高欄位為邏輯頁號,低欄位為頁內地址(偏移量);實存地址也分兩個欄位:高欄位為物理頁號,低欄位為頁內地址。通過頁表可以把虛地址(邏輯地址)轉換成物理地址。
在大多數系統中,每個進程對應一個頁表。頁表中對應每一個虛存頁面有一個表項,表項的內容包含該虛存頁面所在的主存頁面的地址(物理頁號),以及指示該邏輯頁是否已調入主存的有效位。地址變換時,用邏輯頁號作為頁表內的偏移地址索引頁表(將虛頁號看作頁表數組下標)並找到相應物理頁號,用物理頁號作為實存地址的高欄位,再與虛地址的頁內偏移量拼接,就構成完整的物理地址。現代的中央處理機通常有專門的硬體支持地址變換。
2、轉換後援緩沖器由於頁表通常在主存中,因而即使邏輯頁已經在主存中,也至少要訪問兩次物理存儲器才能實現一次訪存,這將使虛擬存儲器的存取時間加倍。為了避免對主存訪問次數的增多,可以對頁表本身實行二級緩存,把頁表中的最活躍的部分存放在高速存儲器中,組成快表。這個專用於頁表緩存的高速存儲部件通常稱為轉換後援緩沖器(TLB)。保存在主存中的完整頁表則稱為慢表。
3、內頁表是虛地址到主存物理地址的變換表,通常稱為內頁表。與內頁表對應的還有外頁表,用於虛地址與輔存地址之間的變換。當主存缺頁時,調頁操作首先要定位輔存,而外頁表的結構與輔存的定址機制密切相關。例如對磁碟而言,輔存地址包括磁碟機號、磁頭號、磁軌號和扇區號等。 段是按照程序的自然分界劃分的長度可以動態改變的區域。通常,程序員把子程序、操作數和常數等不同類型的數據劃分到不同的段中,並且每個程序可以有多個相同類型的段。在段式虛擬存儲系統中,虛地址由段號和段內地址(偏移量)組成。虛地址到實主存地址的變換通過段表實現。每個程序設置一個段表,段表的每一個表項對應一個段。每個表項至少包含下面三個欄位:
(1)有效位:指明該段是否已經調入實存。
(2)段起址:指明在該段已經調入實存的情況下,該段在實存中的首地址。
(3)段長:記錄該段的實際長度。設置段長欄位的目的是為了保證訪問某段的地址空間時,段內地址不會超出該段長度導致地址越界而破壞其他段。段表本身也是一個段,可以存在輔存中,但一般駐留在主存中。
段式虛擬存儲器有許多優點:
①段的邏輯獨立性使其易於編譯、管理、修改和保護,也便於多道程序共享。②段長可以根據需要動態改變,允許自由調度,以便有效利用主存空間。段式虛擬存儲器也有一些缺點:
①因為段的長度不固定,主存空間分配比較麻煩。②容易在段間留下許多外碎片,造成存儲空間利用率降低。
③由於段長不一定是2的整數次冪,因而不能簡單地像分頁方式那樣用虛地址和實地址的最低若干二進制位作為段內偏移量,並與段號進行直接拼接,必須用加法操作通過段起址與段內偏移量的求和運算求得物理地址。因此,段式存儲管理比頁式存儲管理方式需要更多的硬體支持。 段頁式虛擬存儲器是段式虛擬存儲器和頁式虛擬存儲器的結合。實存被等分成頁。每個程序則先按邏輯結構分段,每段再按照實存的頁大小分頁,程序按頁進行調入和調出操作,但可按段進行編程、保護和共享。它把程序按邏輯單位分段以後,再把每段分成固定大小的頁。程序對主存的調入調出是按頁面進行的,但它又可以按段實現共享和保護,兼備頁式和段式的優點。缺點是在映象過程中需要多次查表。在段頁式虛擬存儲系統中,每道程序是通過一個段表和一組頁表來進行定位的。段表中的每個表目對應一個段,每個表目有一個指向該段的頁表起始地址及該段的控制保護信息。由頁表指明該段各頁在主存中的位置以及是否已裝入、已修改等狀態信息。如果有多個用戶在機器上運行,多道程序的每一道需要一個基號,由它指明該道程序的段表起始地址。虛擬地址格式如下: 基號 段號 頁號 頁內地址