操做系統——存儲管理

操做系統——存儲管理 

該部分功能:
一、地址映射(邏輯地址——>主存物理地址)
    由操做系統中的裝入程序loader來完成(靜態或動態<執行時重定位寄存器完成>)。
二、內存分配和回收
三、存儲保護(保證用戶程序在各自的存儲區域內操做互不干擾)
四、提供虛擬存儲技術(不受實際物理內存限制,只受cpu位數限制)

單一連續區存儲管理
分區存儲管理
覆蓋和交換技術
頁式存儲管理
段頁式存儲管理
程序員


1、單一連續存儲區管理

一、內存分爲: 系統區 和 用戶區  ——>應用程序裝入到用戶區可以使用用戶區所有空間。
最簡單的一種內存管理方式,適用於單用戶、單任務的OS.
優勢: 易於管理
缺點:同單道程序同樣,內存利用率低。

2、分區存儲管理
原理 :把內存分爲一些大小相等或不等的分區,操做系統佔用其中一個分區,每一個應用進程佔用一個或幾個分區。
特色: 適用於多道程序系統 和 分時系統 ——>支持多個程序併發執行。

一、固定分區: 把內存劃分爲若干個固定大小的連續分區(大小同 或 不一樣)
採用數據結構: 分區表(分區號、起始地址、長度、佔用標識)
優勢:易於實現、開銷小
缺點:存在內部碎片(分區內未被利用空間)、分區總數固定,限制了併發執行的程序數量。

二、動態建立分區:按照程序申請要求分配。
優勢: 沒有內部碎片 缺點:有外部碎片(難以利用的小空閒分區)

三、分區分配 與回收算法
分配——首次適應法(主要集中在內存低端,不斷劃分後容易產生較多小分區)、最佳適應法(找到相差最小的分區,外部小碎片會較多)、最壞適應(基本不留下小的空閒分區)

四、存儲保護
用戶程序間的相互干擾——界限寄存器保護、 限長寄存器

五、覆蓋 和 交換技術
覆蓋:一個程序的幾個代碼段 或 數據段, 按照時間前後佔用公共的內存空間。
    較小的內存中運行較大程序,(須要程序員指定覆蓋關係)
交換:將暫時不能執行的程序交換到外村,給其餘就緒進程讓出空間。
     增長併發進程數量,(增長處理器開銷)

頁式存儲管理
 一、引入: 分區存儲管理的主要問題是: 碎片問題, 緣由: 用戶程序是總體裝入。
 二、原理:程序地址空間分紅大小相等的頁面,同時把內存也分紅與頁面大小相等的 塊 。
           內存分配單位: 頁面(塊) 2的n次方 kB
3、優勢: 沒有外部碎片,最後一頁可能有內碎片但不大; 程序沒必要連續存放;便於改變程序佔用空間大小。
四、缺點: 程序仍須要所有裝入內存。
五、普通狀態下,訪問程序數據要兩次訪問內存;引入聯想寄存器(快表),只須要一次訪問內存
改進爲 請求頁式存儲管理

頁表表項中 有特徵位(標識該頁是否在內存)
要訪問的頁面不存在——缺頁中斷
頁面淘汰算法——FIFO、 LRU、最不常使用、最優算法
關於 「抖動」——頻繁產生內外存之間的頻繁調度, 緣由是 頁面淘汰算法不合理、分配給進程的物理頁面太少

段式存儲管理
 一、原理,把內存視爲二維空間,與進程邏輯一致。把程序的地址空間分爲若干個段(segment),程序加載時,分配存放各個段所需的物理內存,這些段沒必要連續;物理內存的管理採用動態分區。
二、程序經過分段劃分爲多個模塊:代碼段、數據段、共享段
三、優勢: 要多大有多大,沒有內碎片
四、缺點:進程所有裝入內存

比較
一、分頁是系統管理須要、分段是處於用戶應用的須要(一條指令確定不會跨越兩個段,頁有可能)
二、頁大小固定,段大小不固定
三、分頁是一維(各個模塊連接時必須組織成一個地址空間)、分段式二維(各個段組成一個地址空間)
四、段表比頁表小,能夠縮短查找時間,提升訪問速度。

段頁式存儲管理(三次訪問內存)
分配單位: 段、頁
邏輯清晰、且沒必要連續存放算法

相關文章
相關標籤/搜索