第2節(jié) 操作系統(tǒng)分段存儲管理_第1頁
第2節(jié) 操作系統(tǒng)分段存儲管理_第2頁
第2節(jié) 操作系統(tǒng)分段存儲管理_第3頁
第2節(jié) 操作系統(tǒng)分段存儲管理_第4頁
第2節(jié) 操作系統(tǒng)分段存儲管理_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第3單元主存管理第2節(jié)分段存儲管理什么是段?段如何放入內存地址映射碎片問題舉例程序員眼中的程序由若干部分(段)組成,每個段有各自的特點、用途:代碼段只讀,代碼/數(shù)據(jù)段不會動態(tài)增長…主程序main函數(shù)庫sin棧stack動態(tài)數(shù)組array變量集data程序員眼中的一個程序程序員怎么定位具體指令(數(shù)據(jù)):<段號,段內偏移>如mov[es:bx],ax00000第3單元主存管理第2節(jié)分段存儲管理什么是段?段如何放入內存地址映射碎片問題舉例不是將整個程序,是將各段分別放入內存021301230K70K180K330K360K420K460K500K基址長度保護段號180K150KR0360K60KR/W170K110KR/W2460K40KR3進程段表接下來的問題是內存怎么分割?

這樣就可以將程序的各個段載入到相應的內存分區(qū)中了劃分成一個個區(qū)固定分區(qū)與

可變分區(qū)分區(qū)1操作系統(tǒng)分區(qū)2分區(qū)3段請求段1操作系統(tǒng)段2段請求空閑固定分區(qū):初始化的時候劃分好分區(qū)可變分區(qū):依據(jù)段的大小,每次從空閑區(qū)中劃一塊數(shù)據(jù)結構Seg1操作系統(tǒng)Seg2空閑

空閑分區(qū)表每個進程都有一個段表始址長度250K250K始址長度標志100K100KSeg1200K50KSeg20K100K200K250K500K為一個段分配分區(qū)始址長度350K150KSeg1操作系統(tǒng)Seg2空閑

空閑分區(qū)表進程段表始址長度250K250K始址長度標志100K100KSeg1200K50KSeg20K100K200K250K500KSeg3空閑

段內存請求:reqSize=100K始址長度標志100K100KSeg1200K50KSeg2250K350KSeg3350K釋放一個內存分區(qū)始址長度350K150KSeg1操作系統(tǒng)Seg2空閑分區(qū)表段表始址長度350K150K200K50K始址長度標志100K100KSeg1250K100KSeg30K100K200K250K500KSeg3空閑

段2不再需要,釋放內存始址長度標志100K100KSeg1200K50KSeg2250K100KSeg3350K空閑

分區(qū)的分配思路依申請者所要求的主存區(qū)的大小,分區(qū)分配程序在空閑主存中找一個滿足用戶需要的空閑塊;若找到了所需的空閑區(qū),有兩種情況空閑區(qū)與要求的大小相等,將該空閑區(qū)分配并從空閑區(qū)管理數(shù)據(jù)中摘除;空閑區(qū)大于所要求的的大小,將空閑區(qū)分為兩部分:一部分成為已分配區(qū),建立相應數(shù)據(jù);剩下部分仍為空閑區(qū)。返回所分配區(qū)域的首址;否則,告之不能滿足要求或者交換或者整理碎片。檢查釋放分區(qū)(即為回收分區(qū))在主存中的鄰接情況;若上、下鄰接空閑區(qū),則合并,成為一個連續(xù)的空閑區(qū);若回收分區(qū)不與任何空閑區(qū)相鄰接,建立一個新的空閑區(qū),修改空閑區(qū)數(shù)據(jù)結構。分區(qū)回收思路放置策略:多個空閑區(qū)選哪個?Seg1操作系統(tǒng)空閑分區(qū)表始址長度350K150K200K50K0K100K200K250K500KSeg3空閑

350K空閑

又一個段提出內存請求:reqSize=40K,怎么辦?首次適配:(200,50)最佳適配:(200,50)最差適配:(350,150)第3單元主存管理第2節(jié)分段存儲管理什么是段?段如何放入內存地址映射碎片問題舉例分段的地址映射分段系統(tǒng)的地址變換過程

每個進程一個,段表放在PCB中邏輯地址沒得分區(qū)了怎么辦?第3單元主存管理第2節(jié)分段存儲管理什么是段?段如何放入內存地址映射虛存碎片問題舉例分段的方案不太好提供虛存虛存實現(xiàn):部分放入,換出換入換入換出比較困難!第3單元主存管理第2節(jié)分段存儲管理什么是段?段如何放入內存地址映射虛存碎片問題舉例可變分區(qū)造成的問題seg1操作系統(tǒng)空閑分區(qū)表始址長度350K150K200K50K0K100K200K250K500Kseg3空閑

350K空閑

發(fā)起請求reqSize=160K怎么辦?總空閑空間>160,但沒有一個空閑分區(qū)>160,怎么辦?將空閑分區(qū)合并:內存拼接技術

這就是內存碎片問題

20KB

54KB58KB135KB254KB256KB1主存138KB作業(yè)20os作業(yè)3作業(yè)1拼接前20KB0

54KB131KB247KB256KB1主存os作業(yè)1作業(yè)2作業(yè)3拼接后拼接、碎片整理拼接分段方案特性:1.將用戶程序空間按邏輯劃分為幾段(segment),每個段內連續(xù)編址,段間是不一定連續(xù)編址的2.分段采用動態(tài)分區(qū)方案分配內存,將段放到分區(qū)里3.用動態(tài)地址映射方式將邏輯地址變?yōu)槲锢?/p>

地址4邏輯地址是二維的5內存不夠的解決方法可以是內存拼接和虛存的方法,但是都不夠高效總結21第3單元主存管理第2節(jié)分段存儲管理什么是段?段如何放入內存地址映射虛存碎片問題舉例舉例若段式存儲管理提供用戶使用的邏輯地址占24位,其中段內地址占16位,那么用戶程序最多分多少段?當把程序轉入主存時,每段占用主存的最大連續(xù)區(qū)域是多少?考慮段表如下,計算邏輯地址對應的物理地址(0,430)(2,88)

段號基址段長0256600123001282112100某基于動態(tài)分區(qū)存儲管理的計算機,其主存容量為55mb(初始空間),采用最佳適配(Bestfit)算法,分配和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論