




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第三章存儲管理第三章存儲管理主存儲器是僅次于CPU的寶貴資源。眾多進程共用一個存儲器,必然涉及到存儲器的分配、安全、利用率、共享以及擴展等諸多問題。存儲管理需要做的事情是:將用戶程序所用的地址空間轉(zhuǎn)換為主存儲器中的實際地址空間,將用戶程序的操作地址變換為存儲器上的具體位置。為存儲空間提供安全和共享的手段。為用戶程序?qū)崿F(xiàn)虛擬存儲空間等。3.1實用系統(tǒng)中的存儲管理方法DOS分區(qū)及分段WindowsXP的存儲器Linux存儲管理3.1.1DOS分區(qū)及分段
主存儲器被限制為1MB的內(nèi)存空間。
低端的640KB的基本內(nèi)存。高端的擴展內(nèi)存。系統(tǒng)啟動后將操作系統(tǒng)調(diào)入基本內(nèi)存的低端位置,大概占幾十KB的空間。
基本內(nèi)存的剩余部分便是用來存放用戶程序的用戶區(qū)。在DOS發(fā)展的后期,已經(jīng)可以利用擴展內(nèi)存來存放系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)、驅(qū)動程序以及某些庫文件等內(nèi)容,但用戶不能對擴展存儲器中的內(nèi)容進行修改。程序和數(shù)據(jù)不能突破基本內(nèi)存的限制,因此,用戶程序的大小必須低于640KB。
用戶區(qū)內(nèi)只能存放一個用戶程序,因此,DOS系統(tǒng)只支持單道程序。
3.1.2Windowsxp的存儲器
Windowsxp要求存儲器最低為64MB。內(nèi)存被劃分為大小為4KB的頁面。內(nèi)存中可以存放多個用戶任務的頁面,因此,Windows支持多任務同時運行。用戶在編制程序時,其大小最高可達4GB,但在程序運行時,并不是全部程序都裝入內(nèi)存,而是只裝入程序的部分頁面來運行。當需要裝入新的程序頁面而內(nèi)存中又沒有足夠的空閑區(qū)域時,操作系統(tǒng)將內(nèi)存中長期未使用的頁面換出到輔助存儲器上早已安排的頁面(pagingfile)文件中,騰出空間后再將需要換進的頁面調(diào)入。Windows支持虛擬存儲器。3.1.2Windowsxp的存儲器
頁面在內(nèi)存中換出換進PageFaults/sec是每秒鐘發(fā)生頁面缺失的平均數(shù)量。頁面缺失將直接導致頁面換進。PagesInput/sec是從磁盤換進頁面的速度。當一個進程引用一個虛擬內(nèi)存的頁面,而此頁面不存在于內(nèi)存,就會發(fā)生頁面缺失。PagesOutput/sec是指為了釋放物理內(nèi)存空間而將頁面寫入磁盤的速度。當物理內(nèi)存不足時,Windows會將頁面寫回到磁盤以便釋放空間。出頁的峰值往往與進頁峰值接近。說明出頁多是因為有進頁需求,即只有當內(nèi)存中沒有可分配空間,同時又必須調(diào)入內(nèi)存新的頁面時,才需要換出頁面。3.1.2Windowsxp的存儲器
可用物理內(nèi)存AvailableMBytes是計算機上運行的進程的可用物理內(nèi)存大小。它是將零的、空閑的和備用內(nèi)存列表的空間添加在一起來計算的。3.1.3Linux存儲管理
Linux系統(tǒng)也是將存儲器空間劃分成頁面,根據(jù)進程運行時的需要來對頁面進行換進、換出的。同樣在磁盤上也安排了交換區(qū)來與內(nèi)存協(xié)調(diào)工作,以達到擴大內(nèi)存的目的。但是Linux系統(tǒng)的交換區(qū)多采用在硬盤上劃分出一個指定區(qū)域來作為交換區(qū),因此,交換區(qū)的大小不可變化。3.2存儲管理功能用戶實體與存儲空間分配、釋放及分配原則地址映射虛擬存儲器存儲保護與共享存儲區(qū)整理3.2.1用戶實體與存儲空間
1.用戶實體與存儲器的關系任務在被激活之前存放在輔助存儲器上。當任務被激活時,它成為進程進入主存儲器。進程的描述部分及主程序部分始終存放于主存儲器,其他程序和數(shù)據(jù)部分視需要由操作系統(tǒng)在內(nèi)存與外存之間交換。當用戶向計算機提交自己的任務時,存儲管理是以一種邏輯形式來進行描述。而當操作系統(tǒng)處理用戶的任務時,是對具體的存儲器地址進行操作。存儲管理的工作就是圓滿地處理發(fā)生在銜接邏輯和物理存儲時所產(chǎn)生的各種問題。3.2.1用戶實體與存儲空間
2.存儲空間與存儲地址概念:
邏輯地址 邏輯地址空間 物理地址 物理地址空間用戶的每一條程序指令要訪問的數(shù)據(jù)都有一個對應的地址,這個地址被稱為邏輯地址。由于它是相對于0的地址,因此又被稱為相對地址。當用戶程序被編譯為目標代碼時也使用的是相對地址。原則上講,因此用戶可以無限制地加長自己的程序。在具體應用中相對地址的大小受相對地址寄存器位數(shù)的限制,如在Windows中相對地址寄存器為32位,表示相對地址最大可達4GB。邏輯地址空間可以定義為:實體(用戶、作業(yè)、任務、進程或程序)所用的所有邏輯地址的集合。不同的操作系統(tǒng)賦予邏輯地址空間不同的表現(xiàn)形式,它的大小也是可以確定的。用戶可以直接對邏輯地址和邏輯地址空間進行訪問和操作。邏輯地址空間又稱為相對地址空間,有時候也被簡稱為用戶空間或者作業(yè)空間。邏輯地址空間的大小被限制在0到相對地址最大值之間。內(nèi)存中的實際地址被稱為物理地址。由于它并不和任何相對地址相關,因此,物理地址又稱為絕對地址。物理地址的最小值為0,最大值取決于內(nèi)存的大小和內(nèi)存地址寄存器的所能表現(xiàn)的最大值,二者中較小的那一個值為物理地址的最大值。
物理地址空間可以定義為:當邏輯地址空間被映射到內(nèi)存時所對應的物理地址的集合。物理地址空間又稱為絕對地址空間。物理地址空間并不是指物理內(nèi)存,只有當邏輯地址空間存在時,才會有物理地址空間。物理地址空間受存儲器大小的限制,也就是說物理地址空間最大只能達到內(nèi)存的大小。3.2.2分配、釋放及分配原則
1.存儲分配
2.存儲釋放
3.分配原則
在設計分配程序時需要考慮諸多因素:(1)內(nèi)存空間的劃分(2)數(shù)據(jù)結(jié)構(gòu)的確定
(3)作業(yè)空間的劃分(4)淘汰算法
(5)分配算法
存儲分配實際上是將作業(yè)的邏輯地址空間映射成為內(nèi)存中的物理地址空間。內(nèi)存中有許多尚未使用的區(qū)域即自由區(qū)都可以被分配,但到底選擇哪一自由區(qū)必須依據(jù)分配算法來確定。存儲釋放實際上是解除邏輯地址空間與物理地址空間的聯(lián)系,并釋放物理空間。存儲釋放程序?qū)⒒厥盏膬?nèi)存區(qū)域重新設定為自由區(qū),并將其安排進入自由區(qū)隊列。進入自由區(qū)隊列的具體位置也必須依據(jù)分配算法。3.2.3地址映射
裝入后的作業(yè)并不能立即運行,因為作業(yè)中每一個指令要訪問的地址依然是相對地址,相對地址是邏輯地址空間中的地址,并不是內(nèi)存中的實際地址,因此不能夠訪問。裝入是指將邏輯地址空間安排到內(nèi)存中具體的物理位置上。裝入針對的是整個邏輯地址空間。1.裝入2.地址映射對于指令要訪問的地址進行相對地址到絕對地址的變換,就是地址映射。地址映射就是將邏輯地址空間中的地址映射到物理地址空間中去。采用的辦法為重定位。3.重定位在裝入過程完成后,根據(jù)裝入的起始位置來修改程序中指令要訪問的地址,將相對地址改為絕對地址就是重定位。絕對地址=(BR)+相對地址根據(jù)不同的地址修改時間可將重定位劃分為靜態(tài)重定位和動態(tài)重定位。3.2.3地址映射
3.重定位:靜態(tài)重定位動態(tài)重定位靜態(tài)重定位是在裝入過程完成后在程序運行前,一次將所有的指令要訪問的地址全部修改為絕對地址,在程序運行過程中不再修改。靜態(tài)重定位要求程序一旦裝入其絕對地址空間就不能發(fā)生變化了。
動態(tài)重定位是在程序的運行過程中,當指令需要執(zhí)行時對將要訪問的地址進行修改。動態(tài)重定位允許在程序運行過程中,其絕對地址空間發(fā)生變化或被分割為不同的區(qū)域,變化后只需要將基地址寄存器中的內(nèi)容作對應修改。
采用靜態(tài)重定位方式的主要優(yōu)點是:(1)可以在一般機器上全部用軟件實現(xiàn)。(2)裝入程序可以實現(xiàn)靜態(tài)連接。靜態(tài)重定位方式主要缺點是:(1)執(zhí)行期間程序不能在主存儲器中移動,所以對提高主存儲器的利用率不利。(2)若程序空間大于被分配的物理空間,由程序員自行采取某種手段來空間不足問題,如采用覆蓋結(jié)構(gòu)。(3)用戶不能共享已經(jīng)存放在主存中的同一個程序,如果幾個用戶要使用同一個程序,則每個用戶必須在各自的主存空間中存放一個程序副本。
采用動態(tài)重定位方式的主要優(yōu)點有:(1)在程序開始執(zhí)行之前,不一定要把整個程序都調(diào)入到主存中。一個程序可以被分配在多個不連續(xù)的主存物理空間內(nèi),以提高主存儲器的利用率。(2)幾個程序可以共享存放在主存中的同一個程序段。(3)支持虛擬存儲器。動態(tài)重定位方式的主要缺點有:(1)需要有硬件支持。(2)實現(xiàn)存儲管理的軟件算法比較復雜。3.2.4虛擬存儲器
(1)實際內(nèi)存空間(2)輔助存儲器上的內(nèi)存交換區(qū)(3)虛擬地址(4)換進、換出機制虛擬存儲器是將內(nèi)存進行虛擬,使用戶能使用比實際內(nèi)存大得多的虛擬空間。要實現(xiàn)虛擬內(nèi)存必須具備如下條件:
目前的操作系統(tǒng)幾乎全部具備虛擬存儲器功能,雖然不同的系統(tǒng)其實現(xiàn)虛擬存儲器的基本條件都相似,但在數(shù)據(jù)的換進、換出策略上是可以不同的。
3.2.5存儲保護與共享
存儲保護就是要保護進程的數(shù)據(jù)不被非法訪問者破壞。
(1)界地址寄存器保護法 (2)訪問授權(quán)保護3.2.5存儲保護與共享
(1)界地址寄存器保護法 采用硬件: 基地址寄存器BR
長度寄存器LR
采用軟件:當進程之間需要共享某些數(shù)據(jù)時,使用界地址寄存器就表現(xiàn)得無能為力。
3.2.5存儲保護與共享
(2)訪問授權(quán)保護當進程訪問某個區(qū)域時,若進程的訪問權(quán)限大于等于被訪問區(qū)域的權(quán)限值,訪問可以進行,否則視為非法。系統(tǒng)為每一個存儲區(qū)域都給定一個訪問權(quán)限值。同時也為每一個進程賦予一個訪問權(quán)限值。一個進程可以對不同存儲區(qū)域有不同的訪問權(quán)限;一個存儲區(qū)域也可以被多個具有不同訪問權(quán)限的進程按權(quán)限級別進行訪問。訪問授權(quán)保護還有一個好處是它允許存儲區(qū)域的共享。3.2.6存儲區(qū)整理
當系統(tǒng)運行一段時間后,可能出現(xiàn)如下問題:
產(chǎn)生許多碎片; 進程過分分散存儲; 換進、換出的次數(shù)過多,導致系統(tǒng)運行緩慢; 不斷“內(nèi)存空間不夠”。 ——存儲區(qū)需要整理。3.2.6存儲區(qū)整理
存儲器的整理方法:
(1)定期將內(nèi)存中的碎片合并; (2)將某些進程的分散存儲區(qū)域移動到一起。經(jīng)過整理后
系統(tǒng)中有更大的自由分區(qū),提高存儲管理的效率; 在整理時中斷所有進程,并且需要消耗較多的CPU時間。3.3分區(qū)管理單一分區(qū)多重固定分區(qū)多重動態(tài)分區(qū)3.3.1單一分區(qū)
1.原理連續(xù)的用戶邏輯地址空間,經(jīng)過裝入程序直接裝入分區(qū)的低地址部分的單一的連續(xù)的區(qū)域。2.分配與釋放
3.3.1單一分區(qū)
3.地址映射采用靜態(tài)重定位的方式在作業(yè)裝入時一次性對所有指令將要訪問的地址進行修改。由于作業(yè)的物理地址空間不會發(fā)生變化,因此,單一連續(xù)分區(qū)不適合使用動態(tài)重定位。
3.3.1單一分區(qū)
4.存儲保護使用界地址寄存器保護法。其中,基址寄存器的內(nèi)容是操作系統(tǒng)常駐內(nèi)存部分以后的首地址,長度寄存器的內(nèi)容便是用戶可用區(qū)域的長度。由于操作系統(tǒng)不會發(fā)生變化,甚至可以不使用界地址寄存器,而將基址和長度用兩個常量來代替。3.3.1單一分區(qū)
5.單一連續(xù)分區(qū)的優(yōu)缺點3.3.1單一分區(qū)
(1)管理簡單。(2)使用安全。(3)不需要任何附加的硬件設備。(1)作業(yè)的大小受用戶區(qū)大小的限制。(2)不支持多用戶。(3)容易造成系統(tǒng)資源的浪費。3.3.2多重固定分區(qū)
將內(nèi)存空間由小到大劃分為若干個位置固定大小不等的區(qū)域,每個區(qū)域可以存放一個作業(yè),存放于不同區(qū)域的作業(yè)可以并行。用戶邏輯地址空間依然是一個連續(xù)的整體,在作業(yè)申請進入內(nèi)存時一次性裝入。
描述內(nèi)存中每一個區(qū)域的情況描述存放于區(qū)域中的作業(yè)3.3.2多重固定分區(qū)
地址映射由于作業(yè)被分配進入內(nèi)存后位置不再發(fā)生變化,因此,地址映射可以采用靜態(tài)重定位方法。不過我們要注意到每一個作業(yè)的物理地址空間的起始位置是不相同的,因此,對每一個作業(yè)進行重定位時要修正基址寄存器的值。存儲保護存儲保護可以采取界地址寄存器的方法和訪問授權(quán)保護,由于作業(yè)在內(nèi)存中的位置保持不變,可以用兩個常量替代界地址寄存。
3.3.2多重固定分區(qū)
優(yōu)缺點:(1)提高了CPU的利用率。(2)作業(yè)大小受到最大分區(qū)大小的限制。(3)空間浪費。(4)碎片問題。3.3.3多重動態(tài)分區(qū)
根據(jù)作業(yè)對內(nèi)存空間的申請來劃分主存區(qū)域,區(qū)域的大小可變、位置可變、數(shù)量也可變
描述已被分配的區(qū)域描述內(nèi)存中的自由區(qū)域為每一個自由分區(qū)設置一個鏈接指針來指向下一個自由分區(qū),使所有的自由分區(qū)形成一個鏈表3.3.3多重動態(tài)分區(qū)
多重分區(qū)分配與釋放
將作業(yè)分配到內(nèi)存中第一個碰到的大于或等于作業(yè)申請空間的未分配區(qū)。將作業(yè)申請大小與內(nèi)存中所有未分配區(qū)的大小進行比較,直到找到最小的大于或等于作業(yè)空間的區(qū)分配給作業(yè)。將作業(yè)申請大小與內(nèi)存中所有未分配區(qū)的大小進行比較,直到找到最大的大于或等于作業(yè)空間的區(qū)分配給作業(yè)。算法簡單但分配比較盲目,可能造成較小的作業(yè)分割了較大的空間,使大作業(yè)無法被分配。優(yōu)先使用小的自由空間,但每次分配以后的剩余空間可能變得過小而成為碎片。使用大的自由空間,在進行分割后剩余空間還可以被使用,但也使大的自由空間無法保留給需要大空間的作業(yè)。另外可以有:最佳適應算法也是最先適應算法最壞適應算法也是最先適應算法——如何實現(xiàn)?——幾種方法比較3.3.3多重動態(tài)分區(qū)
4.地址映射
動態(tài)分區(qū)采用動態(tài)重定位方式來實現(xiàn)地址映射,這樣作業(yè)的基地址發(fā)生變化也不會影響執(zhí)行。當作業(yè)被選擇運行時,其物理空間起始地址被裝入基地址寄存器中,CPU每執(zhí)行一條指令之前重定位硬件對指令要訪問的地址進行修改。5.存儲保護存儲保護可以采用界地址寄存器的方法和訪問授權(quán)保護,不過由于作業(yè)被分配于內(nèi)存一個連續(xù)的區(qū)域中,訪問授權(quán)保護的作用似乎并不大,因為作業(yè)并沒有對其他作業(yè)空間的訪問權(quán)力。3.3.3多重動態(tài)分區(qū)
6.存儲區(qū)整理經(jīng)過不斷地分配和釋放后,內(nèi)存中自由分區(qū)會變得越來越多和越來越小,這就使很多小自由分區(qū)成為碎片??梢杂镁o縮的方法來解決碎片。緊縮是將內(nèi)存中已使用區(qū)域經(jīng)過移動沉淀到低地址部分,從而使碎片浮動到內(nèi)存的高地址部分合并成較大的可使用空間。用緊縮方法來消除碎片需要占用大量的CPU時間,并且在移動過程中稍有不慎就有可能破壞全部數(shù)據(jù)。3.3.3多重動態(tài)分區(qū)
7.多重動態(tài)分區(qū)的優(yōu)缺點(1)多道程度得以提高。(2)提高了內(nèi)存的利用率。(3)作業(yè)大小依然受內(nèi)存容量的限制。(4)對碎片問題的解決需要以增加系統(tǒng)開銷為代價。(5)不便共享。3.4分頁管理分區(qū)管理中要求:
一次性將作業(yè)空間分配到內(nèi)存的某一個區(qū)域中,即使內(nèi)存中空閑區(qū)域總和超過作業(yè)要求的空間,如果沒有合適的區(qū)域,分配將無法完成,其原因是作業(yè)空間始終是一個整體。能否將作業(yè)空間分割成若干部分呢?
靜態(tài)分頁管理 動態(tài)分頁管理
3.4.1靜態(tài)分頁管理
作業(yè)地址空間劃分成連續(xù)的大小相同的頁面內(nèi)存劃分成連續(xù)的大小相等的塊(也稱為頁框)頁面的大小與內(nèi)存塊的大小完全相同作業(yè)進入內(nèi)存時其不同的頁面對應于內(nèi)存中不同的塊,連續(xù)頁面可以對應不連續(xù)的塊。1.原理
2.邏輯地址
3.4.1靜態(tài)分頁管理
頁面號,頁號的范圍還取決于邏輯地址的位數(shù)。頁內(nèi)位移,頁內(nèi)位移范圍與內(nèi)存塊的大小有關例:假定邏輯地址為32位,內(nèi)存塊的大小為4KB。4KB的頁內(nèi)位移變化范圍為0~4095字節(jié),這需要12位來進行描述(212=4×1024);剩下的20位就是頁面號的范圍0~1048575(220-1)。由此可見內(nèi)存塊的劃分有一定的規(guī)則,其大小只能是2N。分頁管理的邏輯地址實際上是線性變化的。用戶編程時不需要確定邏輯地址的頁面號和頁內(nèi)位移,只有邏輯地址空間進入物理地址空間后,頁面號和頁內(nèi)位移才通過計算電路來劃分。對于用戶而言,邏輯地址就是一個受地址寄存器位數(shù)限制的連續(xù)變化的地址范圍,可以根據(jù)需要來確定頁面大小和頁面號的范圍,因此我們稱分頁管理的邏輯地址空間為線性空間。3.數(shù)據(jù)結(jié)構(gòu)
3.4.1靜態(tài)分頁管理
頁表:頁表用來說明作業(yè)頁面號與內(nèi)存塊號的對應關系,內(nèi)容包括頁面號、內(nèi)存塊號。頁表寄存器:頁表寄存器用來存放作業(yè)所對應的頁表的起始地址。內(nèi)存分塊表:內(nèi)存分塊表內(nèi)容為塊號、塊使用狀態(tài)(已使用或未使用)。作業(yè)表:作業(yè)表內(nèi)容為作業(yè)號、頁表起始地址。4.地址映射
3.4.1靜態(tài)分頁管理
頁表起始地址
頁表中頁號為P的表目地址:(頁表寄存器)+表目長度×P獲得對應的內(nèi)存塊號P’獲得絕對地址:P’×頁框長度+d5.分配與釋放
3.4.1靜態(tài)分頁管理
6.存儲保護與共享
3.4.1靜態(tài)分頁管理
存儲保護:用頁表寄存器來記錄頁表的起始地址和頁表長度,它相當于界地址寄存器的功能作業(yè)A、作業(yè)B、作業(yè)C共享一個內(nèi)存塊的情況無法真正實現(xiàn)共享!7.存儲區(qū)整理表面看來不存在內(nèi)存空間的浪費。但存在頁內(nèi)碎片。內(nèi)存分塊越大,頁內(nèi)碎片也越大。如何減小頁內(nèi)碎片?3.4.1靜態(tài)分頁管理
8.靜態(tài)分頁管理的優(yōu)缺點(1)管理簡單(2)每訪問一次內(nèi)存數(shù)據(jù)需要經(jīng)過二次尋址。(3)解決了碎片問題。無須內(nèi)存碎片整理。(4)無法實現(xiàn)共享。(5)作業(yè)大小受內(nèi)存可用頁面數(shù)的限制。——如果想在內(nèi)存中運行較大的作業(yè),則必須利用內(nèi)存以外的存儲空間。3.4.1靜態(tài)分頁管理
3.4.2動態(tài)分頁管理
1.原理
與靜態(tài)分頁管理不同:——按需分配。將需要運行的頁面存放于內(nèi)存,暫時不需要運行的頁面存放于輔存,當需要運行存放于輔存上的頁面時,再將對應的頁面調(diào)入內(nèi)存。注意頁表變化4.分配與淘汰算法——動態(tài)分配
4.分配與淘汰算法——淘汰算法3.4.2動態(tài)分頁管理
衡量淘汰算法依據(jù):——好的淘汰算法應該有較低的缺頁率和淘汰率。
4.分配與淘汰算法——淘汰算法選擇在最遠的將來才被訪問的頁面淘汰。
誰是最遠的、將來才被訪問的頁面?選擇最早進入內(nèi)存的頁面淘汰
這種方法包含一個假定:最早進入內(nèi)存的頁面就是目前最不會被使用的頁面。假定不成立?——系統(tǒng)抖動!4.分配與淘汰算法——淘汰算法選擇最近一段時間內(nèi)最長時間未被使用的頁面淘汰該算法的假定:長時間未使用的頁面不會馬上被使用。這正好符合內(nèi)存局部性原理(內(nèi)存中某個位置現(xiàn)在被訪問,很快將再次被訪問;某個位置現(xiàn)在被訪問,其鄰近位置也將被訪問。)問題:需要確定一個比較時間段來反映哪一個頁面長期未被使用,時間段過長時該算法將變?yōu)橄冗M先出算法,時間段過短又會使系統(tǒng)頻繁地記錄訪問次數(shù)并進行比較,從而增加系統(tǒng)開銷。(4)最近未使用算法(NRU)
選擇頁面選擇指針遇到的最近未被訪問的頁面淘汰。簡化的方法是:頁面選擇指針下移,只要遇到剛才未使用的頁面就可以淘汰。
5.虛擬存儲器動態(tài)分頁技術(shù)實現(xiàn)了虛擬存儲器。
虛擬要素?3.4.2動態(tài)分頁管理
6.加速尋址二次尋址?一次尋址?3.4.2動態(tài)分頁管理
7.分頁管理的優(yōu)缺點(1)管理簡單。(2)支持虛擬存儲器。(3)無法實現(xiàn)共享?!鳂I(yè)空間按邏輯意義分割!3.4.2動態(tài)分頁管理
3.5分段與段頁式管理分段管理段頁式管理3.5.1分段管理
作業(yè)地址空間按邏輯意義劃分成段,每段都有其對應的段號和段長,對分段數(shù)量和分段的長度沒有限制。
內(nèi)存空間采用多重動態(tài)分區(qū)的形式,分區(qū)的長度和位置沒有限制。
段表將作業(yè)中的段對應于內(nèi)存中的分區(qū)。有缺段機制。1.原理3.5.1分段管理
2.邏輯地址
段號S段內(nèi)位移d每個段的段內(nèi)位移的范圍是不同的。 分頁管理中,邏輯地址是線性地址。 分段管理中,段號S和段內(nèi)位移d不能形成一個線性地址,因為它實際上是代表著段長和段內(nèi)位移兩個變量。 由于這兩個變量沒有特定的限制范圍而無法用一個變量來替代,因此分段管理的邏輯地址是二維地址,分段管理的邏輯地址空間是二維空間。
3.5.1分段管理
3.數(shù)據(jù)結(jié)構(gòu)
段表段表寄存器內(nèi)存分塊表Or 已使用分區(qū)表 自由分區(qū)表 自由分區(qū)塊鏈作業(yè)表3.5.1分段管理
4.地址映射
段表中段號為S的表目地址=(段表寄存器)+表目長度×S段表起始地址=(段表寄存器)對應的內(nèi)存分區(qū)地址S′絕對地址=S′+d3.5.1分段管理
5.分配與釋放
首先為作業(yè)分配段表空間;分配主程序段: 按一定的分配算法(內(nèi)存空間采用動態(tài)分區(qū)形式,因此分配算法可采用最先適應算法、最佳適應算法或者最壞適應算法。)填寫段表: 填入對應段表表目中該段的內(nèi)存地址,其他暫時不在內(nèi)存的段,缺段狀態(tài)置為1,在需要運行時再調(diào)入。6.連接
當作業(yè)空間邏輯分段后,用戶是靠調(diào)用來實現(xiàn)段與段之間的關系,而存儲管理將其實現(xiàn)稱為連接——
連接也可以分為靜態(tài)連接與動態(tài)連接。6.連接
3.5.1分段管理
靜態(tài)連接發(fā)生在作業(yè)剛裝入內(nèi)存還沒有被執(zhí)行前,——一次完成所有連接。動態(tài)連接發(fā)生在執(zhí)行過程中,每當作業(yè)段與段之間產(chǎn)生調(diào)用要求時才進行連接。問題:作業(yè)段必須一次全部調(diào)入內(nèi)存,限制了作業(yè)的大小,對內(nèi)存的容量要求高。作業(yè)中的各段沒有必要一次全部調(diào)入,這極大的提高了內(nèi)存的利用率。分段管理采用的是動態(tài)連接方式。7.共享
3.5.1分段管理
8.存儲保護 在段表中既有段的起始位置也有段的長度,——實現(xiàn)作業(yè)區(qū)域的界限管理。 在段表中增加一個訪問權(quán)限項,——實現(xiàn)訪問授權(quán)控制。9.虛擬存儲器 缺段中斷機制+換進、換出,——實現(xiàn)了虛擬存儲器。10.存儲區(qū)整理 動態(tài)分區(qū)形式導致內(nèi)存碎片,——可以使用緊縮的方法。3.5.1分段管理
11.分段管理的特點(1)易于實現(xiàn)共享。(2)實現(xiàn)了動態(tài)連接。(3)實現(xiàn)了虛擬存儲器。(4)段長受內(nèi)存容量的限制。(5)內(nèi)存管理復雜。3.5.1分段管理
有沒有同時利用分頁管理和分段管理的優(yōu)點,克服它們的弱點管理方法?3.5.2段頁式管理
作業(yè)地址空間分段再分頁內(nèi)存分塊(頁框)對應頁表是否在內(nèi)存對應頁面是否在內(nèi)存3.5.2段頁式管理
2.邏輯地址
段號頁號頁內(nèi)位移一維地址二維地址3.5.2段頁式管理
3.數(shù)據(jù)結(jié)構(gòu)段表頁表段表寄存器存儲分塊表作業(yè)表3.5.2段頁式管理
4.地址映射
3.5.2段頁式管理
5.分配與釋放
段表分配
頁表分配
內(nèi)存塊分配淘汰算法3.5.2段頁式管理
6.連接與共享連接——頁表動態(tài)連接(段連接)共享——同分段管理的共享7.存儲保護同分段管理的存儲保護8.虛擬存儲器缺段中斷+缺頁中斷+淘汰算法3.5.2段頁式管理9.存儲區(qū)整理只存在頁內(nèi)碎片10.快速尋址使用高速存儲器來存放常用頁面的頁表,頁表內(nèi)容為:段號、頁號和塊號。各種存儲管理方案比較
3.6常用系統(tǒng)的存儲管理方案DOS系統(tǒng)存儲管理WindowsXP的存儲管理Linux系統(tǒng)的存儲管理3.6.1DOS系統(tǒng)存儲管理
單一連續(xù)分區(qū)方式,用戶程序一次全部調(diào)入內(nèi)存。用戶地址空間可以分為四段。用來存放程序的代碼段,用來存放數(shù)據(jù)的數(shù)據(jù)段,用來實現(xiàn)數(shù)據(jù)操作的堆棧段,用來處理數(shù)組的地址段。這些段不需要連續(xù)存放,用戶甚至可以指定段的相對位置。段的起始地址由對應的段寄存器來指定,絕對地址由段地址加上段內(nèi)位移來確定。如果用戶程序必須突破640KB的限制,可以采用稱為覆蓋的技術(shù)來進行編程。覆蓋技術(shù)實際上是同層模塊對同一個內(nèi)存區(qū)域的覆蓋使用,以此來節(jié)約內(nèi)存空間。如果用戶程序采用了覆蓋技術(shù),只要不同層次的最大模塊的總和不超過640KB,該程序就可以運行。DOS系統(tǒng)只能識別1MB以內(nèi)的內(nèi)存空間。3.6.2Windows的存儲管理
Windowsxp使用的是486以上I386系列CPU提供的段頁式管理。CPU提供了一個16位的段選擇器和32位的偏移地址寄存器,因此,允許用戶空間分段,每段最大可達4GB。內(nèi)存空間分為大小為4KB的塊。Windowsxp為每個進程提供4GB的虛擬存儲器,它由物理內(nèi)存和用戶驅(qū)動器根目錄上的頁面文件(pagingfile)構(gòu)成,虛擬空間的實現(xiàn)是由在內(nèi)存與頁面文件之間的交換來完成的,交換的基本單位為4KB的頁面。虛擬地址有前、后兩個64KB的保護區(qū),該保護區(qū)的應用是為了防止編程錯誤而設定的。用戶程序的虛擬地址起始位實際為0x00400000。3.6.2Windows的存儲管理
4GB的虛擬地址又被分割成兩個2GB空間,低端的2GB提供給用戶進程使用,內(nèi)裝用戶進程的程序代碼、數(shù)據(jù)等,高端的2GB為系統(tǒng)進程使用。用戶進程的虛擬地址空間被分為自由、已確認和保留三個部分:虛擬內(nèi)存的確認區(qū):具有備用的物理內(nèi)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)生三方就業(yè)合同解析
- 保密合作研發(fā)合同
- 房產(chǎn)贈與合同模板:父母與子女
- 員工合同終止協(xié)商一致書
- 委托代理合同專兼職律師版
- 地鐵站內(nèi)廣告牌租賃合同
- 度水果貿(mào)易合同書
- 保密協(xié)議合同英文樣本
- Module 6 Unit 2 Happy Mid-Autumn Festival(教學設計)-2024-2025學年外研版(三起)英語四年級上冊
- 9《清明》教學設計-2023-2024學年三年級下冊語文統(tǒng)編版
- 公司安全事故隱患內(nèi)部舉報、報告獎勵制度
- 云停車平臺商戶使用說明
- 《第一章 體育與健康理論知識課件》初中體育與健康
- 客戶關系管理全套ppt課件(完整版)
- 福尼亞胰島素泵操作介紹
- 工程倫理-第章工程與倫理通用PPT課件
- 病理學第二節(jié)細胞和組織損傷的原因和機制
- 稻谷品質(zhì)測定指標及方法
- 小學四年級上冊口算題大全800題(口算天天練)
- 醫(yī)院醫(yī)保月結(jié)算報表
- 教師如何做小課題研究(李海波)
評論
0/150
提交評論