操作系統(tǒng)(Operating System,簡稱OS),是電子計算機系統(tǒng)中負(fù)責(zé)支撐應(yīng)用程序運行環(huán)境以及用戶操作環(huán)境的系統(tǒng)軟件,同時也是計算機系統(tǒng)的核心與基石。它的職責(zé)常包括對硬件的直接監(jiān)管、對各種計算資源(如內(nèi)存、處理器時間等)的管理、以及提供諸如作業(yè)管理之類的面向應(yīng)用程序的服務(wù)等等。
課程主要內(nèi)容
操作系統(tǒng)引論(1章)
進(jìn)程管理(2-3章)
存儲管理(4章)
設(shè)備管理(5章)
文件管理(6章)
操作系統(tǒng)接口(7章)
系統(tǒng)安全性(9章)
*分布式操作系統(tǒng)
第4章 存儲器管理
存儲器是計算機系統(tǒng)的重要組成部分,是計算機系統(tǒng)中的一種寶貴而緊俏的資源.操作系統(tǒng)中的存儲管理是指對內(nèi)存的管理,它是操作系統(tǒng)的重要功能之一.
存儲管理的主要任務(wù)是為多道程序的運行提供良好的環(huán)境,方便用戶使用存儲器,提高存儲器的利用率以及從邏輯上擴充存儲器.為此
存儲管理應(yīng)具有以下功能:
實現(xiàn)內(nèi)存的分配和回收
地址變換
"擴充"內(nèi)存容量
進(jìn)行存儲保護(hù)
第4章 存儲器管理主要內(nèi)容
程序的裝入和鏈接
連續(xù)分配存儲管理方式
基本分頁存儲管理方式
基本分段存儲管理方式
虛擬存儲器的基本概念
請求分頁存儲管理方式
頁面置換算法
請求分段存儲管理方式
UNIX系統(tǒng)中存儲器管理
本章作業(yè)
4.1 程序的裝入和鏈接
在多道程序環(huán)境下,要使程序運行,必須創(chuàng)建進(jìn)程,而創(chuàng)建進(jìn)程第一件事就是將程序和數(shù)據(jù)裝入內(nèi)存.一個用戶源程序要變?yōu)樵趦?nèi)存中可執(zhí)行的程序,通常要進(jìn)行以下處理:
(1)編譯:由編譯程序?qū)⒂脩粼闯绦蚓幾g成若干個目標(biāo)模塊
(2)鏈接:由鏈接程序?qū)⒛繕?biāo)模塊和相應(yīng)的庫函數(shù)鏈接成裝入模塊
(3)裝入:由裝入程序?qū)⒀b入模塊裝入內(nèi)存
返回
分區(qū)分配方式存儲管理
分區(qū)分配方式是滿足多道程序設(shè)計需要的一種最簡單的存儲管理方法.
存儲管理方法
將內(nèi)存分成若干個分區(qū)(大小相等/不相等),除OS占一區(qū)外,其余的每一個分區(qū)容納一個用戶程序.按分區(qū)的變化情況,可將分區(qū)存儲管理進(jìn)一步分為:
固定分區(qū)存儲管理
動態(tài)分區(qū)存儲管理
二,固定分區(qū)分配方式(固定分區(qū)存儲管理)
是最早使用的一種可運行多道程序的存儲管理方法.
存儲管理方法
內(nèi)存空間的劃分:將內(nèi)存空間劃分為若干個固定大小的分區(qū),除OS占一區(qū)外,其余的一個分區(qū)裝入一道程序.分區(qū)的大小可以相等,也可以不等,但事先必須確定,在運行時不能改變.即分區(qū)大小及邊界在運行時不能改變.
系統(tǒng)需建立一張分區(qū)說明表或使用表,以記錄分區(qū)號,分區(qū)大小,分區(qū)的起始地址及狀態(tài)(已分配或未分配).
固定分區(qū)分配方式示意圖
三,動態(tài)分區(qū)分配方式
動態(tài)分區(qū)分配又稱為可變式分區(qū)分配,是一種動態(tài)劃分存儲器的分區(qū)方法.
存儲管理方法
不事先將內(nèi)存劃分成一塊塊的分區(qū),而是在作業(yè)進(jìn)入內(nèi)存時,根據(jù)作業(yè)的大小動態(tài)地建立分區(qū),并使分區(qū)的大小正好適應(yīng)作業(yè)的需要.因此系統(tǒng)中分區(qū)的大小是可變的,分區(qū)的數(shù)目也是可變的.
主要特點
管理簡單,只需小量的軟件和硬件支持,便于用戶了解和使用.進(jìn)程的大小與某個分區(qū)大小相等,從而主存的利用率有所提高.
1,分區(qū)分配中的數(shù)據(jù)結(jié)構(gòu)
空閑分區(qū)表
用來登記系統(tǒng)中的空閑分區(qū)(分區(qū)號,分區(qū)起始地址,分區(qū)大小及狀態(tài)).
解:按首次適應(yīng)算法,
申請作業(yè)100k,分配3號分區(qū),剩下分區(qū)為20k,起始地址160K ;
申請作業(yè)30k, 分配1號分區(qū),剩下分區(qū)為2k,起始地址50K ;
申請作業(yè)7k, 分配2號分區(qū),剩下分區(qū)為1k,起始地址59K ;
其內(nèi)存分配圖及分配后空閑分區(qū)表如下
例 :系統(tǒng)中的空閑分區(qū)表如下,現(xiàn)有三個作業(yè)分配申請內(nèi)存空間100K,30K及7K.給出按首次適應(yīng)算法的內(nèi)存分配情況及分配后空閑分區(qū)表.
380K
首次適應(yīng)算法的特點
優(yōu)先利用內(nèi)存低地址部分的空閑分區(qū),從而保留了高地址部分的大空閑區(qū).但由于低地址部分不斷被劃分,致使低地址端留下許多難以利用的很小的空閑分區(qū)(碎片或零頭),而每次查找又都是從低地址部分開始,這無疑增加了查找可用空閑分區(qū)的開銷.
返回
循環(huán)首次適應(yīng)算法
算法要求
又稱為下次適應(yīng)算法,由首次適應(yīng)算法演變而來.在為作業(yè)分配內(nèi)存空間時,不再每次從空閑分區(qū)表/鏈?zhǔn)组_始查找,而是從上次找到的空閑分區(qū)的下一個空閑分區(qū)開始查找,直到找到第一個能滿足其大小要求的空閑分區(qū)為止.然后,再按照作業(yè)大小,從該分區(qū)中劃出一塊內(nèi)存空間分配給請求者,余下的空閑分區(qū)仍留在空閑分區(qū)表/鏈中.
區(qū)號
空閑分區(qū)表
解:按循環(huán)首次適應(yīng)算法,
申請作業(yè)100k,分配3號分區(qū),剩下分區(qū)為20k,起始地址160K;
申請作業(yè)30k, 分配4號分區(qū),剩下分區(qū)為301k,起始地址210K ;
申請作業(yè)7k, 分配1號分區(qū),剩下分區(qū)為25k,起始地址27K ;
其內(nèi)存分配圖及分配后空閑分區(qū)表如下
例 :系統(tǒng)中的空閑分區(qū)表如下,現(xiàn)有三個作業(yè)分配申請內(nèi)存空間100K,30K及7K.給出按循環(huán)首次適應(yīng)算法的內(nèi)存分配區(qū)號
(2)該算法分配后的空閑分區(qū)表
返回
算法特點
使存儲空間的利用更加均衡,不致使小的空閑區(qū)集中在存儲區(qū)的一端,但這會導(dǎo)致缺乏大的空閑分區(qū).
最佳適應(yīng)算法
算法要求:
空閑分區(qū)表/鏈按容量大小遞增的次序排列.在進(jìn)行內(nèi)存分配時,從空閑分區(qū)表/鏈的首開始順序查找,直到找到第一個滿足其大小要求的空閑分區(qū)為止.
按這種方式為作業(yè)分配內(nèi)存,就能把既滿足作業(yè)要求又與作業(yè)大小最接近的空閑分區(qū)分配給作業(yè).如果該空閑分區(qū)大于作業(yè)的大小,則與首次適應(yīng)算法相同,將剩余空閑分區(qū)仍留在空閑分區(qū)表/鏈中.
例 :系統(tǒng)中的空閑分區(qū)表如下,現(xiàn)有三個作業(yè)分配申請內(nèi)存空間100K,30K及7K.給出按最佳適應(yīng)算法的內(nèi)存分配情況及分配后空閑分區(qū)表.
區(qū)號
分配前的空閑分區(qū)表
內(nèi)存分區(qū)
解:按最佳適應(yīng)算法,分配前的空閑分區(qū)表如上表.
申請作業(yè)100k,分配3號分區(qū),剩下分區(qū)為20k,起始地址160K;
申請作業(yè)30k, 分配2號分區(qū),剩下分區(qū)為2k,起始地址50K ;
申請作業(yè)7k, 分配1號分區(qū),剩下分區(qū)為1k,起始地址59K ;
其內(nèi)存分配圖及分配后空閑分區(qū)表如下
作業(yè)7K分配后的空閑分區(qū)表
(2)該算法分配后的空閑分區(qū)表
算法特點
若存在與作業(yè)大小一致的空閑分區(qū),則它必然被選中,若不存在與作業(yè)大小一致的空閑分區(qū),則只劃分比作業(yè)稍大的空閑分區(qū),,從而保留了大的空閑分區(qū),但空閑區(qū)一般不可能正好和它申請的內(nèi)存空間大小一樣,因而將其分割成兩部分時,往往使剩下的空閑區(qū)非常小,從而在存儲器中留下許多難以利用的小空閑區(qū)(碎片或零頭).
最壞適應(yīng)算法
算法要求
空閑分區(qū)表/鏈按容量大小遞減的次序排列.在進(jìn)行內(nèi)存分配時,從空閑分區(qū)表/鏈的首開始順序查找,直到找到第一個比之大的空閑分區(qū)為止.剩下的空閑仍留在空閑分區(qū)表/鏈中.