分頁和分段
的主要區別
a)、頁是資訊的物理單位,分頁是為實現離散分配方式,以消減記憶體的外零頭,提高記憶體的利用率;段則是資訊的邏輯單位,它含有一組其意義相對完整的資訊,分段的目的是為了能更好地滿足使用者的需要。
b)、頁的大小固定且由系統決定,由系統把邏輯位址劃分為頁號和頁內位址兩部分,是由機器硬體實現的,因而在系統中只能有一種大小的頁面;而段的長度卻不固定,決定於使用者所編寫的程式,通常由編譯程式在對源程式進行編譯時,根據資訊的性質來劃分。
c)、分頁的作業位址空間是一維的,即單一的線性位址空間,程式設計師只需利用乙個記憶符,即可表示乙個位址;而分段的作業位址空間則是二維的,程式設計師在標識乙個位址是,即需給出段名,又需給出段內位址。
引入分段儲存管理方式的目的:滿足程式設計師在程式設計和使用上多方面的要求。這種儲存管理方式已經成為當今所有儲存管理方式的基礎。
1、分段儲存管理方式的引入
主要滿足使用者和程式設計師以下需求:
1)、方便程式設計
使用者把自己的作業按照邏輯管理劃分為若干段,每個段都是從0
開始編址,並有自己的名字和長度。因此,希望要訪問的邏輯位址是由段名(段號)和段內偏移量(段內位址)決定的。
load1,
[a] | ;//
將分段a中d
單元內的值讀入暫存器
1store1,
[b] | ;//
將暫存器
1的內容存入
b分段的
c單元中
2)、資訊共享
在實現對程式和資料的共享時,是以資訊的邏輯單位為基礎的。。比如共享某個例程和函式。分頁系統中的頁只是存放資訊的物理單位(塊),並無完整的意義,不便於實現共享;然而段卻是資訊的邏輯單位。由此可知,為了實現段的共享,希望儲存管理能與使用者程式分段的組織方式相適應。
3)、資訊保護
4)、動態增長
有些段,會隨著程式的使用不斷增長。而事先又無法確切地知道資料段會增長到多大。
5)、動態鏈結
動態鏈結是指在作業執行前,並不把幾個目標程式段鏈結起來。要執行時,先將主程式所對應的目標程式裝入記憶體並啟動執行,當執行過程中有需要呼叫某段時,才將該段調入記憶體並進行鏈結。可見動態鏈結也要求以段作為管理的單位。
2、分段系統的基本原理
2.1、分段
在分段儲存管理方式中,作業的位址空間被劃分為若干個段,每個段定義了一組邏輯資訊。例如,有主程式段main
、子程式段
x、資料段
d及棧段s等。
個段,每個段的最大長度為
64kb
。分段方式已得到許多編譯程式的支援,編譯程式能自動地根據源程式的情況而產生若各個段。
2.1、段表
在動態分配方式中,系統為整個程序分配乙個連續的記憶體空間。而在分段式儲存管理系統中,則是為每個分段分配乙個連續的分割槽,而程序中的各個段可以離散地移入記憶體不同的分割槽中。為了使程式能正常執行,也能從物理記憶體中找出每個邏輯段所對應的位置,應像分頁那樣,在系統中為每個程序建立一段對映表,簡稱「段表」。每個段在表中占有乙個表項。其中記錄了該段在記憶體中的起始位址(基址)和段的長度。段表可以存放在一組暫存器中,以提高訪問速度,但更常見的是將段表放在記憶體中。
在配置了段表後,執行中的程序可通過查詢段表找到每個段所對應的記憶體區。可見段表是用於實現從邏輯段到物理記憶體區的對映:
為了實現程序邏輯位址到實體地址的變換功能,在系統中設定了段表暫存器,用於存放段表起始位址和段表長度tl
。在進行位址變換時,系統將邏輯位址中的段號
s與段表長度
tl進行比較。若
s>tl
,表示段號太大。訪問越界,於是產生越界中斷訊號;若未越界,則根據段表的起始位址和該段的段號
+段內位址從而到的要訪問的記憶體實體地址。
3、資訊共享
在分段系統的允許若干個程序共享乙個或多個分段,容易實現對段的儲存和共享。
4、段頁式儲存管理方式
結合分頁和分段的優點,分頁系統很好解決記憶體的外碎片問題,分段系統有便於實現、分段可共享、易於保護、可動態鏈結等優點。結合這兩種方式形成新系統稱為「段頁式系統」。
4.1、基本原理
先分段,在段內進行分頁,為每乙個段賦予乙個段名。以下展示出了乙個作業位址空間的結構。該作業有三個段,頁面大小
4kb。在段頁式系統中,其位址結構由段號、段內頁號及頁內位址三部分所組成。
為了方便段頁式系統中位址變換的實現,需配置乙個段表暫存器,其中存放段表起始位址和段表長tl
。比較段號與
tl是否越界,從段表暫存器中獲取段表始址找到段表,根據段表內的頁表始址找到對應的頁表,在根據頁表的儲存塊找到記憶體中的物理塊,從而獲取實體地址。
① 訪問記憶體中的段表,從中取得頁表始址
② 訪問記憶體中的頁表,從中取出該頁所在的物理塊號,並與頁內位址形成實體地址
③ 訪問真正從第二次訪問所得的位址中,取出指令或者資料
多次訪問記憶體,執行速度降低,因此在位址變換機構中增設乙個高速緩衝暫存器。每次訪問它時,都須同時利用段號和頁號去檢索快取記憶體,若找到匹配的表項,便可以從中得到相應頁的物理塊號,用來與頁內位址一起形成實體地址;若未找到匹配表項,則仍需要再三次訪問記憶體
基本分段儲存管理方式
1 分段儲存管理方式的引入 引入分段儲存管理方式,主要是為了滿足使用者和程式設計師的下述一系列需要 1 方便程式設計 通常,使用者把自己的作業按照邏輯關係劃分為若干個段,每個段都是從0開始編址,並有自己的名字和長度。因此,希望要訪問的邏輯位址是由段名 段號 和段內偏移量 段內位址 決定的。2 資訊共...
基本分段儲存管理方式
程序的位址空間 按照程式自身的邏輯關係劃分為若干個段,每個段都有乙個段名 在低階語言中,程式設計師使用段名來程式設計 每段從0開始編址 記憶體分配規則 以段為單位進行分配,每個段在記憶體中佔據連續空間,但各段之間可以不相鄰。頁是資訊的物理單位。分頁的主要目的是為了實現離散分配,提高記憶體利用率。分頁...
基本分段式儲存管理方式
1.記錄邏輯段到實際儲存位址的對映關係 2.每個段對應乙個段表項,各段表項長度相同,由段號 隱含 段長 基址組成 1.由邏輯位址得到段號 段內位址 2.段號與段表暫存器中的段長度進行比較,檢查是否越界 3.由段表起始位址 段號找到對應的段表項 4.根據段表中記錄的段長,檢查段內位址是否越界 5.由段...