計算機操作系統基礎筆記 操作系統有哪些狀態( 六 )


存儲器管理的目的

  1. 主存儲器的分配和管理
  2. 提高主存儲器的利用率
  3. “擴充”主存容量
  4. 存儲保護
存儲器保護
  1. 自動地址修改
  2. 0頁,1頁尋址
  3. 界限寄存器
連續分配方式
  1. 單一連續分配方式
  2. 分區式分配方式
  3. 可重定位分區分配
單一連續分配方式內存中僅駐留一道用戶程序,整個用戶區為一個用戶獨 占 。?內存分為兩個區域:系統區,用戶區 。
應用程序裝入到用戶區,可使用用戶區全部空間 。
分區式分配方式算法復雜,回收分區時系統開銷大 。
1. 固定分區分配
(1)分區大小不等(2)分區大小相等
建立分區說明表,內存分配程序檢索分區說明表,找出合適分區后修改分區狀態 。
優點:易于實現,開銷小
缺點:內碎片造成浪費,分區總數固定,限制了并發執行的程序數目,存儲空間的利用率太低 。
2. 動態分區分配
1. 分區數目固定
2. 分區數目大小均不固定
數據結構:空閑分區表 / 空閑分區鏈
分區分配算法基于順序搜索:
1. 最佳適應算法
2. 最壞適應算法
3. 首次適應算法
4. 循環首次(下次)適應算法
基于索引搜素:
1. 快速適應算法
2. 伙伴系統
最佳適應算法總是尋找其大小最接近作業所要求的存儲區域 。即使作業放入后剩下的零頭最小 。
優點:
遇到大作業到來時,作業要求的存儲區域就比較容易得到滿足 。
缺點:
產生空白區較多,且空白區較小無法使用(可干脆將整個區域劃分給申請的作業 。
回收分區時插入到合適的位置較為費時 。
為了加快查找速度,應將存儲空間中所有的空白 區按其大小遞增的順序鏈接起來,組成一空白區鏈 (Free List) 。
最壞適應算法它在為作業選擇存儲區域時,總是尋找最大的空白區 。在劃分后剩下的空白區也是最大的,因而對以后的分配很可能仍然是有用的,這是該算法的一個優點 。
但是,由于最大的空白塊總是首先被分配而進行劃分,當有大的作業時,其存儲空間的申請往往得不到滿足,這是該算法的一個缺點 。
為了支持這個算法的實現,空白塊應以大小遞減的順序鏈接起來 。
首次適應算法每個空白區按其在存儲空間中地址遞增的順序鏈在 一起,即每個后繼空白區的起始地址總是比前者的 大 。在為作業分配存儲區域時,從這個空白區鏈的 始端開始查找,選擇第一個足以滿足請求的空白塊,而不管它究竟有多大 。
這個選擇的空白區被分成兩部分 。一部分與請求的大小相等,分配給作業;剩下的部分留在空白區鏈中 。顯然,這個算法傾向于優先利用存儲空間中低址部分的空白區 。
優點:
算法簡單,查找速度快,大作業到來時也比較容易得到滿足
缺點:
會留下較多無法使用的空白區,存儲空間利用率不高 。較小空白區集中在前端,較大空白區在尾端,導致找到合適的空白區的速度降低 。
下次適應算法我們把存儲空間中空白區構成一個循環鏈 。每次為存儲請求查找合適的分區時,總是從上次查找結束的地方開始,只要找到一個足夠大的空白區,就將它劃分后分配出去 。
優點:存儲空間的利用更加均衡 。
快速適應算法將空閑分區根據其容量大小進行分類,對于每一 類具有相同容量的所有空閑分區,單獨設立一個空閑分區鏈表 。
在內存中設立一張管理分區類型,并記錄 了該類型空閑分區鏈表表頭的索引表,該表的每一個表項記錄了對應類型空閑分區鏈表表頭的指針 。
在內存中設立一張管理分區類型,并記錄了該類型空閑分區鏈表表頭的索引表,該表的每一個表項記錄了對應類型空閑分區鏈表表頭的指針 。
優點:
查找效率高 。
該算法在進行空閑分區分配時,不會對任何分區產生 分割,所以能保留大的分區,滿足對大空間的需求,也不會產生內存碎片 。(外碎片)
缺點:
在分區歸還主存時算法復雜,系統開銷較大 。
該算法在分配空閑分區時是以進程為單位,一個分區 只屬于一個進程,因此在為進程所分配的一個分區中 ,或多或少地存在一定的浪費 ??臻e分區劃分越細,浪費則越嚴重 。(內碎片)

推薦閱讀