資源描述:
《最新操作系統(tǒng)原理-第4章-存儲-段式存儲教學(xué)講義ppt課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、操作系統(tǒng)原理-第4章-存儲管理-段式存儲管理4.4基本分段存儲管理方式固定分區(qū)動態(tài)分區(qū)分頁存儲管理提高內(nèi)存利用率知識回憶分段存儲管理引入原因滿足用戶(程序員)在編程和使用上多方面的需要方便編程分段共享分段保護動態(tài)鏈接動態(tài)增長4.4.1分段存儲管理方式的引入2段表:為了實現(xiàn)段的邏輯地址到物理地址的轉(zhuǎn)換,必須為每個進程建立一個段表,用于記錄各段的內(nèi)存分配信息。段號段長基址030K40K120K80K215K120K310K150K段表示意圖段表的存儲和隸屬關(guān)系:存儲:段表一般存放在內(nèi)存中,由段表始址和段表長度唯一確定;歸屬:每個進程擁有一個段表;并在進程PCB記錄段表的始址和段表長
2、度;目的:實現(xiàn)段的地址映射。段表實現(xiàn)地址映射示意圖3地址變換地址變換機構(gòu):段地址變換機構(gòu)由段表、段表寄存器、物理地址寄存器等硬件設(shè)施以及相關(guān)軟件組成;段表寄存器:存放段表始址和段表長度;地址變換過程如下圖所示:段表寄存器段表始址段表長度TL≤2100段號S位移量W+越界中斷段號段長始址01231k6005002006k4k8k9200+8292主存物理地址邏輯地址段表段式系統(tǒng)地址變換過程示意圖8kW<5008k+10082928691not段地址變換過程描述從段邏輯地址寄存器中取得段號S和段內(nèi)位移量W;將S與段表寄存器中的段表長度TL比較,若S≥TL,越界異常處理;否則,根據(jù)段
3、表始址和段號在段表中查找段號為S的表項,得到該段的內(nèi)存空間首地址;把段首地址與段內(nèi)位移相加,形成內(nèi)存地址送入物理地址寄存器中,并以此地址訪問內(nèi)存取出指令或數(shù)據(jù)。地址變換特點:同頁式地址變換一樣,在段地址變換過程中,也有兩次訪問內(nèi)存的問題。為了加快訪問內(nèi)存的速度,也可采用聯(lián)想存儲器組成快表。4分頁和分段的比較相同點:離散分配方式;不同點如下:段是依據(jù)程序的邏輯結(jié)構(gòu)劃分的,頁是按線性地址空間順序分割的;分段中程序地址空間是二維的,分頁中程序地址空間是一維的;段是面向用戶的(用戶決定),頁對用戶是透明的;段長由用戶決定,且各段的大小一般不相等(最大長度限制);面頁長是由系統(tǒng)決定的,各
4、頁的長度必須相等;段的共享比頁的共享更容易;論點:分段技術(shù)中信息共享比分頁技術(shù)中的信息共享更方便有效。信息共享舉例:有一多用戶系統(tǒng),可同時接納40個用戶,他們都執(zhí)行一個文本編輯程序(TextEditor)。假設(shè)文本編輯程序有160KB的指令代碼和另外40KB的數(shù)據(jù)區(qū)。假設(shè)文本編輯程序代碼是可重入的,試以分頁和分段存儲管理方式探討文本編輯程序的共享問題。假設(shè)分頁系統(tǒng)頁的大小為4K。具體見下圖。4.4.3信息共享分頁系統(tǒng)中共享Editor示意圖0139404901394049分段系統(tǒng)中共享editor的示意圖0101共享節(jié)省的內(nèi)存空間分析非共享時,每一進程需要分配160+40=20
5、0KB,而40個進程需要200*40=8000KB;分頁存儲管理方式共享Editor時,40個進程需要內(nèi)存空間為:40*40+160=1760KB;每個進程的頁表長度為50;分段共享存儲管理方式共享Editor時,40個進程需要內(nèi)存空間約為:40*40+160=1760KB;但每個進程的段表長度為2。段頁式存儲管理方式是將分段存儲管理方式與分頁存儲管理方式相結(jié)合而形成的一種存儲管理方式;段頁式存儲管理方式具有分段和分頁方式的共同優(yōu)點;基本原理:先將用戶程序分成若干段,每個段有其段名/號;然后再將每個段分成若干頁,段內(nèi)各頁順序編號(從0開始相對編號);舉例:一作業(yè)由三個程序段,按
6、照段頁式劃分地址空間如下圖4.4.4段頁式存儲管理方式段頁式作業(yè)地址空間和地址結(jié)構(gòu)示意圖改為:頁內(nèi)地址頁面大小為4KB2.段頁式存儲管理系統(tǒng)地址變換過程段頁式地址變換機構(gòu):每一進程擁有段表(置于內(nèi)存);各段擁有自己的一個段內(nèi)頁表(置于內(nèi)存);段表寄存器;物理地址寄存器等;段表與段內(nèi)頁表的組成:段表由段表項組成、段內(nèi)頁表由頁表項組成,所含字段如下圖所示;從段表、頁表實現(xiàn)地址映射的結(jié)構(gòu)示意圖段號狀態(tài)頁表大小頁表始址0111213041頁號狀態(tài)存儲塊#0111213041操作系統(tǒng)主存頁表段表段表大小段表始址段表寄存器段頁式系統(tǒng)地址變換過程具體變換過程(如下圖所示):①從邏輯地址中取得
7、段號S,并與段表寄存器中的段表長度TL比較,若S>=TL,越界處理;否則,由段表寄存器中的段表始址訪問段表,并找到本段的段表項;②由段表項指定的本段頁表起始地址訪問本段的頁表,并根據(jù)邏輯地址的頁號找到本頁所在的存儲塊;③然后,由塊號與頁內(nèi)地址(偏移)構(gòu)成實際的物理地址;④最后根據(jù)物理地址獲取實際信息數(shù)據(jù)。注意:在段頁式存儲系統(tǒng)中,獲取一條指令或數(shù)據(jù)需要訪問三次內(nèi)存:段表、頁表和實際數(shù)據(jù)。段頁式系統(tǒng)中的地址變換機構(gòu)與過程示意圖邏輯地址(注意:是二維的,后兩個構(gòu)成段內(nèi)偏移量)S≥TL第一次訪問內(nèi)