




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第8章 實存儲器管理技術2022-6-11物理主存 主存為操作系統、各種系統程序和用戶程序所共享,任何程序的執行最終都要從主存中存取指令和數據,都必須和主存打交道; 現代操作系統可區分兩類主存:物理主存和邏輯主存; 共享的基礎是物理主存; 物理主存由0(m-1)個物理地址組成; 物理地址是計算機主存單元的真實地址,又稱為絕對地址或實地址,處理器依據絕對地址可以隨機存取存放在其內的信息; 物理地址的集合所對應的空間組成了主存空間; 而主存中的一個區域是物理地址集合的一個遞增整數序列子集(如n,n+1,n+m)所對應的主存空間。2022-6-12邏輯主存 如果直接以物理地址提交給用戶使用,對用戶來
2、說是十分困難的事情; 采用了多道程序設計技術之后,多個用戶程序共享主存,由用戶自行分配主存更是不可能的事; 因此,為支持多道程序運行,方便用戶,系統必須為每個用戶提供0(n-1)的一組邏輯地址,即提供一個虛擬地址空間; 用戶的程序地址(指令地址或操作數地址)均為邏輯地址,或稱為相對地址; 根據邏輯地址不能直接到主存中去存取信息; 邏輯地址與物理地址之間有一定的映射關系,程序執行時,必須將邏輯地址正確地轉換為物理地址,這就叫做地址映射。2022-6-13主存儲器的物理組織 主存的結構組織和實現方法,很大程度上決定了計算機系統的功能; 主存的功能: 存放內核和用戶程序的指令和數據; 每一項信息都存
3、放在主存的特定位置上; 信息在主存是按“位”存放的; 編址; 目前多數計算機以字節為單位進行編址。2022-6-14計算機系統存儲器層次寄存器高速緩存主存儲器磁盤緩存固定磁盤可移動存儲介質2022-6-15主存儲器管理功能(1) 主存分配 可以使多個程序同時駐留在主存中,以提高CPU利用率; 保證系統的高性能,提高存儲利用率和提高主存的分配和釋放(回收)速度,以加快任務的執行; 地址轉換和重定位 程序不必事先約定存放地址,可在執行過程中移動; 可以運行只裝入了一部分的程序,縮短程序的啟動時間; 研究和使用各種有效的地址轉換技術以及相應的地址轉換機構;2022-6-16主存儲器管理功能(2) 存
4、儲保護和主存共享 研究如何保護各存儲區中信息不被破壞和偷竊; 由于許多不同的任務可能要執行同一個程序,進程中多個合作進程要訪問相同的數據結構,所以存儲保護機制要提供進程對某些主存區共享的靈活性; 存儲擴充 使用有效的存儲管理技術來實現邏輯上的擴充即虛擬存儲技術; 運行的程序應不受主存大小的限制,理想情況下應能運行任意大小的程序。2022-6-17主存映射 什么是地址映射? 首先,在多用戶共享主存時,需要由系統分配主存; 一般情況下,一個作業程序分配到的存儲空間和它的地址空間是不一致的; 因此作業的相應進程在處理器上運行時,所要訪問的指令和數據的實際地址和地址空間中的地址是不同的; 所以,處理器
5、在執行指令時,必須把邏輯地址轉換為絕對地址后,方能訪問信息。 地址映射方式 編程或編譯時確定地址映射關系 如果虛實地址間的對應關系是在程序編寫或者程序編譯時實現的,則結果為一個不能浮動的程序模塊,它必須被放在主存某一確定的地址中,而且永不會改變,因為它所包含的全部地址都是主存地址,在這種情況下,把這樣一個程序裝入主存,就必須在申請主存時,具體地提出申請的主存容量和主存地址,因此主存分配程序在分配時將沒有什么活動余地。 靜態地址映射 動態地址映射2022-6-18程序的邏輯組織 傳統計算機的主存儲器是一個一維的存儲空間,它的地址從零開始到主存上界順序編號,這是存儲器的組織方式; 程序一般有兩種組
6、織方式 程序的地址空間是一維線性的 所有的程序和數據經編譯、連接后成為一個連續的地址空間; 程序的地址空間是二維段式結構 將程序分成若干模塊或過程,并把可修改的數據和不可修改的數據分開,一個程序可由代碼段、數據段、棧段、特別分段等組成,編譯時就明確加以區分,經編譯、連接后成為可執行代碼,系統有指向各分段的指針,在程序執行時可方便地實現地址變換。 把地址空間邏輯上劃分成對應的程序段和數據段的優點: 首先,它符合人們的習慣; 其次,只要增加少量開銷就能對不同的段賦予不同的保護級別; 另外,還可實現動態連接,即對分段單獨進行編譯,只有當某一段要調用另一分段時,才由系統在運行時動態連接。2022-6-
7、19固定分區存儲管理(1) 把主存分成若干個固定大小的存儲區(又稱存儲塊),每個存儲區分給某一個作業使用,直到該作業完成后才把該存儲區歸還系統; 分單道作業和多道作業兩種情況; 單用戶、單道作業情況(教材圖8.2) 多道作業情況(教材圖8.3) 操作系統區、用戶使用的分區 主存中分區的區數是固定不變的,每區的大小也是固定不變的 分給每個作業一塊大于或等于作業大小的主存分區,不允許兩個作業同時放于同一個分區中; 問題:分區中常有未用的、剩下的空閑部分,即存儲碎片,降低了主存的利用率; 存儲分塊表:主存分區情況說明信息,存儲區的使用狀況信息,包括大小、位置和狀態三項信息。2022-6-110固定分
8、區存儲管理(2)操作系統區作業i的程序、數據等界限地址柵欄寄存器作業2作業1界限地址 + 邏輯地址裝入程序采用靜態重定位的單用戶連續存儲管理采用靜態重定位的單用戶連續存儲管理 操作系統區用戶區界限地址定位寄存器邏輯地址CPU絕對地址采用動態重定位的單用戶連續存儲管理采用動態重定位的單用戶連續存儲管理 2022-6-111固定分區存儲管理(3) 存儲分塊表 大小:指出該存儲塊的大小,以字節為單位; 位置:指出該存儲塊在主存中的起始地址; 狀態:表明該存儲塊是否已被使用。 存儲保護功能 一對“界地址寄存器”,如果處理器要訪問主存某單元時,系統硬件自動將該單元地址與界限寄存器的內容進行比較,以判斷此
9、次訪問是否合法; 優點:簡單,要求的硬件支持只是一對界地址寄存器,軟件算法簡單; 缺點:主存利用率不高。2022-6-112固定分區存儲管理的地址轉換(1) 固定分區存儲管理的地址轉換可以采用靜態定位方式,裝入程序在進行地址轉換時檢查其絕對地址是否在指定的分區中,若是,則可把程序裝入,否則不能裝入,且應歸還所分得的存儲區域; 固定分區方式的主存去配很簡單,只需將主存分配表中相應分區的占用標志位置成“0”即可。2022-6-113固定分區存儲管理的地址轉換(2)固定分區存儲管理的地址轉換也可以采用動態定位方式,如下圖示;系統專門設置一對地址寄存器上限/下限寄存器; 當一個進程占有CPU執行時,操
10、作系統就從主存分配表中取出相應的地址占有上限/下限寄存器; 硬件的地址轉換機構根據下限寄存器中保存的基地址B與邏輯地址得到絕對地址; 硬件的地址轉換機構同時把絕對地址和上限/下限寄存器中保存的相應地址進行比較,而實現存儲保護。B下限寄存器邏輯地址CPU絕對地址操作系統區用戶分區1用戶分區2用戶分區3B+L2上限寄存器B+L2越界中斷用戶分區1用戶分區2用戶分區32022-6-114可變分區存儲管理概念 所謂可變分區,是指主存事先并未劃分成一塊塊分區,而是在作業進入主存時,按該作業的大小建立分區,分給作業使用; 特點: 分區個數是可變的,每個分區的大小也是不固定的; 主存中分布著個數和大小都是變
11、化的空閑分區或碎片,這些空閑分區有些可能相當大,而有些則相當小。2022-6-115數據基的組織方法(1) 存儲分塊表(教材圖8.5) 這種存儲分塊表存在兩個缺點: 由于分區個數是變化的,所以表長不好確定,造成表格管理上的困難,若給該表留的空間不足,又無法登記各分區的情況,若留的空間過大,造成浪費; 分配主存時,為查找一塊合適的空閑分區所需掃描的表目增加了,查找速度變慢了; 分開設置兩個存儲管理表(教材圖8.6) 用已使用分區表(UBT)和空閑分區表(FBT)分別登記和管理系統中的已分分區和空閑分區; 減少存儲分配和釋放時查找表格的長度,提高查找速度;2022-6-116數據基的組織方法(2)
12、 空閑存儲塊鏈(教材圖8.7) 使用鏈指針把所有的空閑分區鏈結在一起,構成一條空閑存儲塊鏈; 實現方法:把每個空閑存儲塊的起始若干個字節分成兩部分,前一部分作為鏈指針,指向下一空閑存儲塊的起始地址,后一部分指出本空閑存儲塊的大小,用一固定單元作為空閑存儲鏈的頭指針用以指出該鏈中的第一塊空閑存儲塊的起始地址,最后一塊空閑存儲塊的鏈指針中放著鏈尾標志; 這種方法使得數據基的管理和維護比較簡單。2022-6-117存儲分配算法 最佳適應法 從所有未分配的分區中挑選一個最接近作業尺寸且大于或等于作業大小的分區分給要求的作業; 從而使分區內未用部分即碎片最少; 最先適應法 按分區序號從存儲分塊表的第一個
13、表目起查找該表,把最先找到的且大于或等于作業大小的未分配分區分給要求的作業; 可以縮短查找時間; 最壞適應法 從所有未分配的分區中挑選最大的且大于或等于作業大小的分區分給要求的作業; 可用于可變分區分配技術中。2022-6-118三種放置策略的說明作業A 18KBOS30KB在使用20KB在使用5KB在使用46KB020KB100KB160KB210KB256KB-1主存作業A 18KBOS30KB在使用20KB在使用5KB在使用46KB020KB100KB160KB210KB256KB-1主存作業A 18KBOS30KB在使用20KB在使用5KB在使用46KB020KB100KB160KB2
14、10KB256KB-1主存(a)最先適應法(b)最佳適應法(c)最壞適應法2022-6-119各種存儲分配算法的分析與比較 最佳適應法: 盡量多保留大的分區,使被選中分區剩下盡可能小的未用碎片; 使系統中產生了許多小得無法再用的碎片; 最先適應法: 盡可能地縮短了存儲分配時間; 對空閑塊的管理采取不同的辦法:表格法、空閑存儲塊鏈法、位圖法; 最壞適應法: 保證分配后剩下的分區足夠大,以便滿足后續要求。2022-6-120碎片問題和存儲器的緊縮 由于各作業請求和釋放主存塊的結果,產生很多小的碎片,碎片的存在降低了多道的程度,造成了主存空間的大量浪費; 解決碎片問題: 把程序分成幾部分裝入不同的分
15、區中去,改變一直把程序作為一個連續的整體在主存中存放的要求; 改善了碎片問題,但卻增加了程度管理和執行的復雜性; 把小碎片集中起來使之成為一個大分區; 移動各用戶分區中的程序,使它們集中于主存的一端,使碎片集中于另一端,從而連成一個完整的大分區,即存儲器的“緊縮”或“澄清”。2022-6-121動態重定位 動態重定位:是指程序的重定位時機不是在程序執行前進行,而是在程序執行過程中才進行地址轉換,更確切地說是在每次訪問主存單元前才進行地址轉換(教材圖8.9); 重定位過程: 首先將用戶按相對地址編址的目標程序原封不動地裝入主存中分給該用戶使用的分區中; 當該用戶程序被調度到處理器上執行時,操作系
16、統自動將該用戶作業的起址由作業表中取出,并將分區起始地址減去用戶目標程序的相對基地址,然后將其減得值裝入定位寄存器中; 當處理器要訪問主存時,地址轉換硬件自動將程序中的相對地址與定位寄存器中的內容相加,并按相加的和作為主存絕對地址去訪問數據。 采用動態重定位后,由于目標程序裝入主存后不需要修改地址指針及所有與地址有關的項,因而程序可在主存中隨意浮動而不影響其正確執行,從而可以方便地進行存儲器緊縮,較好地解決了碎片問題。2022-6-122動態重定位的硬件支持及軟件算法 硬件支持:定位寄存器、加法器 進行存儲器緊縮的兩種時機: 在某個分區被釋放后立即進行緊縮,此時系統中總是只有一個連續的空閑分區
17、為無碎片; 當“請求分配模塊”找不到足夠大的空閑分區給用戶時再進行緊縮,這樣緊縮的次數要少些,但表格管理復雜了(教材圖8.10)。 動態重定位技術的優點:可以消除碎片,能有效利用主存空間,提高多道程序系統的多道程度,從而也提高了對處理器和外設的利用率; 缺點:首先,需要動態重定位硬件機構支持,提高了計算機成本,減低了速度,其次,緊縮工作要花費一定的機時。2022-6-123多重分區/多對界地址管理 單對界地址管理技術: 每個用戶只占據主存的一個分區,存儲保護只需使用一對界地址寄存器; 弊病: 首先,解決碎片問題時,移動程序進行存儲器緊縮時需要硬件支持; 其次,不便于在進程之間共享數據。 多對界
18、地址管理技術: 系統中設置多對界地址寄存器,并且在為每個作業或進程分配主存時,可按界地址寄存器對的個數為其分配多個不相鄰接的空閑分區; 該技術既可以改善碎片情況,又便于共享; 但是,在實存管理技術中,多重分區的多重程度不宜過多,否則會增加管理的復雜性。2022-6-124簡單分頁(1) 前述固定分區和可變分區存儲技術存在著一定的缺點; 分頁技術思想的由來; 分頁存儲管理技術中的基本作法; 等分主存;(頁架) 用戶邏輯地址空間的分頁;(頁) 邏輯地址的表示。(數對(p, d) 主存分配原則; 分頁情況下,系統以頁架為單位把主存分給進程,分給一個進程的各頁架不一定是相鄰和連續的; 頁表指出每個進程
19、的各頁放在主存的哪些頁架中; 分頁系統中的地址結構分為兩部分; 頁面尺寸應是2的冪可以省去除法運算,拆分地址場中的數即可。(如p159例)2022-6-125簡單分頁(2) 地址轉換過程: 首先將邏輯地址左邊表示頁號部分的頁號抽取出來; 以頁號作為索引查找該進程頁表,找出該頁存放的主存頁架號; 用此頁架號(二進制形式)取代邏輯地址的左邊部分,并與右邊的頁內地址合并成相應的物理地址去訪問主存。 簡單分頁方法的優點: 它基本沒有頁內碎片,只是在每個進程的最后一頁中,會有頁內碎片;也不會有小到不可再用的頁外碎片,主存的利用率高; 不管采用哪種數據結構(空閑頁架表、位圖、空閑頁架鏈表等),分配和釋放存
20、儲都很快; 管理簡單(類似于固定分區的情況)。2022-6-126頁式存儲管理的地址轉換和存儲保護 頁表始址 頁表長度作業名A頁表始址xxxxxx頁表長度3作業表塊號比較頁號 頁內地址塊號 頁內地址頁表頁表控制寄存器絕對地址邏輯地址地址越界2022-6-127程序的分段結構子程序段X數組段Acall XE(調用X段的入口E)call YF(調用Y段的入口F)load 1,AG (調用數組段AG)主程序段E:F:子程序段YG:工作區段2022-6-128簡單分段(1) 為什么需要按段分配主存? 事先將用戶邏輯地址空間連接成一維線性地址空間,既費時又不便于作業的執行,尤其不便于共享; 因此,人們希
21、望按照程序模塊來劃分段,并按這些段來分配主存; 段,就是一組邏輯信息的集合,如子程序、數組和數據區等。 分段存儲管理的基本概念 進程的邏輯地址空間(二維的,用段名和段內地址兩個成分來描述) 程序的地址結構 主存分配 段表(每個進程一個段表,用來指出進程的某段放在主存中的何處,以及該段的長度等信息) 段的地址轉換(把邏輯地址左邊段號部分提取出來,作為索引,查找進程的段表,將段內地址與段的長度比較,如果大于段的長度,則引起非法訪問中斷,即越界訪問,如果訪問合法,就將段的起始地址與段內地址相加,就得到所要訪問的物理地址。)2022-6-129分段式存儲管理的地址轉換和存儲保護 段控制寄存器段表始址
22、段表長度 段號s 位移d段長 基址 物理地址越界? 段表2022-6-130簡單分段(2) 簡單分段的優點是沒有段內碎片,只有外部碎片; 簡單分段也是基于多重分區技術的進一步發展而來的; 簡單分段對用戶是可見的,而且分段需要用戶提供支持,用戶也需要知道系統的最大段長度限制; 當進程被交換出主存時,它的頁表或段表也需隨進程一起撤出主存。2022-6-131分段和分頁的比較 分段是信息的邏輯單位,由源程序的邏輯結構所決定,用戶可見,段長可根據用戶需要來規定,段起始地址可以從任何主存地址開始;在分段方式中,源程序(段號,段內位移)經連結裝配后仍保持二維結構。 分頁是信息的物理單位,與源程序的邏輯結構
23、無關,用戶不可見,頁長由系統確定,頁面只能以頁大小的整倍數地址開始。在分頁方式中,源程序(頁號,頁內位移)經連結裝配后變成了一維結構。2022-6-132單項選擇題1.設內存的分配情況如下圖所示,若要申請一塊40K字節的內存空間,若采用最佳適應算法,則所得到的分區首址為(c)。 A.100K B.190K C.330K D.410K占用占用占用占用0100K180K190K280K330K390K410K512K12022-6-1332.在可變式分區存儲管理中的拼接技術可以(a)。 A.集中空閑區 B.增加主存容量 C.縮短訪問周期 D.加速地址轉換3.分區管理中采用“最佳適應”分配算法時,宜
24、把空閑區按(a )次序登記在空閑區表中。 A.長度遞增 B.長度遞減 C.地址遞增 D.地址遞減4.在固定分區分配中,每個分區的大小是(c) A.相同 B.隨作業長度變化 C.可以不同但預先固定 D.可以不同但根據作業長度固定5.把作業地址空間中使用的邏輯地址變成內存中物理地址的過程稱為(a) A.重定位 B.物理化 C.邏輯化 D.加載6.在分頁系統環境下,程序員編制的程序,其地址空間是連續的,分頁是由(d)完成的。 A.程序員 B.編譯地址 C.用戶 D.系統7.如果一個程序為多個進程所共享,那么該程序的代碼在執行的過程中不能被修改,即程序應該是(b)。 A.可執行碼 B.可重入碼 C.可
25、改變碼 D.可再現碼2022-6-134第9章 虛擬存儲管理2022-6-135虛擬存儲系統的基本概念實存管理技術特點 在作業運行時,整個作業的邏輯地址空間必須全部裝入主存; 當作業尺寸大于主存可用空間時,該作業就無法運行。虛擬存儲器:一種實際上并不以物理形式存在的虛假的存儲器;把被運行進程訪問的地址同主存的物理地址區別開來;一個程序被編譯連接后產生目標程序,該目標程序所限定的地址的集合稱為邏輯地址空間,目標程序中指令和數據放置的位置稱相對地址或邏輯地址;而CPU能直接訪問的主存稱為物理地址空間或實存地址空間;虛擬地址:運行進程訪問的地址;實地址:處理器可直接訪問的主存地址;虛擬地址空間:運行
26、進程可以訪問的虛地址的集合;實地址空間:計算機的主存;由動態地址映象機構來完成虛地址到實地址的轉換;虛實地址的區分,為使進程的虛擬地址空間大于主存實地址空間創造了條件,也為作業大小可大于主存空間創造了條件。2022-6-136虛存管理技術 在虛擬存儲系統中,用戶認為機器具有無窮大的存儲空間,并且只有這一個用戶在使用機器; 用戶只使用了物理主存的很少部分; 原因:操作系統內核只把進程當前要用的部分放在主存中,不僅能減少進程啟動和滾進滾出的開銷,而且主存中也可以同時容納大量的進程,提高了系統多道程度和并行性; 代價: 主存管理要為地址轉換表和其他一些數據結構付出額外的主存開銷; 地址轉換增加了每條
27、指令的執行時間。 常用虛存管理技術 分頁技術(paging) 分段技術(segmentation) 分段加分頁技術(segmentation with paging)2022-6-137分頁系統中的地址映象技術(1) 分頁系統主要目的:讓程序能在它的虛擬地址空間中運行并實現由虛擬地址到主存物理地址的轉換; 幾種地址轉換方法 直接映象的頁地址轉換 多級頁表的地址轉換 反向頁表的地址轉換 快表的地址轉換2022-6-138分頁系統中的地址映象技術(2) 直接映象的頁地址轉換 實現過程(教材圖9.1) 當進程被調度到處理器上運行時,操作系統自動將該進程的頁表起始地址裝入頁表地址寄存器中; 當該進程要
28、訪問某個虛地址時,分頁的地址映象硬件自動按頁面大小將地址場從某位起截成頁號和頁內地址兩部分; 以頁號為索引查找頁表(查找工作由硬件自動進行),得到頁架號,進而得到實際主存的絕對地址。 該映象技術對系統效能的影響 影響了處理器執行指令的速度,使速度降低為原來的一半; 原因:CPU至少要訪問兩次主存才能存取到所要數據,第一次查頁表以找出對應的頁架號,第二次真正訪問所需數據。2022-6-139分頁系統中的地址映象技術(3) 多級頁表的地址轉換 因為大頁表不能全放在主存中,所以對頁表本身也采取分頁措施,把頁表本身按固定大小分成一個個頁面; 教材圖9.2; 通過二級頁表的地址映射訪問主存存取數據需要三
29、次訪問主存,所需時間是原來的三倍; 一次頁目錄 一次頁表 數據所在的物理地址2022-6-140分頁系統中的地址映象技術(4) 反向頁表的地址轉換 教材圖9.3; 實現過程 當給出進程的虛地址后,存儲管理單元通過一個哈希定位表數據結構,把虛頁號經哈希函數轉換為一個哈希值; 以該哈希值為索引,它指向反向頁表中的一個表目; 由這個表目中的虛頁號得到相應的頁架號,再與偏移量拼接成物理地址,訪問主存。2022-6-141分頁系統中的地址映象技術(5) 快表的地址轉換(1) 把一部分常用頁表表目放入高速緩沖中,通過快表進行地址映射,快表中只包含一些最近使用的頁表的表目; 快表的訪問速度比主存的訪問速度高
30、一個數量級; 快表的表目中包含:虛頁號以及該虛地址屬于哪個進程、物理頁架號、頁面保護權限等。2022-6-142分頁系統中的地址映象技術(5) 快表的地址轉換(2) 教材圖9.4; 當運行進程要訪問虛地址v,于是硬件將地址v截成頁號p和頁內地址d; 地址轉換機構首先以頁號p和快表中各表目同時進行比較,以便確定該頁是否在快表中; 若在其中,則快表即送出相應的頁架號與頁內地址一起拼接成絕對地址,并按此地址訪問主存; 若該頁不在快表中,則使用直接映象方法查找進程的頁表,找出其頁架號p與頁內地址拼接成絕對地址,并訪問主存;同時將該頁的頁號及對應的頁架號一起送入快表的空閑表目中去;若無空表目,通常把最先
31、裝入的那個頁的有關信息淘汰掉,騰出表目位置。 實際上,直接映象和快表同時進行,當快表成功,就自動停止直接映象工作。2022-6-143缺頁中斷處理流程查快表有登記無登記查頁表登記入快表發缺頁中斷在主存在輔存形成絕對地址繼續執行指令重新執行被中斷指令恢復現場調整頁表和主存分配表裝入所需頁面主存有空閑塊保護現場有選擇調出頁面該頁是否修改未修改已修改把該頁寫回輔存相應位置操作系統硬件邏輯地址無2022-6-144分段概述 虛擬分段的優點 分段技術簡化了對可以任意增長和收縮的數據段的管理; 分別編譯的段的連接十分簡單; 如果一個段的過程被修改并重新編譯,不會引起其他段修改,因為這些修改只涉及該段自己的
32、地址空間; 分段機制便于在進程間共享過程和數據,只要把這些過程和數據,如同共享庫一樣,放在分別的段中,通過段表映射進行共享; 段是程序員可見的邏輯上的實體,如過程,數組和堆棧等,對不同段,程序員可以安排不同的保護類型。 虛擬分段的缺點 段大小不一致,段外碎片使存儲利用率下降。2022-6-145分段的實現 每個虛擬地址由一個數對(段號,段內偏移量)兩部分組成,每個進程一個段表; 每個段表的表目: 段的起始地址 段長 有效位 修改位 保護和共享信息 實現過程(教材圖9.5): 當進程訪問某虛擬地址(s,w)時,內核將段表地址寄存器中內容b與段號同段表表目長的乘積相加后,得到該段的表目入口地址;
33、由此表目中查得段s在主存中的起始地址s; 再將s與段內地址w相加,而得到欲訪問單元的主存物理地址,并進行訪問。2022-6-146段頁式存儲管理的基本概念 等分主存 把整個主存分成大小相等的存儲塊,即頁架; 進程的地址空間采用分段的方式 按程序的自然邏輯關系把進程的地址空間分成若干段,每一段有自己的外部段名和內部段號; 進程的每一段又采用分頁方法 按主存頁架大小把每一段劃分成若干頁,每段從零開始為自己段的各頁依次編頁號; 邏輯地址結構 一個邏輯地址用三個參數表示,段號s,頁號p,頁內地址偏移量d,記為v=(s,p,d); 主存分配 主存以頁架為單位分配給每個進程; 段表、頁表、段表地址寄存器2
34、022-6-147段頁式存儲管理中的地址轉換 若運行進程訪問虛地址v=(s,p,d)的地址轉換過程(教材圖9.6): 地址轉換硬件將段表地址寄存器內容與指令地址場中的段號s相加,得到欲訪問段s在該進程的段表中表目入口地址; 從該表的表目中得到該段的頁表起始地址,并將其與地址場中的頁號p相加后得到欲訪問頁p在該段的頁表中的表目入口地址; 從該頁表表目中取出其對應的頁架號與指令地址場中的頁內地址d拼接成主存物理地址。2022-6-148段頁式存儲管理算法教材圖9.8;s=段表長嗎? 由硬件自動將段號s與段表地址寄存器中的段表長進行比較;段在主存嗎? 根據段表中狀態位值由硬件判別;p=頁表長嗎? 根
35、據段表的表目中的頁表長度與p進行比較,在有快表的情況下將p與快表中的該表目的“該段的頁表長”進行比較;訪問類型合法嗎? 將本次訪問的類型與快表中的存取控制信息進行比較;頁在主存嗎? 根據該段的頁表中的相應頁的狀態位判定;缺頁中斷處理2022-6-149段頁式存儲管理的優缺點 優點 提供了虛擬存儲器的功能; 因為以頁架為單位分配主存,所以無緊縮問題,也沒有頁外的碎片存在; 便于處理變化的數據結構,段可動態增長; 便于共享,只要欲共享作業的段表中有相應表目指向該共享段在主存中的頁表地址; 便于控制存取訪問。 缺點 增加了硬件成本,因為需要更多的硬件支持; 增加了軟件復雜性和管理開銷; 同分頁系統一
36、樣仍然存在頁內碎片。2022-6-150頁面置換算法的引出 當系統中沒有空閑頁時,就要進行頁面置換,即挑選一個頁面淘汰出去,并把此頁架分給進程使用; 問題 挑選什么樣的頁面來淘汰? 從該進程已有頁面集中還是在全體頁面集中選擇淘汰頁,即局部置換還是全局置換?2022-6-151頁面置換算法(1) 最佳置換算法 淘汰在將來再也不被訪問,或者是在最遠的將來才被訪問的頁; 最近未使用置換算法 不但希望淘汰的頁是最近未使用的頁,而且還希望被挑選的頁在主存駐留其間,其頁面內的數據未被修改過; 先進先出置換算法 選擇最早進入主存的頁面淘汰,理由是其不再使用的可能性比最近調入的頁面要大; 但只是在按線性順序訪問地址空間時,才是理想的,否則效率不高; 隨著分給的頁架數增加,缺頁頻率也增加;2022-6-152頁面置換算法(2) 二次機會置換算法 把先進先出算法與使用頁表中的訪問位結合起來; 首先檢查先進先出鏈上的最前面(最早進入)的頁,如果它的訪問位為0,則選擇該頁淘汰;如果它的訪問位為1,則把該頁移到FIFO的鏈尾,即把它作為新調入的頁; 繼續查找鏈上的下一個頁并檢查它們的訪問頁,直到遇到訪問位為0的那些較先進入的頁,把它選擇為被淘汰的頁。 時鐘頁面置換算法 把進程所訪問的頁構成一個象時鐘那樣的環形鏈表; 產生缺頁中斷時,先檢測指針所指的頁,如果它的引用位
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國色酚AS-PH項目投資可行性研究分析報告
- 2025-2030年中國微電腦環壓試驗機項目投資可行性研究分析報告
- 2025年熱泵行業市場趨勢分析報告
- 服行業市場現狀分析及競爭格局與投資發展研究報告2025-2030版
- 2025-2030年中國烤火雞胸行業深度研究分析報告
- 2024年全球及中國聲學氣體泄漏檢測儀行業頭部企業市場占有率及排名調研報告
- 2025-2030年中國稻安康EC+增效劑行業深度研究分析報告
- 2025-2030年中國白金祖母綠掛件行業深度研究分析報告
- 農村土地贈與合同
- 代理期貨交易所合同
- 《旅行社經營管理》考試復習題庫及答案
- 粵教版五年級下冊科學知識點
- 《最好的未來》合唱曲譜
- 文言文《守株待兔》說課稿課件
- 生物礦物課件
- GB∕T 36765-2018 汽車空調用1,1,1,2-四氟乙烷(氣霧罐型)
- DB34-T 4243-2022 智慧醫院醫用耗材SPD驗收規范
- 《覺醒年代》朗誦稿
- 混凝土格構梁護坡施工方案設計
- 小學教育專業畢業論文
- 西南交通大學學報排模板
評論
0/150
提交評論