第14講 存儲器管理之基本分段存儲管理方式_第1頁
第14講 存儲器管理之基本分段存儲管理方式_第2頁
第14講 存儲器管理之基本分段存儲管理方式_第3頁
第14講 存儲器管理之基本分段存儲管理方式_第4頁
第14講 存儲器管理之基本分段存儲管理方式_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第十四講 存儲器管理之基本分段存儲管理方式分段存儲管理方式也是一種離散分配方式,只是其分配的基本單位事段。1 分段存儲管理方式的引入為什么要引入分段?分段有哪些優點?我們現在了解一下。1 方便編程: 因為實際編程中,用戶作業通常按照邏輯關系分為幾個段,每個段都是從0開始編址,并有名字和長度,訪問的邏輯地址由段名和段內偏移量決定。此存儲管理方式就按邏輯上有聯系的段來進行管理,方便編程。2 信息共享: 從上面可以得知,段是信息的邏輯單位,也就是段具有實際的邏輯意義。這和前一講的“頁”完全不同。因此要實現段的共享,就要求存儲管理能與用戶程序的分段組織方式相適應。3 信息保護: 信息保護同樣是對信息的

2、邏輯單位進行保護,因此分段管理方式能有效的實現信息保護。4 動態增長: 實際應用中,某些段(數據段)會不斷增長,前面的存儲管理方法均難以實現。而分段卻可以解決這個問題。5 動態鏈接: 要求以段為單位。 由此我們理解為什么要引入分段存儲管理。2 分段系統的基本原理2.1 空間劃分(分段)將用戶作業的地址空間依照相應的邏輯信息組的長度來劃分若干個段,各段的長度不等。各段有段名(常用段號代替),段內首地址為0。段地址結構如下圖:一般我們常見的有代碼段、數據段、共享段等等。2.2 內存分配在為作業分配內存時,也以段為單位,分配一段連續的物理地址空間;段間不必連續。如下圖注意:1、 整個作業的邏輯地址空

3、間是二維的,其邏輯地址由段號和段內地址組成。頁式管理是把內存視為一維線性空間;而段式管理是把內存視為二維空間。怎么理解?有的同學說分頁也是二維的,頁號一維,頁內地址一維。總共是二維。其實不然站在進程的角度而言,就會發現分頁是一維的,而分段是二維的。對一個進程來說,在分頁式系統中,它的內容會保存在多頁里,即進程的內容由一維頁序列保存,通過頁表映射來進行尋址。請注意,頁內地址對進程而言是沒有意義的,在從邏輯地址到頁表訪問到物理地址的映射都是由OS管理的。所以在分頁系統中將頁內地址作為一個維度是沒有實際意義的。但是在分段式系統中,進程的內容會保存在多個相互獨立的段里,段內的地址是單獨編址的,如代碼段

4、內偏移154,數據段內偏移209。舉例說明:對分頁系統而言,給出一個地址2345,OS會根據進程對應的頁表算出它在第幾頁內,偏移是多少。而在OS外部,邏輯地址是一維的。對于分段系統而言,訪問一個地址,必須給出“段號段內偏移”,因此,邏輯地址就是二維的了。所以說,分頁是一維地址管理、分段是二維地址管理。2、 需要CPU的硬件支持(地址變換機構)2.3 段表u 概念:系統中為每個進程建立一張段映射表,就是段表。u 段表內容:每個段在表中占有一個表項,其中記錄了該段在內存中的起始地址(又叫“基址”)和段的長度。段表如下圖u 存儲位置:可以存儲于寄存器。但一般存放在內存。u 作用:記錄了段與內存位置的

5、對應關系u 注意:訪問一個字節的數據/指令需訪問內存2次(段表一次,內存一次),所以也出現內存訪問速度降低的問題。利用段表實現地址映射如下圖2.4 地址變換機構地址變換過程:系統中設置段表寄存器,用于存放段表起始地址和段表長度TL。在進行地址變換時,系統將邏輯地址中的段號與段表長度TL進行比較。若S>TL,則訪問越界。否則,根據段表的起始地址和該段的段號,計算出該段對應段表項的位置,從中讀出該段在內存中的起始地址。再檢查段內地址D是否超過該段的段長SL。若超過則越界,否則將該段的基址和段內地址相加,即可得到要訪問的內存物理地址。如下圖例1:某段表的內容如下:段號 段首址 段長度0 120

