- 1、本文档共56页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
逻辑位址空间
作業系統 第八章 記憶體管理 教學目標 記憶體的基本運作模式 位址空間的概念 連續記憶體的配置 斷裂的問題 分頁 分段的概念 兼採分段與分頁的實例 序論 一開始因為記憶體的零件很貴,所以得省著用。 拜IC設計技術的進步所賜,記憶體的容量不斷增大,價格也逐漸便宜下來。 CPU的能力增加了,所以也增加了系統可以執行的程式數目。 記憶體單元由許多大小不一的使用者行程所共用。 因為「共用」,所以需要「管理」。 記憶體的基本運作模式 行程載入記憶體之後,如何知道程式碼所用到的所有記憶體存取工作要對應記憶體的哪個位址? 利用位址連結 (address binding)達成。 何時進行位址連結? 編譯時 (compile time) 載入時 (load time) 執行時 (run time) 從原始檔編譯成可執行程式碼的過程 動態載入 (Dynamic Loading) (1) 是指使用者程式要用到的某些常式(routine)一開始並不會載入記憶體中,只有當使用者程式呼叫的時候才會載入。 程式先以可重定位的程式碼型態存在磁碟中。 動態載入 (Dynamic Loading) (2) 當使用者程式載入記憶體並執行到動態載入程式時,呼叫可重定位的鏈結載入程式(relocatable linking loader)來把要用的程式載入記憶體 並執行。 好處 : 不會使用到的程式碼永遠不會被載入記憶體。 動態鏈結(Dynamic Linking) 和靜態鏈結(static linking)區隔。 做法: 當使用者程式要用到系統程式庫時,在程式碼參考(reference)系統程式庫的地方做個記號(stub)。 這段記號用來指示如何去找尋要用的程式庫 ,如果已載入記憶體的話該去哪個位址參考,如果還沒載入的話該去磁碟的哪裡載入。 優點: 有用到的系統程式庫在記憶體裡只會存在一份,不會重複。 鏈結的工作只需進行一次。 使用動態鏈結將可使程式庫更新變得更簡單。 重疊(Overlays) 有時在執行的時候,並不需要把整個程式載入記憶體中。 在執行的過程中有時候只需要程式的某些部分,而有時候只需要程式的另外一些部分。 執行時只把必需的程式碼載入系統,不需要的部分先不要載入,即可省下很多記憶體空間 。 對象 記憶體小而要執行大程式的計算機系統。 採用重疊技巧的實例 -兩階段組合程式(two-pass assembler) 兩階段組合程式: 採用兩階段步驟把程式的組合碼(assembly code)轉為機器碼(machine code)的組合程式。 要放入記憶體的資料: 除了本身和其他需要的一般常式之外,還會產生第1次處理的程式碼、第2次處理的程式碼、符號表(symbol table)等。 範例: 兩階段組合程式各部分所需要的記憶體大小 置換(Swapping) 位址空間的概念 在程式碼產生的時候,可以看出牽涉到記憶體存取的部分,會出現標示為記憶體位址的資料。 這類由CPU所產生的位址,稱為邏輯位址(logical address)。 要執行時,程式的這些部分在經過一些必要的處理之後,會變成對記憶體有意義的位址值。 這樣的位址,稱為實體位址(physical address)。 邏輯位址空間 所有邏輯位址所形成的集合。 實體位址空間 而所有實體位址所形成的集合。 邏輯位址和實體位址的轉換方法 連續記憶體的配置 可供使用者行程使用的記憶體空間可以被視為一大塊連續的區域。 如果僅有單一個行程來使用,問題會較單純。 考慮同時有很多個行程在使用記憶體的情況下,又是另一個問題。 單一分割配置(Single-Partition Allocation) 系統內同一個時間只有一個行程在使用記憶體,則可將整個記憶體空間視為單一的區塊。在這種狀況下進行的記憶體配置,稱為單一分割配置。 可以搭配重定位暫存器(relocation register)、邊界暫存器(boundary register)以及MMU來完成。 適用於把常駐作業系統置於低位址記憶體空間而使用者行程使用高位址空間的系統。 好處: 提供記憶體保護 。 可以動態地改變常駐作業系統所占的記憶體空間大小。 利用邊界暫存器和重定位暫存器來進行記憶體配置 多重分割配置(Multiple-Partition Allocation) 把整個記憶體空間劃分為一些固定大小的分割,每個分割只載入一個行程。 當有空著的分割時,即從在佇列中等待的行程中選出一個來載入記憶體。 等到行程執行結束之後,其佔用的記憶體分割則被釋放出來。 此為固定分割方法的一般化 。 記憶體配置的範例 記憶體配置範例的運作歷程 配置記憶體的策略 最先合適(First-Fit
文档评论(0)