段式虛擬存儲
A. 什麼是段頁式虛擬存儲器有什麼特點
段式虛擬存儲器是按程序的邏輯結構劃分地址空間,段的長度是隨意的,並且允許伸長,它的優點是消除了內存零頭,易於實現存儲保護,便於程序動態裝配;缺點是調入操作復雜。將這兩種方法結合起來便構成段頁式調度。在段頁式調度中把物理空間分成頁,程序按模塊分段,每個段再分成與物理空間頁同樣小的頁面。
B. 什麼是虛擬內存呀
虛擬內存是計算機系統內存管理的一種技術。它使得應用程序認為它擁有連續的可用的內存(一個連續完整的地址空間),而實際上,它通常是被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁碟存儲器上,在需要時進行數據交換。
別稱虛擬存儲器(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虛擬內存雖然增加了電腦性能但是關機可能需要幾分鍾。
希望採納!
C. 段頁式虛擬存儲器中由虛擬地址向實際地址轉換的過程需要查幾次表,這些表示如
摘要 段式虛擬存儲器:段式虛擬存儲器的基本思想是:按照程序的邏輯結構劃分段,!主存以段為單位進行分配。由於段是按照程序的自然邊界劃分的,因此每個段的長度各不相同,並且程序員通常還會把不同類型的數據劃分到不同的段中。
D. 虛擬存儲器技術主要用於解決什麼問題簡述虛擬存儲器的基本工作原理。
虛擬存儲器技術主要解決電腦內存不夠的問題,電腦中所運行的程序均需經由內存執行,若執行的程序佔用內存很大或很多,則會導致內存消耗殆盡。
為解決該問題,Windows中運用了虛擬內存技術,即勻出一部分硬碟空間來充當內存使用。當內存耗盡時,電腦就會自動調用硬碟來充當內存,以緩解內存的緊張。若計算機運行程序或操作所需的隨機存儲器(RAM)不足時,則 Windows 會用虛擬存儲器進行補償。
工作原理
1、中央處理器訪問主存的邏輯地址分解成組號a和組內地址b,並對組號a進行地址變換,即將邏輯組號a作為索引,查地址變換表,以確定該組信息是否存放在主存內。
2、如該組號已在主存內,則轉而執行④;如果該組號不在主存內,則檢查主存中是否有空閑區,如果沒有,便將某個暫時不用的組調出送往輔存,以便將這組信息調入主存。
3、從輔存讀出所要的組,並送到主存空閑區,然後將那個空閑的物理組號a和邏輯組號a登錄在地址變換表中。
4、從地址變換表讀出與邏輯組號a對應的物理組號a。
5、從物理組號a和組內位元組地址b得到物理地址。
6、根據物理地址從主存中存取必要的信息。
(4)段式虛擬存儲擴展閱讀:
相關概念
1、實地址與虛地址
用戶編製程序時使用的地址稱為虛地址或邏輯地址,其對應的存儲空間稱為虛存空間或邏輯地址空間;而計算機物理內存的訪問地址則稱為實地址或物理地址,其對應的存儲空間稱為物理存儲空間或主存空間。程序進行虛地址到實地址轉換的過程稱為程序的再定位。
2、虛擬內存的訪問過程
虛存空間的用戶程序按照虛地址編程並存放在輔存中。程序運行時,由地址變換機構依據當時分配給該程序的實地址空間把程序的一部分調入實存。
每次訪存時,首先判斷該虛地址所對應的部分是否在實存中:如果是,則進行地址轉換並用實地址訪問主存;否則,按照某種演算法將輔存中的部分程序調度進內存,再按同樣的方法訪問主存。
3、異構體系
從虛存的概念可以看出,主存-輔存的訪問機制與cache-主存的訪問機制是類似的。這是由cache存儲器、主存和輔存構成的三級存儲體系中的兩個層次。cache和主存之間以及主存和輔存之間分別有輔助硬體和輔助軟硬體負責地址變換與管理,以便各級存儲器能夠組成有機的三級存儲體系。
E. 計算機組成原理——虛擬存儲器
(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
F. 試說明虛擬存儲器的涵義,它與物理存儲器有什麼區別
試說明虛擬存儲器的涵義,它與物理存儲器有什麼區別
頁面虛擬存儲器與段式虛擬存儲器區別:
1、頁面虛擬存儲器
頁式虛擬存儲系統中,虛擬空間分成頁,稱為邏輯頁;主存空間也分成同樣大小的頁,稱為物理頁。頁表中每一個虛存邏輯頁號有一個表目,表目內容包含該邏輯頁所在的主存頁面地址(物理頁號),用它作為實存地址的高欄位,與虛存地址的頁內行地址欄位相拼接,產生完整的實主存地址,據此來訪問主存。
2、段式虛擬存儲器
段式虛擬存儲器是按程序的邏輯結構劃分地址空間,段的長度是隨意的,並且允許伸長,它的優點是消除了內存零頭,易於實現存儲保護,便於程序動態裝配;缺點是調入操作復雜。將這兩種方法結合起來便構成段頁式調度。在段頁式調度中把物理空間分成頁,程序按模塊分段,每個段再分成與物理空間頁同樣小的頁面。
G. 頁面虛擬存儲器與段式虛擬存儲器的區別
頁面虛擬存儲器與段式虛擬存儲器區別:
1、頁面虛擬存儲器
頁式虛擬存儲系統中,虛擬空間分成頁,稱為邏輯頁;主存空間也分成同樣大小的頁,稱為物理頁。頁表中每一個虛存邏輯頁號有一個表目,表目內容包含該邏輯頁所在的主存頁面地址(物理頁號),用它作為實存地址的高欄位,與虛存地址的頁內行地址欄位相拼接,產生完整的實主存地址,據此來訪問主存。
2、段式虛擬存儲器
段式虛擬存儲器是按程序的邏輯結構劃分地址空間,段的長度是隨意的,並且允許伸長,它的優點是消除了內存零頭,易於實現存儲保護,便於程序動態裝配;缺點是調入操作復雜。將這兩種方法結合起來便構成段頁式調度。在段頁式調度中把物理空間分成頁,程序按模塊分段,每個段再分成與物理空間頁同樣小的頁面。
H. 虛擬存儲技術的指導思想是以時間換取空間對嗎
1、虛擬存儲管理概念
一個計算機任務只需要部分裝入主存便可以啟動運行,其餘部分留在磁碟上,在需要的時候裝入主存,這樣可以提高主存空間的利用率。這樣該系統所具有的主存容量會比實際主存容量大很多,這樣的存儲器稱為虛擬存儲器。
2、程序局部性原理
程序在執行時會呈現局部性規律,即在一段時間內,程序的執行僅局限於某個部分,相應所訪問的空間也局限於某個區域內。程序的局限性表現在時間、空間兩個方面。
2.1 時間局限性
指程序中的某個指令一旦執行,則在不久的將來可能會被再次執行;如果某個存儲單元被訪問,則不久後該存儲單元可能會被再次訪問。產生時間局限性的原因是程序中存在大量的循環處理。
2.2 空間局限性
指一旦程序訪問了某個存儲單元,在不久的將來,它附件的存儲單元也有可能被訪問。典型原因是程序是順序執行的。
3、虛擬存儲器的實現原理
虛擬存儲器具有請求調入功能和置換功能,能僅把作業的一部分裝入主存便運行作業系統,能從邏輯上對主存容量進行擴充的一種虛擬存儲系統。其邏輯容量由主存和外存容量之和以及CPU可定址的范圍決定,運行速度接近主存速度。應用十分廣泛。
3.1 虛擬存儲器實現方式
1、請求分頁系統
在分頁系統的基礎上增加了請求調頁功能和頁面裝置功能所形成的頁式虛擬存儲系統。置換時以頁面為單位。
2、請求分段系統
在分段系統的基礎上增加了請求調段和分段置換功能所形成的段式虛擬存儲系統。置換時以段為單位。
3、請求分頁管理
請求分頁是在純分頁系統的基礎上增加了請求調頁功能、頁面置換功能所形成的頁式虛擬存儲系統。是目前最常用的一種虛擬存儲器的方式。
請求分頁的頁表機制是在純分頁的頁表機制上形成的,因為只將應用程序的一部分調入主存,還有一部分仍在磁碟上,因此需要在頁表中增加(狀態位、訪問欄位和輔存地址等)供程序(數據)在轉進、轉出時參考。
請求分頁系統中的地址變換機構是在分頁系統的地址變換結構的基礎上增加了某些功能。比如處理缺頁中斷、從主存中轉出一頁實現虛擬存儲。
在請求分頁系統中,每當所要訪問的頁面不在主存時便要產生一個缺頁中斷,請求系統將所缺的頁調入主存,這個是由中斷機構完成的。
3.1 缺頁中斷和一般中斷的區別
1、缺頁中斷是在指令執行期間產生和中斷處理信號;一般中斷是在一條指令執行完。下一條指令執行前檢查和處理中斷信號。
2、發生缺頁中斷返回到被中斷指令的開始重新執行該指令;
I. 虛擬存儲器按地址格式不同可分為哪幾種
根據地址格式不同,虛擬存儲器分為:頁式虛擬存儲器、段式虛擬存儲器和段頁式虛擬存儲器。