目錄概述
一、單一連續分配
1. 應用背景
2.基本思想
3,實現
4,特點
二、固定分割槽分配
1.應用背景
2.基本思想
3,實現
4,特點
三、動態分割槽分配
1.應用背景
2.基本思想
3,實現
資料結構
分配演算法
4,特點
四、動態可重定位分割槽分配
1.應用背景
2.基本思想
3,實現
為了能將使用者程式裝入記憶體,必須為它分配一定大小的記憶體空間。連續分配方式是最早出現的一種儲存器分配方式,曾被廣泛應用於上世紀60~80年代的os中,該分配方式為乙個使用者程式分配乙個連續的記憶體空間,即程式中**或資料的邏輯位址相鄰,體現在記憶體空間分配時實體地址的相鄰。連續分配方式可分為四類:單一連續分配、 固定分割槽分配、動態分割槽分配以及動態可重定位分割槽分配演算法四種方式。
補充:單使用者系統。
在一段時間內,只有乙個程序在記憶體。
記憶體分為兩個區域:乙個供作業系統使用,乙個供使用者使用
設定基址暫存器、限界暫存器,要求:邏輯位址對映為實體地址後,實體地址必須在兩者之間。
簡單;適用於單任務os
多道程式設計系統。
單一連續分配中,將整塊記憶體交給乙個程式使用,顯然會造成很大浪費,自然的可以想到將一整塊記憶體區域分為若干個小塊區域,來供多個程式同時使用。劃分區域有兩種方法:分割槽大小相等、分割槽大小不等。前者更加簡單直接,後者使得儲存器分配更加靈活。
(1)os初始化階段,將使用者區劃分為若於固定大小的記憶體區域(分割槽) ;
(2)每個分割槽可放乙個程式執行;
(3)乙個分區內的程式執行結束,可調入另乙個程式 執行;
(4)劃分為幾個分割槽,則允許幾個程式同時在記憶體執行;
(5)分割槽大小和位置可不同;
分割槽說明表
多道程式設計系統。
(1) os初始化階段,將使用者區劃分為乙個大的空白分割槽;
(2)每個程式執行時,劃分出乙個大小合適的分割槽;
(3)程式執行結束,其所在的分割槽撤消;
不難看出,由於程式交錯執行,使用者區中可能產生許多較小的空閒區,他們常常不能滿足程式的空間需求,因而被浪費,即「外零頭」(碎片)
空閒分割槽表
空閒分割槽鏈
1)首次適應演算法
按位址遞增順序排列空閒分割槽鏈;
分配記憶體時,總是從低位址端開始掃瞄空閒區;
找到的第乙個大小合適的分割槽,就分割分配;
否則失敗。
特點:2)迴圈首次適應演算法
按位址遞增順序排列空閒分割槽鏈;
設定當前指標;
分配記憶體時,從指標所指位置開始掃瞄空閒區;
找到的第乙個大小合適的分割槽,就分割分配;
否則失敗。
本質:clock演算法;
特點:
3)最佳適應演算法
按大小遞增順序排列空閒分割槽鏈;
分配記憶體時,從鏈首開始掃瞄空閒區;
找到的第乙個大小合適的分割槽,就分割分配;
否則失敗。
特點:4)最壞適應演算法
按大小遞減順序排列空閒分割槽鏈;
分配記憶體時,總是分配鏈首空閒區;
否則失敗。
特點:「碎片」問題
經過一段時間的分配**後,記憶體中存在很多很小的空閒塊。它們每乙個都很小,不足以滿足分配要求;但其總和滿足分配要求。這些空閒塊被稱為碎片造成儲存資源的浪費
多道程式設計系統。
(1)採用動態分割槽分配方式;
(2)引入「緊湊」機制,合併小的碎片空閒區;
(3)使用動態位址重定位;
與動態分割槽分配類似,區別在於這裡使用了緊湊機制
緊湊機制會使得程式的位置發生改變,因此就需要引入重定位技術,由於程式的位置不固定,只有執行時才能確定,因此只能採用動態重定位(程式不變,執行時重定位,真正訪問的記憶體位址是相對位址與重定位暫存器中的位址相加而形成的)
作業系統 連續分配管理方式
連續分配方式是指為乙個使用者程式分配乙個連續的記憶體空間。內存在此方式下分為系統區和使用者區,系統區僅在作業系統使用,通常在低位址部分 使用者區是為使用者提供的 出系統區之外的記憶體空間。這種方式無需進行記憶體保護。因為記憶體中永遠只有一道程式,因此肯定不會越界和乾酪其他程式。固定分割槽分配是最簡單...
連續分配儲存管理方式
一 單一連續分配 最簡單的一種儲存管理方式,只能用於單使用者 單任務的作業系統中。優點 易於管理。缺點 對要求記憶體空間少的程式,造成記憶體浪費 程式全部裝入,很少使用的程式部分也占用記憶體。二 固定分割槽分配 把記憶體分為一些大小相等或不等的分割槽 partition 每個應用程序占用乙個分割槽。...
連續分配儲存管理方式
連續分配 為 乙個使用者程式分配一段 連續的記憶體空間 包括 單一連續分配 固定分割槽分配 動態分割槽分配以及動態重定位分配。離散分配 分頁儲存 分段儲存。記憶體分為系統區 使用者區和空閒區三部分,系統區僅提供給 os使用 使用者區記憶體中,僅裝有一道使用者程式。系統區使用者區空閒區 劃分分割槽的方...