一藕畔、虛擬存儲器的基本概念
1攘残、程序執(zhí)行的特點:
1)多數(shù)情況下仍是順序執(zhí)行插佛。
2)少部分的轉移和過程調用指令會使程序執(zhí)行由一部分區(qū)域轉至另一部分區(qū)域
3)許多由少數(shù)指令構成的循環(huán)結構會多次執(zhí)行产弹。
4)對許多數(shù)據(jù)結構的處理(如數(shù)組)往往局限于很小的范圍內。
2床估、程序執(zhí)行的局部性:
1)時間局部性
2)空間局部性
3含滴、交換技術與虛存使用的調入調出技術有何相同和不同之處?
1)主要相同點是都要在內存與外存之間交換信息丐巫;
2)主要區(qū)別在于交換技術換出換進一般是整個進程(proc結構和共享正文段除外)谈况,因此一個進程的大小受物理存儲器的限制;
3)而虛存中使用的調入調出技術在內存與外存之間來回傳遞的是存儲頁或存儲段递胧,而不是整個進程碑韵,從而使得進程映射具有了更大的靈活性,且允許進程的大小比可用的物理存儲空間大的多 缎脾。
4祝闻、虛擬存儲器:具有請求調入功能和置換功能,能從邏輯上對內存容量加以擴充的一種存儲器系統(tǒng)遗菠。
5联喘、虛擬的實現(xiàn)建立在離散分配存儲管理基礎上
1)方式:請求分頁/請求分段系統(tǒng)
2)細節(jié):分頁/段機構、中斷機構舷蒲、地址變換機構耸袜、軟件支持
6、虛擬存儲器的特征
1)多次性
2)對換性
3)虛擬性
二牲平、請求分頁存儲管理方式
1、基本分頁 +“請求調頁”和“頁面置換”功能域滥。
2纵柿、頁表基本功能不變:邏輯地址映射為物理地址
3、缺頁中斷機構:
每當要訪問的頁面不在內存時启绰,便產生一缺頁中斷通知OS昂儒,OS則將所缺之頁調入內存。
4委可、地址變換機構:
5渊跋、內存分配
(一)最小物理塊數(shù)的確定
1腊嗡、少于此數(shù)量進程將不能運行
2、與計算機的硬件結構有關拾酝,取決于指令的格式燕少、功能和尋址方式
(二)物理塊的分配策略
1、固定分配蒿囤、局部置換
為每個進程分配一定數(shù)目的物理塊客们,在整個運行期間不再改變
2、可變分配材诽、全局置換
OS管理一個空閑物理塊隊列底挫,發(fā)生缺頁時,系統(tǒng)從隊列中取出一塊分配給該進程脸侥,將欲調入的頁裝入
3建邓、可變分配、局部置換
缺頁時睁枕,只允許換出該進程在內存的頁面涝缝,不影響其他進程執(zhí)行。
(三)物理塊的分配算法
1譬重、平均分配算法
將所有可供分配的物理塊平均分配給各進程拒逮。
2、按比例分配算法
根據(jù)進程的大小按比例分配物理塊臀规。
6滩援、調頁策略
(一)何時調入頁面
1、預調頁策略
以預測為基礎塔嬉,將預計不久后便會被訪問的若干頁面玩徊,預先調入內存。
2谨究、請求調頁策略
運行中需要的頁面不在內存恩袱,便立即提出請求,由OS將其調入內存胶哲。
(二)從何處調入頁面
在請求分頁系統(tǒng)中的外存分為:
對換區(qū):連續(xù)存放數(shù)據(jù)畔塔,讀寫速度較快
文件區(qū):離散分配方式,I/O速度相對慢
(三)頁面調入過程
1鸯屿、程序運行前需要裝入內存:上述的②步策略處理何處調入澈吨;
2、開始運行:先預調入一部分頁面寄摆;
3谅辣、運行中:需要的頁面不在內存時,向CPU發(fā)出一缺頁中斷婶恼,“中斷處理程序”開始工作
三桑阶、頁面置換算法
1柏副、頁面置換算法:選擇換出哪些頁面的算法,其好壞直接影響系統(tǒng)的性能蚣录。
2割择、最佳Optimal置換算法、
換出以后永不再用的包归,或在最長(未來)時間內不再被訪問的頁面锨推。
3、先進先出FIFO置換算法
先進入的先淘汰公壤,即選擇內存中駐留時間最久的頁面予以淘汰换可。
4、最近最久未使用(LRU)置換算法
LRU置換算法選擇最近最久未使用的頁面予以淘汰厦幅。
5沾鳄、CLOCK置換算法
每個頁設一個使用標志位,若該頁被訪問則將其置為1确憨。
設置一個指針译荞,從當前指針位置開始按地址先后檢查各頁,尋找use bit=0的頁面作為被置換頁休弃。
6吞歼、最少使用置換算法
頁設置訪問計數(shù)器,每當頁面被訪問時塔猾,該頁面的訪問計數(shù)器加1篙骡;缺頁中斷時,淘汰計數(shù)值最小的頁面丈甸,并將所有計數(shù)清零糯俗;
7、頁面緩沖算法PBA
系統(tǒng)將頁面放入兩個鏈表之一:如果頁面未被修改睦擂,就將其歸入到空閑頁面鏈表的末尾得湘;否則將其歸入到已修改頁面鏈表。
四顿仇、虛擬存儲管理下訪問內存的有效時間
請求分頁管理方式下淘正,存在三種方式的內存訪問
1、頁在內存夺欲,且快表檢索命中
EAT= l + t
2跪帝、頁在內存,但快表檢索沒有命中
EAT=快表檢索時間+訪問頁表時間+修改更新快表時間+訪問頁面物理內存時間=l +t+ l +t=2*(l +t)
3些阅、頁面不在內存
EAT=快表檢索時間+訪問頁表時間+缺頁中斷處理時間+修改更新快表時間+訪問頁面物理內存時間
? =l + t + e + l ?+ t
4、加入概率的綜合公式(a是快表命中率斑唬,f是缺頁率)
EAT= l ?+ a*t +(1-a)*{??? }
? ?????? =l ?+a*t +(1-a)*{t + f*(e+l+t)?+(1-f)*(l+ t)}
五市埋、影響缺頁率的主要因素
(1)分配給作業(yè)的主存塊數(shù):
? 多則缺頁率低黎泣,反之則高。
(2)頁面大戌突选:
? 大則缺頁率低抒倚;反之則高。
(3)頁面調度算法:
? 對缺頁中斷率影響很大坷澡,但不可能找到一種最佳算法托呕。
(4)程序編制方法:
? 以數(shù)組運算為例,如果每一行元素存放在一頁中频敛,則按行處理各元素缺頁中斷率低项郊;反之,按列處理各元素斟赚,則缺頁中斷率高着降。
六、抖動
1拗军、系統(tǒng)抖動:
為了提高處理機利用率任洞,可增加多道程序并發(fā)度;
但進程數(shù)目增加過多发侵,每個進程分配得到的物理塊太少交掏,在某個臨界點上,會出現(xiàn)剛被淘汰的頁很快又需重新調入刃鳄;而調入不久又被淘汰出去盅弛;出現(xiàn)頻繁缺頁
大部分處理器時間都用在來回的頁面調度上,這種局面稱為系統(tǒng)抖動或顛簸(thrashing)
2铲汪、抖動的后果:
缺頁率急劇增加
內存有效存取時間加長熊尉,
系統(tǒng)吞吐量驟減;系統(tǒng)已基本不能完成什么任務掌腰,而是忙于頁面對換操作狰住,cpu雖然忙,但效率急劇下降齿梁。
3催植、根本原因:
頁面淘汰算法不合理;分配給進程的物理頁面數(shù)(駐留集)太少勺择。
七创南、請求分段存儲管理方式
1、請求分段中的硬件支持
①段表機制
(1)存取方式:用于標識本分段的存取屬性省核。R,R/W,W
(2)訪問字段A:用于記錄本段被訪問的頻繁程度稿辙。
(3)修改位M:表示該段在調入內存后是否被修改過。
(4) 存在狀態(tài)位P :指示該段是否已調入內存气忠。
(5)增補位:特有字段邻储,表示該段運行中是否做過動態(tài)增長
(6)外存地址:用于指出該段在外存上的起始地址(盤塊號)赋咽。
②缺段中斷機構
缺段中斷同樣在一條指令的執(zhí)行期間產生和處理中斷,一條指令執(zhí)行可能產生多次缺段中斷吨娜。但不會出現(xiàn)一條指令被分割在兩個分段中或一組信息被分割在兩個分段中的情況脓匿。
③地址變換機構
增加了缺段中斷的請求及處理等功能
2、分段的共享和保護
1)實現(xiàn)共享:共享段表
在內存中配置一張共享段表宦赠,每個共享段都占有一表項
2)共享段如何分享與回收
第一個請求使用該共享段的進程A:系統(tǒng)為該共享段分配一物理區(qū)陪毡,再把共享段裝入該區(qū)
包括撤消在進程段表中共享段所對應的表項,執(zhí)行count:=count-1
如果count為0勾扭,則由系統(tǒng)回收該共享段的物理內存毡琉,并取消共享段表中該段所對應的表項
3)分段保護
越界檢查
存取控制檢查
環(huán)保護機構