6、K 40K1 760K 30K2 480K 20K3 370K 20K一邏輯地址為(2154),它對應的物理地址為多少?解:邏輯地址為:段號段內地址由段表可知段號為2位,段內地址為16位,段允許的最大長度為 216=210*26=1024*64=65536。 所以邏輯地址2154的段號為0,查段表知其對應的物理地址為: 120K+2154例2:在一個段式存儲管理系統中,其段表為: 段號 內存起始地址 段長 0 210 500 1 2350 20 2 100 90 3 1350 590 4 1938 9504302120試求表中邏輯地址對應的物理地址是什么?解:邏輯地址為:段號段內地址由段表可知

7、段號為3位,段內地址為10位。邏輯地址 0430對應的物理地址為:210+430=640邏輯地址 2120因為段內地址120>段長90,所為該段為非法段。2.5 分頁和分段的主要區別3 信息共享與保存3.1共享:分頁系統中雖然也能實現程序和數據的共享,但遠不如分段系統方便。分段系統的一個突出優點是易于實現段的共享,允許若干個進程共享一個或多個分段,且對段的保護十分簡單易行。分段系統中,實現共享只需要在每個進程的段表中為共享段設置一個段表項。如圖其中,p1,p2是進程3.2 保護保護方式:地址越界保護;存取控制保護段表的改進,實際就是增加了存取控制字段如圖4 段頁式存儲管理方式引言:段式優

8、于頁式,便于共享和保護,沒有內碎片,外碎片可以通過內存“緊湊”來消除。一看緊湊,就必然要進行重定位,需要硬件實現,因此麻煩。頁式優于段式,消除“外碎片”問題,沒有外碎片,每個內碎片不超過頁大小。段頁式:結合二者優點。每個進程包含若干段,每個段包含若干頁內碎片:是指頁面內部沒有被使用的存儲區域,在頁式存儲方式中,會出現內碎片。 外碎片:是指沒有得到分配權的存儲區域,在段式存儲方式中,會產生外碎片總結:固定分區:優點:易于實現,開銷小。缺點:內碎片造成浪費 分區總數固定,限制了并發執行的程序數目。信息共享困難動態分區:優點:無內碎片;內存利用率高于固定分區,可裝入更多進程。缺點:有外碎片;分配、回

9、收較固定分區復雜;信息共享困難。靜態頁式:優點:沒有外碎片,每個內碎片不超過頁大小。一個程序不必連續存放。由于頁的大小相等,內存的分配、回收簡單。缺點:程序要求全部裝入內存,才能執行靜態段式:優點:沒有內碎片,外碎片可以通過內存緊縮來消除。缺點:進程要求全部裝入內存。“內碎片”和“外碎片”是碎片的兩種主要表現形式。消除“內碎片”需要將內存按程序需要的大小來分配;而消除“外碎片”則需要按固定大小來分配內存的方法。而將這兩種方法結合,是能夠更有效地解決碎片問題的“段頁式存儲管理”就是這樣的一種技術。它將內存分為大小相等的若干頁面,避免了“外碎片”。同時,又將程序按內在的邏輯關系分成若干大小不一定相

10、等的段,并將這些段再細分為若干頁進行內存分配,這樣不但使內碎片變得更小,提高了內存的利用率,還保留了段式存儲管理便于動態鏈接的優點。可以說“段頁式存儲管理”非常好地解決了內存碎片問題。1 基本原理基本原理:是先將用戶程序分成若干個段,再把每個段分成若干個頁,并為每一個段賦予一個段名。再把每個段分成若干個頁(頁式)。其地址結構由段號、段內頁號、及頁內位移三部分所組成。下圖是作業地址空間和地址結構。該圖顯示一個作業有三個段。頁面大小是4kB.分別是主程序段、子程序段、數據段。04K8K12K15K16K主程序段04K8K子程序段04K8K12K10K數據段作業地址空間:地址結構:頁內地址(W)段內頁號(P)段號(S)2 地址變換過程2.1 地址變換過程在段頁式系統中,為了實現地址變換,增加一個段表寄存器,用來存放段表始址和段長。進行地址變換時,首先利用段號S和段長TL比較。若S<TL,表示沒越界。于是利用段表起始地址和段號求出該段所對應的段表項在段表的位置,從中得到該段的頁表地址,并利用邏輯地址中的段內頁號P來獲得對應頁的頁表項位置,從中

溫馨提示

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

評論

0/150

提交評論