基本分頁存儲管理方式
比較連續(xù)分配方式:作業(yè)邏輯地址空間有M大羽圃,就需要向內(nèi)存申請一個M大的連續(xù)區(qū)域。
分頁的目的是更細粒度的處理空間抖剿,減少粗放管理的浪費或開銷問題朽寞。
1)頁面的概念:內(nèi)存劃分成多個小單元,每個單元K大小斩郎,稱(物理)塊脑融。作業(yè)也按K單位大小劃分成片,稱為頁面缩宜。
①物理劃分塊的大小=邏輯劃分的頁的大小
②頁面大小要適中肘迎。
太大,(最后一頁)內(nèi)碎片增大锻煌,類似連續(xù)分配的問題妓布。
太小的話,頁面碎片總空間雖然小宋梧,提高了利用率匣沼,但每個進程的頁面數(shù)量較多,頁表過長捂龄,反而又增加了空間使用肛著。
2)頁表的概念
為了找到被離散分配到內(nèi)存中的作業(yè),記錄每個作業(yè)各頁映射到哪個物理塊跺讯,形成的頁面映射表,簡稱頁表殉农。
每個作業(yè)有自己的頁表
頁表的作用: 頁號到物理塊號的地址映射
要找到作業(yè)A : ?關鍵是找到頁表(PCB)刀脏;根據(jù)頁表找物理塊
二進制地址具體是如何計算從而映射到物理地址?
規(guī)律:作業(yè)相對地址在分頁下不同位置的數(shù)有一定的意義結構: 頁號+頁內(nèi)地址(即頁內(nèi)偏移)
關鍵的計算是:根據(jù)系統(tǒng)頁面大小找到不同意義二進制位的分界線超凳。
從地址中分析出頁號后愈污,地址映射只需要把頁號改為對應物理塊號,偏移不變轮傍,即可找到內(nèi)存中實際位置暂雹。
兩級頁表:將頁表分頁,并離散地將頁表的各個頁面分別存放在不同的物理塊中
為離散分配的頁表再建立一張頁表创夜,稱為“外層頁表”杭跪,其每個表項記錄了頁表頁面所在的物理塊號。
分段系統(tǒng)的基本原理
程序通過分段(segmentation)劃分為多個模塊,每個段定義一組邏輯信息涧尿。如代碼段(主程序段main系奉,子程序段X)、數(shù)據(jù)段D姑廉、棧段S等缺亮。
編譯程序(基于源代碼)決定一個程序分幾段,每段多大桥言。
段的特點:每段有自己的名字(一般用段號做名)萌踱,都從0編址,可分別編寫和編譯号阿。裝入內(nèi)存時并鸵,每段賦予各段一個段號;每段占據(jù)一塊連續(xù)的內(nèi)存倦西。(即有離散的分段能真,又有連續(xù)的內(nèi)存使用);各段大小不等扰柠。
分段下的相對地址:
地址結構:段號+段內(nèi)地址
段表:記錄每段實際存放的物理地址
頁和分段的主要區(qū)別:
1.需求:分頁是出于系統(tǒng)管理的需要粉铐,是一種信息的物理劃分單位,分段是出于用戶應用的需要卤档,是一種邏輯單位蝙泼,通常包含一組意義相對完整的信息。
一條指令或一個操作數(shù)可能會跨越兩個頁的分界處劝枣,而不會跨越兩個段的分界處汤踏。
2.大小:頁大小是系統(tǒng)固定的舔腾,而段大小則通常不固定溪胶。分段沒有內(nèi)碎片,但連續(xù)存放段產(chǎn)生外碎片稳诚,可以通過內(nèi)存緊縮來消除哗脖。相對而言分頁空間利用率高。
3.邏輯地址:分頁是一維的扳还,各個模塊在鏈接時必須組織成同一個地址空間才避;分段是二維的,各個模塊在鏈接時可以每個段組織成一個地址空間氨距。
4.其他:通常段比頁大桑逝,因而段表比頁表短,可以縮短查找時間俏让,提高訪問速度楞遏。分段模式下茬暇,還可針對不同類型采取不同的保護;按段為單位來進行共享橱健。