OS 非連續記憶體分配

2021-08-20 09:44:51 字數 766 閱讀 4217

利用調整程序占用的分割槽位置,來減少或避免分割槽碎片。

2.分割槽對換:通過搶占並**處於等待狀態的程序分割槽,增大可用記憶體空間,將等待狀態的程序掛起。

在連續記憶體分配的過程中,不可避免的要產生記憶體碎片,從而使得連續記憶體分配難以實現,並且記憶體利用效率較低。從而需要對記憶體碎片進行更好的利用——非連續記憶體分配。

非連續記憶體分配的策略主要有兩種:段式和也是,另外一種是兩者的結合:段頁式。

1.段位址空間:將程序分為不同的模組,每個模組對應乙個段,分配一段連續的記憶體位址。段與段之間可以不連續,但是段內必須連續。(圖中的12345不一定需要按順序)

2.段的訪問: 邏輯結構(s,addr)——s表示段號,addr表示段內偏移。

1.頁幀:把實體地址空間劃分為大小相同的基本分配單元。二元組(f,o)——f表示幀號(f位);o表示幀內偏移(s位)。實際實體地址=f * 2^s +o

2.頁面:把邏輯位址空間劃分為大小相同的基本分配單元。大小為2^n,幀和頁的大小必須相同。二元組(p,o)——p表示頁號(f位);o表示頁內偏移(s位)。

s=9,f=16-9=7,f=3,o=6

實際實體地址=f * 2^s +o=3 * 2^9 + 6=1542

5.多級頁表

6.快表:快取近期訪問的頁表項

在段式儲存的基礎上,給每乙個段加上一級頁表。段的記憶體塊較大,頁的記憶體塊較小。通過指向相同的頁表基址,實現程序間的段共享。

連續記憶體分配

連續記憶體分配 給程序分配一塊不小於指定大小的連續的物理記憶體區域 記憶體碎片 空間記憶體不能被利用 外部碎片 分配單元之間的未被使用記憶體 內部碎片 分配單元內部的未被使用記憶體,取決於分配單元大小是否要取整 當程式被載入執行時,分配乙個程序指定大小可變的分割槽 塊 記憶體塊 分割槽的位址是連續的...

連續記憶體分配

實體地址空間 載入到暫存器中的位址,記憶體單元真正的位址,其位數由位址匯流排數決定,32位則表示32條位址匯流排,編號從0一直到可用記憶體的最大值。cpu執行時程式可看到的位址,由內部和程式設計時使用,比如c語言中讀取乙個指標變數本身的值,讀到的就是邏輯位址,它是相對於當前資料段的位址也就是偏移位址...

物理記憶體連續記憶體分配

記憶體管理的要求 共享 訪問相同記憶體 記憶體管理方式 重定位,relocation,段位址 偏移 分段,segmentation,資料,堆疊分成三塊,每段連續 分頁,paging,記憶體分為最基本的單位,房子的磚塊 虛擬儲存 virtual memory,linux採用按需頁式虛擬儲存 邏輯位址空...