C3 儲存管理

2021-10-01 12:33:00 字數 2751 閱讀 5239

儲存管理的主要模式@

邏輯位址:又稱相對位址,即使用者程式設計所使用的程式設計位址

從0開始編號

段氏程式設計:把乙個程式設計成多個段

使用者可以應用段覆蓋技術擴充記憶體空間使用量

實體地址

主儲存器的復用

1.按照分割槽復用(分割槽固定/可變)

2.按照頁架復用(頁架固定)

儲存管理的基本模式

儲存管理的功能@

位址轉換:又稱重定位,將邏輯位址轉換為絕對位址。

主儲存器空間的擴充

1.對換技術;

2.虛擬技術;

虛擬儲存器儲存管理的硬體支撐@

單連續分割槽儲存管理@

固定分割槽儲存管理(會產生記憶體內零頭

可變分割槽儲存管理(最常用

可變分割槽儲存管理@

按程序的記憶體需求 來動態劃分分割槽

記憶體分配

最先適應分配演算法

鄰近適應分配演算法

最優適應分配演算法(最容易產生記憶體外零頭問題)

最壞適應分配演算法

位址轉換與儲存保護

移動技術(程式浮動技術)

1.解決記憶體外零頭問題

2.需要動態重定位支撐

頁式儲存管理

頁表放在主存中:每次位址轉換必須訪問兩次主存

1.按頁號獨處頁表中的相應頁架號

2.按計算出來的絕對位址進行讀寫

存在問題:降低了訪問速度

解決辦法:利用cache存放部分頁表

快表:頁號,頁架號。(聯想儲存器,按照內容定址)

基於快表的位址轉換流程

頁式虛擬儲存管理

頁面排程

缺頁中斷率=不成功訪問次數/總訪問次數

影響缺頁中斷率的因素:可用頁架數越多,越低;頁面越大,越低;使用者程式設計方式。

opt頁面排程演算法(最佳演算法):

先進先出fifo頁面排程演算法:總是淘汰最先調入主存的那一頁。

最近最少用lru頁面排程演算法:淘汰最近一段時間較久未被訪問的那一頁。既考慮了迴圈性又兼顧了順序性。

模擬實現:每頁件乙個引用標誌,供硬體使用;設定乙個時間間隔中斷;

最不常用lfu頁面排程演算法:

時鐘clock頁面排程演算法:

反置頁表

原來的頁表是以頁號為索引,記錄頁架號;但是反置頁表是以頁架號為索引,記錄程序號和頁號

針對記憶體中的每個頁架建立乙個頁表

表項包含:正在訪問該頁架的程序標識,頁號及特徵位,和雜湊鏈指標。

段式儲存管理@

分段儲存器的邏輯位址由兩部分組成:

段號:單元號

儲存管理需要增加設定乙個段表,每個段占用乙個段表項:段始址,段限長,以及儲存保護,可移動,可擴充等標誌位。

位址轉換流程

段的共享

段式虛擬儲存管理

將程序的所有分段都存放在輔存中,需要時,動態調入主存。

段表擴充:特徵位,訪問許可權,擴充位,標誌位

段頁式儲存管理

基本思想:

段式儲存管理可以基於頁式儲存管理實現

每一段不必佔據連續的儲存空間,可存放在不連續的主存頁架中

能夠擴充位段頁式虛擬儲存管理

裝入部分段,或者段內部分頁面

c 3 隨機函式

以下為c常見隨機數生成方法 include include include void main srand函式和rand函式在vc庫的實現如下 include include include include ifndef mt static long holdrand 1l endif mt voi...

c 3 繼承和組合

class c5 c6.h include c5.h class c6 class c3 class c4 class c9 class c10 class c7 class c8 視問題域而定的,例如在關心汽車的領域裡,輪胎是一定要組合在汽車類中的,因為它離開了汽車就沒有意義了。但是在賣輪胎的店鋪...

C 3的分部方法

作用是乙個可選的鉤子,如果沒有實現,則不會有任何的開銷。比如 myform.cs partial class myform public myform partial void custominitialize partial void setup myformhandwritten.cs part...