1. 程式人生 > >基本分段儲存管理方式

基本分段儲存管理方式

一、分段系統的基本原理

1、程式通過分段(segmentation)劃分為多個模組,每個段定義一組邏輯資訊。如程式碼段(主程式段main,子程式段X)、資料段D、棧段S等。
2、每段有自己的名字(一般用段號做名),都從0編址,可分別編寫和編譯。
3、裝入記憶體時,每段賦予各段一個段號。
4、每段佔據一塊連續的記憶體。(即有離散的分段,又有連續的記憶體使用)。各段大小不等。
5、地址結構:段號 + 段內地址 段表:記錄每段實際存放的實體地址

二、段表與地址變換機構
在這裡插入圖片描述
在這裡插入圖片描述
三、分頁和分段的主要區別
1、需求:分頁是出於系統管理的需要,是一種資訊的物理劃分單位,分段是出於使用者應用的需要,是一種邏輯單位,通常包含一組意義相對完整的資訊。
一條指令或一個運算元可能會跨越兩個頁的分界處,而不會跨越兩個段的分界處。
2、大小:頁大小是系統固定的,而段大小則通常不固定。分段沒有內碎片,但連續存放段產生外碎片,可以通過記憶體緊縮來消除。相對而言分段空間利用率高。
3、邏輯地址:
分頁是一維的,各個模組在連結時必須組織成同一個地址空間;
分段是二維的,各個模組在連結時可以每個段組織成一個地址空間。
4、其他:通常段比頁大,因而段表比頁表短,可以縮短查詢時間,提高訪問速度。分段模式下,還可針對不同型別採取不同的保護;按段為單位來進行共享

四、段頁式儲存管理方式
1、基本原理
將使用者程式分成若干段,併為每個段賦予一個段名。
把每個段分成若干頁
地址結構包括段號、段內頁號和頁內地址三部分

在這裡插入圖片描述