?基本分頁(yè)存儲(chǔ)管理方式
本部分討論不具備對(duì)換功能的純分頁(yè)模式凄吏,作業(yè)運(yùn)行需要全部裝入內(nèi)存。
比較連續(xù)分配方式
作業(yè)邏輯地址空間有M大,就需要向內(nèi)存申請(qǐng)一個(gè)M大的連續(xù)區(qū)域杏头。
分頁(yè)的目的是更細(xì)粒度的處理空間锌妻,減少粗放管理的浪費(fèi)或開(kāi)銷(xiāo)問(wèn)題代乃。
1)頁(yè)面的概念
u內(nèi)存劃分成多個(gè)小單元,每個(gè)單元K大小仿粹,稱(chēng)(物理)塊搁吓。作業(yè)也按K單位大小劃分成片,稱(chēng)為頁(yè)面吭历。
①物理劃分塊的大小= 邏輯劃分的頁(yè)的大小
②頁(yè)面大小要適中堕仔。
太大,(最后一頁(yè))內(nèi)碎片增大晌区,類(lèi)似連續(xù)分配的問(wèn)題贮预。
太小的話(huà),頁(yè)面碎片總空間雖然小契讲,提高了利用率仿吞,但每個(gè)進(jìn)程的頁(yè)面數(shù)量較多,頁(yè)表過(guò)長(zhǎng)捡偏,反而又增加了空間使用唤冈。
2)頁(yè)表的概念
為了找到被離散分配到內(nèi)存中的作業(yè),記錄每個(gè)作業(yè)各頁(yè)映射到哪個(gè)物理塊银伟,形成的頁(yè)面映射表你虹,簡(jiǎn)稱(chēng)頁(yè)表。
每個(gè)作業(yè)有自己的頁(yè)表
頁(yè)表的作用:頁(yè)號(hào)到物理塊號(hào)的地址映射
要找到作業(yè)A? ? ?? 關(guān)鍵是找到頁(yè)表(PCB)??? 根據(jù)頁(yè)表找物理塊
?作業(yè)相對(duì)地址在分頁(yè)下不同位置的數(shù)有一定的意義結(jié)構(gòu):
? 頁(yè)號(hào)+頁(yè)內(nèi)地址(即頁(yè)內(nèi)偏移)
?關(guān)鍵的計(jì)算是:根據(jù)系統(tǒng)頁(yè)面大小找到不同意義二進(jìn)制位的分界線(xiàn)彤避。
?從地址中分析出頁(yè)號(hào)后傅物,地址映射只需要把頁(yè)號(hào)改為對(duì)應(yīng)物理塊號(hào),偏移不變琉预,即可找到內(nèi)存中實(shí)際位置董饰。
4)地址變換機(jī)構(gòu)
前面講解了地址變換的原理,那么誰(shuí)具體實(shí)現(xiàn)地址映射?——地址變換機(jī)構(gòu)卒暂。
圍繞頁(yè)表進(jìn)行工作啄栓,那么頁(yè)表數(shù)據(jù)放在哪?
寄存器也祠。一個(gè)進(jìn)程有n個(gè)頁(yè)昙楚,頁(yè)表就需要記錄n項(xiàng)數(shù)據(jù),需要n個(gè)寄存器诈嘿。不現(xiàn)實(shí)堪旧。
內(nèi)存。只設(shè)置一個(gè)頁(yè)表寄存器PTR(page table register)記錄頁(yè)表在內(nèi)存中的首地址和頁(yè)表長(zhǎng)度奖亚,運(yùn)行時(shí)快速定位頁(yè)表淳梦。
5)引入快表——針對(duì)訪(fǎng)問(wèn)速度問(wèn)題
問(wèn)題:基本分頁(yè)機(jī)制下,一次指令需兩次內(nèi)存訪(fǎng)問(wèn)遂蛀,處理機(jī)速度降低1/2谭跨,分頁(yè)空間效率的提高以如此的速度為代價(jià),得不償失李滴。
改進(jìn):減少第1步訪(fǎng)問(wèn)內(nèi)存的時(shí)間螃宙。增設(shè)一個(gè)具有“并行查詢(xún)”能力的高速緩沖寄存器,稱(chēng)為“快表”所坯,也稱(chēng)“聯(lián)想寄存器”(Associative
memory)谆扎,IBM系統(tǒng)稱(chēng)為T(mén)LB(Translation Look aside Buffer)。
快表放什么芹助?:正在執(zhí)行進(jìn)程的頁(yè)表的數(shù)據(jù)項(xiàng)堂湖。
基本分段存儲(chǔ)管理方式
從提高內(nèi)存利用率角度;
固定分區(qū)-》動(dòng)態(tài)分區(qū)-》分頁(yè)
從滿(mǎn)足并方便用戶(hù)(程序員)和使用上的要求角度:
分段存儲(chǔ)管理:作業(yè)分成若干段状土,各段可離散放入內(nèi)存无蜂,段內(nèi)仍連續(xù)存放。
方便編程:如匯編中通過(guò)段:偏移確定數(shù)據(jù)位置
信息共享:同地位的數(shù)據(jù)放在一塊方便進(jìn)行共享設(shè)置
信息保護(hù)
動(dòng)態(tài)增長(zhǎng):動(dòng)態(tài)增長(zhǎng)的數(shù)據(jù)段事先固定內(nèi)存不方便
動(dòng)態(tài)鏈接:往往也是以邏輯的段為單位更方便
1)分段系統(tǒng)的基本原理
程序通過(guò)分段(segmentation)劃分為多個(gè)模塊蒙谓,每個(gè)段定義一組邏輯信息斥季。如代碼段(主程序段main,子程序段X)累驮、數(shù)據(jù)段D酣倾、棧段S等。
誰(shuí)決定一個(gè)程序分幾段谤专,每段多大躁锡?
編譯程序(基于源代碼)
段的特點(diǎn):
每段有自己的名字(一般用段號(hào)做名),都從0編址置侍,可分別編寫(xiě)和編譯映之。裝入內(nèi)存時(shí)拦焚,每段賦予各段一個(gè)段號(hào)。
每段占據(jù)一塊連續(xù)的內(nèi)存惕医。(即有離散的分段耕漱,又有連續(xù)的內(nèi)存使用)
各段大小不等算色。
3)分頁(yè)和分段的主要區(qū)別
1.需求:分頁(yè)是出于系統(tǒng)管理的需要抬伺,是一種信息的物理劃分單位,分段是出于用戶(hù)應(yīng)用的需要灾梦,是一種邏輯單位峡钓,通常包含一組意義相對(duì)完整的信息。
一條指令或一個(gè)操作數(shù)可能會(huì)跨越兩個(gè)頁(yè)的分界處若河,而不會(huì)跨越兩個(gè)段的分界處能岩。
2.大小:頁(yè)大小是系統(tǒng)固定的,而段大小則通常不固定萧福。分段沒(méi)有內(nèi)碎片拉鹃,但連續(xù)存放段產(chǎn)生外碎片,可以通過(guò)內(nèi)存緊縮來(lái)消除鲫忍。相對(duì)而言分頁(yè)空間利用率高膏燕。
3.邏輯地址:分頁(yè)是一維的,各個(gè)模塊在鏈接時(shí)必須組織成同一個(gè)地址空間悟民;
???????????????????? 分段是二維的坝辫,各個(gè)模塊在鏈接時(shí)可以每個(gè)段組織成一個(gè)地址空間。
4.其他:通常段比頁(yè)大射亏,因而段表比頁(yè)表短近忙,可以縮短查找時(shí)間,提高訪(fǎng)問(wèn)速度智润。分段模式下及舍,還可針對(duì)不同類(lèi)型采取不同的保護(hù);按段為單位來(lái)進(jìn)行共享
4)信息共享
分段系統(tǒng)的突出優(yōu)點(diǎn):
易于實(shí)現(xiàn)共享:
在分段系統(tǒng)中窟绷,實(shí)現(xiàn)共享十分容易锯玛,只需在每個(gè)進(jìn)程的段表中為共享程序設(shè)置一個(gè)段表項(xiàng)。
比較課本圖钾麸。對(duì)同樣的共享內(nèi)容的管理上更振,很明顯分段的空間管理更簡(jiǎn)單。分頁(yè)的圖涉及太多的頁(yè)面劃分和地址記錄的管理饭尝。
易于實(shí)現(xiàn)保護(hù):
代碼的保護(hù)和其邏輯意義有關(guān)肯腕,分頁(yè)的機(jī)械式劃分不容易實(shí)現(xiàn)。