(1)頁面的概念
內(nèi)存劃分成多個小單元练湿,每個單元K大小,稱(物理)塊审轮。作業(yè)也按K單位大小劃分成片肥哎,稱為頁面。
①物理劃分塊的大小= 邏輯劃分的頁的大小
②頁面大小要適中疾渣。
? 太大篡诽,(最后一頁)內(nèi)碎片增大,類似連續(xù)分配的問題榴捡。
? 太小的話杈女,頁面碎片總空間雖然小,提高了利用率吊圾,但每個進(jìn)程的頁面數(shù)量較多达椰,頁表過長,反而又增加了空間使用项乒。
(2)頁表的概念
為了找到被離散分配到內(nèi)存中的作業(yè)砰碴,記錄每個作業(yè)各頁映射到哪個物理塊,形成的頁面映射表板丽,簡稱頁表呈枉。
每個作業(yè)有自己的頁表
頁表的作用:
? 頁號到物理塊號的地址映射
要找到作業(yè)A
? 關(guān)鍵是找到頁表(PCB)
? 根據(jù)頁表找物理塊
?作業(yè)相對地址在分頁下不同位置的數(shù)有一定的意義結(jié)構(gòu):
? 頁號+頁內(nèi)地址(即頁內(nèi)偏移)
?關(guān)鍵的計算是:根據(jù)系統(tǒng)頁面大小找到不同意義二進(jìn)制位的分界線趁尼。
?從地址中分析出頁號后,地址映射只需要把頁號改為對應(yīng)物理塊號猖辫,偏移不變酥泞,即可找到內(nèi)存中實際位置。
注意:一作業(yè)所有指令在用戶地址空間是順序編址
計算口訣
頁面大小決定偏移量(頁內(nèi)地址)的位數(shù)n啃憎;
作業(yè)大小->頁面數(shù)量
->頁表長度a
->頁號的位數(shù)m(或總位數(shù)-頁內(nèi)位數(shù))
內(nèi)存容量決定塊數(shù)芝囤,塊數(shù)決定編址位數(shù),即頁表項位數(shù)b辛萍。
u進(jìn)程發(fā)出邏輯地址的訪問請求悯姊,經(jīng)過地址變換,到內(nèi)存中找到對應(yīng)的實際物理地址單元并取出數(shù)據(jù)贩毕,所需花費的總時間悯许,稱為內(nèi)存的有效訪問時間EAT(effective access time)
設(shè)訪問一次內(nèi)存時間為t,則基本分頁機制下EAT=2t辉阶,why先壕?
CPU操作一條指令需訪問內(nèi)存兩次:
1.訪問內(nèi)存中的頁表(以計算指令所在的實際物理地址)
2.訪問指令內(nèi)存地址
5)引入快表——針對訪問速度問題
問題:基本分頁機制下,一次指令需兩次內(nèi)存訪問谆甜,處理機速度降低1/2垃僚,分頁空間效率的提高以如此的速度為代價,得不償失规辱。
改進(jìn):減少第1步訪問內(nèi)存的時間谆棺。增設(shè)一個具有“并行查詢”能力的高速緩沖寄存器,稱為“快表”罕袋,也稱“聯(lián)想寄存器”(Associative
memory)包券,IBM系統(tǒng)稱為TLB(Translation Look aside Buffer)。
快表放什么炫贤?:
正在執(zhí)行進(jìn)程的頁表的數(shù)據(jù)項溅固。
③反置頁表
?一張OS 反置頁表 + 每進(jìn)程一張外部頁表
反置頁表(InvertedPage Tale):站在物理塊的角度,記錄占用它的已調(diào)入內(nèi)存的進(jìn)程標(biāo)識和頁號兰珍。系統(tǒng)中只需一張該表即可侍郭。一個64MB內(nèi)存,若頁面大小4KB(64M/4K=2^16=16K個物理塊)掠河,反置頁表占用64KB(16K*4B)
進(jìn)程外部頁表(ExternalPage Table):每個進(jìn)程一張亮元,記錄進(jìn)程不在內(nèi)存中的那些頁面所在的外存物理位置。
如何提高檢索反置頁表速度:內(nèi)存容量大時唠摹,反置頁表的頁表項還是會很大爆捞,利用進(jìn)程標(biāo)識符和頁號去檢索一張大的線性表很費時,可利用hash算法提高檢索速度勾拉。
4.基本分段存儲管理方式
從提高內(nèi)存利用率角度煮甥;
固定分區(qū) à動態(tài)分區(qū)à分頁
從滿足并方便用戶(程序員)和使用上的要求角度:
分段存儲管理:作業(yè)分成若干段盗温,各段可離散放入內(nèi)存,段內(nèi)仍連續(xù)存放成肘。
方便編程:如匯編中通過段:偏移確定數(shù)據(jù)位置
信息共享:同地位的數(shù)據(jù)放在一塊方便進(jìn)行共享設(shè)置
信息保護(hù)
動態(tài)增長:動態(tài)增長的數(shù)據(jù)段事先固定內(nèi)存不方便
動態(tài)鏈接:往往也是以邏輯的段為單位更方便
1)分段系統(tǒng)的基本原理
v程序通過分段(segmentation)劃分為多個模塊卖局,每個段定義一組邏輯信息。如代碼段(主程序段main双霍,子程序段X)砚偶、數(shù)據(jù)段D、棧段S等洒闸。
誰決定一個程序分幾段染坯,每段多大?
編譯程序(基于源代碼)
段的特點
每段有自己的名字(一般用段號做名)丘逸,都從0編址单鹿,可分別編寫和編譯。裝入內(nèi)存時鸣个,每段賦予各段一個段號。
每段占據(jù)一塊連續(xù)的內(nèi)存布朦。(即有離散的分段囤萤,又有連續(xù)的內(nèi)存使用)
各段大小不等。
(3)分頁和分段的主要區(qū)別? ★ ★ ★
1.需求:分頁是出于系統(tǒng)管理的需要是趴,是一種信息的物理劃分單位涛舍,分段是出于用戶應(yīng)用的需要,是一種邏輯單位唆途,通常包含一組意義相對完整的信息富雅。
一條指令或一個操作數(shù)可能會跨越兩個頁的分界處,而不會跨越兩個段的分界處肛搬。
2.大忻挥印:頁大小是系統(tǒng)固定的,而段大小則通常不固定温赔。分段沒有內(nèi)碎片蛤奢,但連續(xù)存放段產(chǎn)生外碎片,可以通過內(nèi)存緊縮來消除陶贼。相對而言分頁空間利用率高啤贩。
3.邏輯地址:
分頁是一維的,各個模塊在鏈接時必須組織成同一個地址空間拜秧;
分段是二維的痹屹,各個模塊在鏈接時可以每個段組織成一個地址空間。
4.其他:通常段比頁大枉氮,因而段表比頁表短志衍,可以縮短查找時間暖庄,提高訪問速度。分段模式下足画,還可針對不同類型采取不同的保護(hù)雄驹;按段為單位來進(jìn)行共享
4)信息共享?????
分段系統(tǒng)的突出優(yōu)點:
易于實現(xiàn)共享
在分段系統(tǒng)中,實現(xiàn)共享十分容易淹辞,只需在每個進(jìn)程的段表中為共享程序設(shè)置一個段表項医舆。
比較課本圖。對同樣的共享內(nèi)容的管理上象缀,很明顯分段的空間管理更簡單蔬将。分頁的圖涉及太多的頁面劃分和地址記錄的管理。
易于實現(xiàn)保護(hù):
代碼的保護(hù)和其邏輯意義有關(guān)央星,分頁的機械式劃分不容易實現(xiàn)霞怀。