操作系統(tǒng)講稿內(nèi)存管理課件_第1頁
操作系統(tǒng)講稿內(nèi)存管理課件_第2頁
操作系統(tǒng)講稿內(nèi)存管理課件_第3頁
操作系統(tǒng)講稿內(nèi)存管理課件_第4頁
操作系統(tǒng)講稿內(nèi)存管理課件_第5頁
已閱讀5頁,還剩95頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第四章第四章 內(nèi)存管理內(nèi)存管理 主存儲器是僅次于主存儲器是僅次于CPU的寶貴資源。的寶貴資源。 眾多進(jìn)程共用一個(gè)存儲器,必然涉及到存儲器眾多進(jìn)程共用一個(gè)存儲器,必然涉及到存儲器 的分配、安全、利用率、共享以及擴(kuò)展等諸多的分配、安全、利用率、共享以及擴(kuò)展等諸多 問題。問題。 存儲管理需要做的事情是:存儲管理需要做的事情是: 將用戶程序所用的地址空間轉(zhuǎn)換為主存儲器中的實(shí)將用戶程序所用的地址空間轉(zhuǎn)換為主存儲器中的實(shí) 際地址空間,將用戶程序的操作地址變換為存儲器際地址空間,將用戶程序的操作地址變換為存儲器 上的具體位置。上的具體位置。 為存儲空間提供安全和共享的手段。為存儲空間提供安全和共享的手段。

2、為用戶程序?qū)崿F(xiàn)虛擬存儲空間等。為用戶程序?qū)崿F(xiàn)虛擬存儲空間等。 概述概述 DOS分區(qū)及分段分區(qū)及分段 Windows XP的存儲器的存儲器 Linux存儲管理存儲管理 實(shí)用系統(tǒng)中的存儲管理方法實(shí)用系統(tǒng)中的存儲管理方法 DOS分區(qū)及分段分區(qū)及分段 OS 用戶區(qū) 擴(kuò)展內(nèi)存 0 640KB 1MB 主存儲器被限制為主存儲器被限制為 1MB的內(nèi)存空間。的內(nèi)存空間。 低端的低端的640KB的基的基 本內(nèi)存。本內(nèi)存。 高端的擴(kuò)展內(nèi)存。高端的擴(kuò)展內(nèi)存。 系統(tǒng)啟動(dòng)后將操作系系統(tǒng)啟動(dòng)后將操作系 統(tǒng)調(diào)入基本內(nèi)存的低端統(tǒng)調(diào)入基本內(nèi)存的低端 位置,大概占幾十位置,大概占幾十KB 的空間。的空間。 基本內(nèi)存的剩余部分便基

3、本內(nèi)存的剩余部分便 是用來存放用戶程序的是用來存放用戶程序的 用戶區(qū)。用戶區(qū)。 在在DOS發(fā)展的后期,已發(fā)展的后期,已 經(jīng)可以利用擴(kuò)展內(nèi)存來經(jīng)可以利用擴(kuò)展內(nèi)存來 存放系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)、存放系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)、 驅(qū)動(dòng)程序以及某些庫文驅(qū)動(dòng)程序以及某些庫文 件等內(nèi)容,但用戶不能件等內(nèi)容,但用戶不能 對擴(kuò)展存儲器中的內(nèi)容對擴(kuò)展存儲器中的內(nèi)容 進(jìn)行修改。進(jìn)行修改。 程序和數(shù)據(jù)不能突程序和數(shù)據(jù)不能突 破基本內(nèi)存的限制,因破基本內(nèi)存的限制,因 此,用戶程序的大小必此,用戶程序的大小必 須低于須低于640KB。 用戶區(qū)內(nèi)只能存放用戶區(qū)內(nèi)只能存放 一個(gè)用戶程序,因此,一個(gè)用戶程序,因此, DOS系統(tǒng)只支持單道程系統(tǒng)只

4、支持單道程 序。序。 Windows xp的存儲器的存儲器 Windows xp要求存儲器最低為要求存儲器最低為64MB。 內(nèi)存被劃分為大小為內(nèi)存被劃分為大小為4KB的頁面。內(nèi)存中可以存放多個(gè)用的頁面。內(nèi)存中可以存放多個(gè)用 戶任務(wù)的頁面,因此,戶任務(wù)的頁面,因此,Windows支持多任務(wù)同時(shí)運(yùn)行。支持多任務(wù)同時(shí)運(yùn)行。 用戶在編制程序時(shí),其大小最高可達(dá)用戶在編制程序時(shí),其大小最高可達(dá)4GB,但在程序運(yùn)行,但在程序運(yùn)行 時(shí),并不是全部程序都裝入內(nèi)存,而是只裝入程序的部分時(shí),并不是全部程序都裝入內(nèi)存,而是只裝入程序的部分 頁面來運(yùn)行。頁面來運(yùn)行。 當(dāng)需要裝入新的程序頁面而內(nèi)存中又沒有足夠的空閑區(qū)當(dāng)需

5、要裝入新的程序頁面而內(nèi)存中又沒有足夠的空閑區(qū) 域時(shí),操作系統(tǒng)將內(nèi)存中長期未使用的頁面換出到輔助存域時(shí),操作系統(tǒng)將內(nèi)存中長期未使用的頁面換出到輔助存 儲器上早已安排的頁面(儲器上早已安排的頁面(paging file)文件中,騰出空間)文件中,騰出空間 后再將需要換進(jìn)的頁面調(diào)入。后再將需要換進(jìn)的頁面調(diào)入。 Windows 支持虛擬存儲器。支持虛擬存儲器。 Windows xp的存儲器的存儲器 頁頁 面面 在在 內(nèi)內(nèi) 存存 中中 換換 出出 換換 進(jìn)進(jìn) Page Faults/sec 是每秒是每秒 鐘發(fā)生頁面缺失的平均鐘發(fā)生頁面缺失的平均 數(shù)量。頁面缺失將直接數(shù)量。頁面缺失將直接 導(dǎo)致頁面換進(jìn)。導(dǎo)

6、致頁面換進(jìn)。 Pages Input/sec 是從磁是從磁 盤換進(jìn)頁面的速度。盤換進(jìn)頁面的速度。 當(dāng)一個(gè)進(jìn)程引用一個(gè)虛當(dāng)一個(gè)進(jìn)程引用一個(gè)虛 擬內(nèi)存的頁面,而此頁擬內(nèi)存的頁面,而此頁 面不存在于內(nèi)存,就會面不存在于內(nèi)存,就會 發(fā)生頁面缺失。發(fā)生頁面缺失。 Pages Output/sec 是指是指 為了釋放物理內(nèi)存空間為了釋放物理內(nèi)存空間 而將頁面寫入磁盤的速而將頁面寫入磁盤的速 度。度。 當(dāng)物理內(nèi)存不足時(shí),當(dāng)物理內(nèi)存不足時(shí), Windows 會將頁面寫回會將頁面寫回 到磁盤以便釋放空間。到磁盤以便釋放空間。 出頁的峰值往往與進(jìn)頁出頁的峰值往往與進(jìn)頁 峰值接近。峰值接近。 說明出頁多是因?yàn)橛羞M(jìn)說

7、明出頁多是因?yàn)橛羞M(jìn) 頁需求,即只有當(dāng)內(nèi)存頁需求,即只有當(dāng)內(nèi)存 中沒有可分配空間,同中沒有可分配空間,同 時(shí)又必須調(diào)入內(nèi)存新的時(shí)又必須調(diào)入內(nèi)存新的 頁面時(shí),才需要換出頁頁面時(shí),才需要換出頁 面。面。 Windows xp的存儲器的存儲器 可可 用用 物物 理理 內(nèi)內(nèi) 存存 Available MBytes 是計(jì)是計(jì) 算機(jī)上運(yùn)行的進(jìn)程的可算機(jī)上運(yùn)行的進(jìn)程的可 用物理內(nèi)存大小。它是用物理內(nèi)存大小。它是 將零的、空閑的和備用將零的、空閑的和備用 內(nèi)存列表的空間添加在內(nèi)存列表的空間添加在 一起來計(jì)算的。一起來計(jì)算的。 Linux存儲管理存儲管理 Linux系統(tǒng)也是將存儲器空間劃分成頁面,系統(tǒng)也是將存儲器

8、空間劃分成頁面, 根據(jù)進(jìn)程運(yùn)行時(shí)的需要來對頁面進(jìn)行換進(jìn)、根據(jù)進(jìn)程運(yùn)行時(shí)的需要來對頁面進(jìn)行換進(jìn)、 換出的。換出的。 同樣在磁盤上也安排了交換區(qū)來與內(nèi)存同樣在磁盤上也安排了交換區(qū)來與內(nèi)存 協(xié)調(diào)工作,以達(dá)到擴(kuò)大內(nèi)存的目的。協(xié)調(diào)工作,以達(dá)到擴(kuò)大內(nèi)存的目的。 但是但是Linux系統(tǒng)的交換區(qū)多采用在硬盤上系統(tǒng)的交換區(qū)多采用在硬盤上 劃分出一個(gè)指定區(qū)域來作為交換區(qū),因此,劃分出一個(gè)指定區(qū)域來作為交換區(qū),因此, 交換區(qū)的大小不可變化。交換區(qū)的大小不可變化。 4.1 內(nèi)存管理功能內(nèi)存管理功能 用戶實(shí)體與存儲空間用戶實(shí)體與存儲空間 分配、釋放及分配原則分配、釋放及分配原則 地址映射地址映射 虛擬存儲器虛擬存儲器

9、存儲保護(hù)與共享存儲保護(hù)與共享 存儲區(qū)整理存儲區(qū)整理 用戶實(shí)體與存儲器的關(guān)系用戶實(shí)體與存儲器的關(guān)系 n任務(wù)任務(wù)在被激活之前在被激活之前存放在輔助存儲器存放在輔助存儲器上。上。 n當(dāng)任務(wù)被激活時(shí),它成為當(dāng)任務(wù)被激活時(shí),它成為進(jìn)程進(jìn)入主存儲器進(jìn)程進(jìn)入主存儲器。 n進(jìn)程的描述進(jìn)程的描述部分部分及主程序及主程序部分始終存放于部分始終存放于主存儲器主存儲器, 其他其他程序和數(shù)據(jù)部分視需要由操作系統(tǒng)程序和數(shù)據(jù)部分視需要由操作系統(tǒng)在內(nèi)存與外存之在內(nèi)存與外存之 間交換間交換。 n當(dāng)用戶向計(jì)算機(jī)當(dāng)用戶向計(jì)算機(jī)提交提交自己的自己的任務(wù)任務(wù)時(shí),存儲管理是以一時(shí),存儲管理是以一 種種邏輯形式邏輯形式來進(jìn)行描述。來進(jìn)行描

10、述。 n而當(dāng)操作系統(tǒng)而當(dāng)操作系統(tǒng)處理處理用戶的用戶的任務(wù)任務(wù)時(shí),是對具體的時(shí),是對具體的存儲器存儲器 地址進(jìn)行操作。地址進(jìn)行操作。 n存儲管理存儲管理的工作就是圓滿地處理發(fā)生在的工作就是圓滿地處理發(fā)生在銜接邏輯和物銜接邏輯和物 理存儲理存儲時(shí)所產(chǎn)生的各種問題。時(shí)所產(chǎn)生的各種問題。 存儲空間與存儲地址存儲空間與存儲地址 概念:概念: 邏輯地址邏輯地址 邏輯地址空間邏輯地址空間 物理地址物理地址 物理地址空間物理地址空間 用戶的每一條程序指令要訪問的數(shù)據(jù)都用戶的每一條程序指令要訪問的數(shù)據(jù)都 有一個(gè)對應(yīng)的地址,這個(gè)地址被稱為有一個(gè)對應(yīng)的地址,這個(gè)地址被稱為邏邏 輯地址輯地址。 由于它是相對于由于它是

11、相對于0的地址,因此又被稱的地址,因此又被稱 為為相對地址相對地址。 當(dāng)用戶程序被編譯為當(dāng)用戶程序被編譯為目標(biāo)代碼目標(biāo)代碼時(shí)也使用時(shí)也使用 的是相對地址。的是相對地址。 原則上講,因此用戶可以無限制地加長原則上講,因此用戶可以無限制地加長 自己的程序。自己的程序。 在具體應(yīng)用中在具體應(yīng)用中相對地址的大小受相對地相對地址的大小受相對地 址寄存器位數(shù)的限制址寄存器位數(shù)的限制,如在,如在Windows 中中 相對地址寄存器為相對地址寄存器為32位,表示相對地址位,表示相對地址 最大可達(dá)最大可達(dá)4GB。 邏輯地址空間可以邏輯地址空間可以定義定義為:實(shí)體(用戶、為:實(shí)體(用戶、 作業(yè)、任務(wù)、進(jìn)程或程序)

12、所用的所有作業(yè)、任務(wù)、進(jìn)程或程序)所用的所有 邏輯地址的集合邏輯地址的集合。 不同的操作系統(tǒng)賦予邏輯地址空間不同不同的操作系統(tǒng)賦予邏輯地址空間不同 的表現(xiàn)形式,它的大小也是可以確定的。的表現(xiàn)形式,它的大小也是可以確定的。 用戶可以直接對邏輯地址和邏輯地址空用戶可以直接對邏輯地址和邏輯地址空 間進(jìn)行訪問和操作間進(jìn)行訪問和操作。 邏輯地址空間又稱為邏輯地址空間又稱為相對地址空間相對地址空間,有,有 時(shí)候也被簡稱為用戶空間或者作業(yè)空間。時(shí)候也被簡稱為用戶空間或者作業(yè)空間。 邏輯地址空間的大小被限制在邏輯地址空間的大小被限制在0到相對到相對 地址最大值之間。地址最大值之間。 內(nèi)存中的實(shí)際地址被稱為物理

13、地址。內(nèi)存中的實(shí)際地址被稱為物理地址。 由于它并不和任何相對地址相關(guān),因由于它并不和任何相對地址相關(guān),因 此,物理地址又稱為絕對地址。此,物理地址又稱為絕對地址。 物理地址的最小值為物理地址的最小值為0,最大值取決,最大值取決 于內(nèi)存的大小和內(nèi)存地址寄存器的所于內(nèi)存的大小和內(nèi)存地址寄存器的所 能表現(xiàn)的最大值,二者中較小的那一能表現(xiàn)的最大值,二者中較小的那一 個(gè)值為物理地址的最大值。個(gè)值為物理地址的最大值。 物理地址空間可以定義為:當(dāng)邏輯地物理地址空間可以定義為:當(dāng)邏輯地 址空間址空間被映射到內(nèi)存被映射到內(nèi)存時(shí)所對應(yīng)的物理時(shí)所對應(yīng)的物理 地址的集合。地址的集合。 物理地址空間又稱為物理地址空間又

14、稱為絕對地址空間絕對地址空間。 物理地址空間并不是指物理內(nèi)存,只物理地址空間并不是指物理內(nèi)存,只 有當(dāng)邏輯地址空間存在時(shí),才會有物有當(dāng)邏輯地址空間存在時(shí),才會有物 理地址空間。理地址空間。 物理地址空間受存儲器大小的限制,物理地址空間受存儲器大小的限制, 也就是說物理地址空間最大只能達(dá)到也就是說物理地址空間最大只能達(dá)到 內(nèi)存的大小。內(nèi)存的大小。 一、地址重定位一、地址重定位 mov AL, nn mov AL, nn 邏輯空間 0 內(nèi)存 m nn L nn+m L+m 裝入后的作業(yè)并不能立即運(yùn)行,裝入后的作業(yè)并不能立即運(yùn)行, 因?yàn)樽鳂I(yè)中每一個(gè)指令要訪問的因?yàn)樽鳂I(yè)中每一個(gè)指令要訪問的 地址依然是

15、地址依然是相對地址相對地址,相對地址,相對地址 是邏輯地址空間中的地址,并不是邏輯地址空間中的地址,并不 是內(nèi)存中的實(shí)際地址,因此不能是內(nèi)存中的實(shí)際地址,因此不能 夠訪問。夠訪問。 裝入是指將邏輯地址空間安裝入是指將邏輯地址空間安 排到內(nèi)存中具體的物理位置上。排到內(nèi)存中具體的物理位置上。 裝入針對的是整個(gè)邏輯地址空裝入針對的是整個(gè)邏輯地址空 間。間。 1.裝入裝入 mov AL, nn mov AL, nn+m 邏輯空間 0 內(nèi)存 m nn L nn+m L+m 2.地址映射地址映射 對于指令要訪問的地址進(jìn)行相對對于指令要訪問的地址進(jìn)行相對 地址到絕對地址的變換,就是地地址到絕對地址的變換,就

16、是地 址映射。址映射。 地址映射就是將邏輯地址空間中地址映射就是將邏輯地址空間中 的地址映射到物理地址空間中去。的地址映射到物理地址空間中去。 采用的辦法為重定位。采用的辦法為重定位。 1.裝入程裝入程 序序 在裝入過程完成后,根據(jù)裝入的起始位在裝入過程完成后,根據(jù)裝入的起始位 置來修改程序中指令要訪問的地址,將置來修改程序中指令要訪問的地址,將 相對地址改為絕對地址就是重定位。相對地址改為絕對地址就是重定位。 絕對地址絕對地址 (BR)相對地址)相對地址 根據(jù)不同的根據(jù)不同的地址修改時(shí)間地址修改時(shí)間可可 將重定位劃分為將重定位劃分為靜態(tài)靜態(tài)重定位重定位 和和動(dòng)態(tài)動(dòng)態(tài)重定位。重定位。 2.重定

17、位:重定位: 靜態(tài)重定位靜態(tài)重定位 動(dòng)態(tài)重定位動(dòng)態(tài)重定位 mov AL, nn mov AL, nn+m 邏輯空間 0 內(nèi)存 m nn L nn+m L+m 靜態(tài)重定位是在裝入過程完成后在靜態(tài)重定位是在裝入過程完成后在程序運(yùn)行程序運(yùn)行 前前,一次一次將所有的指令要訪問的地址全部修改將所有的指令要訪問的地址全部修改 為絕對地址,在程序運(yùn)行過程中不再修改。為絕對地址,在程序運(yùn)行過程中不再修改。 靜態(tài)重定位要求程序一旦裝入其靜態(tài)重定位要求程序一旦裝入其絕對地址空間絕對地址空間 就就不能發(fā)生變化不能發(fā)生變化了。了。 mov AL, nn m nn+m nn + mov AL, nn m L+m 0 L

18、 nn 邏輯空間 L 基址寄存器 L 地址寄存器 內(nèi)存 L 動(dòng)態(tài)重定位是在程序的動(dòng)態(tài)重定位是在程序的運(yùn)行過程運(yùn)行過程中,當(dāng)指令需中,當(dāng)指令需 要執(zhí)行時(shí)對將要訪問的要執(zhí)行時(shí)對將要訪問的地址地址進(jìn)行進(jìn)行修改修改。 動(dòng)態(tài)重定位動(dòng)態(tài)重定位允許允許在在程序運(yùn)行過程程序運(yùn)行過程中,其中,其絕對地絕對地 址址空間發(fā)生變化或被分割為不同的區(qū)域,空間發(fā)生變化或被分割為不同的區(qū)域,變化變化后后 只需要將基地址寄存器中的內(nèi)容作對應(yīng)修改。只需要將基地址寄存器中的內(nèi)容作對應(yīng)修改。 采用靜態(tài)重定位方式的采用靜態(tài)重定位方式的主要優(yōu)點(diǎn)主要優(yōu)點(diǎn)是:是: (1)可以在一般機(jī)器上全部用)可以在一般機(jī)器上全部用。 (2)裝入程序可以

19、實(shí)現(xiàn))裝入程序可以實(shí)現(xiàn)。 靜態(tài)重定位方式靜態(tài)重定位方式主要缺點(diǎn)主要缺點(diǎn)是:是: (1)執(zhí)行期間程序)執(zhí)行期間程序在主存儲器中在主存儲器中, 所以對提高主存儲器的利用率不利。所以對提高主存儲器的利用率不利。 (2)若程序空間大于被分配的物理空間,)若程序空間大于被分配的物理空間, 由程序員自行采取某種手段來由程序員自行采取某種手段來問題,問題, 如采用覆蓋結(jié)構(gòu)。如采用覆蓋結(jié)構(gòu)。 (3)用戶)用戶已經(jīng)存放在主存中的同已經(jīng)存放在主存中的同 一個(gè)程序,如果幾個(gè)用戶要使用同一個(gè)程序,一個(gè)程序,如果幾個(gè)用戶要使用同一個(gè)程序, 則每個(gè)用戶必須在各自的主存空間中存放一則每個(gè)用戶必須在各自的主存空間中存放一 個(gè)

20、程序副本。個(gè)程序副本。 采用動(dòng)態(tài)重定位方式的采用動(dòng)態(tài)重定位方式的主要優(yōu)點(diǎn)主要優(yōu)點(diǎn)有:有: (1)在程序開始執(zhí)行之前,)在程序開始執(zhí)行之前,不不一定要一定要把整把整 個(gè)程序個(gè)程序都都調(diào)入調(diào)入到主存中。一個(gè)程序可以被分到主存中。一個(gè)程序可以被分 配在多個(gè)配在多個(gè)不連續(xù)不連續(xù)的主存物理空間內(nèi),以提高的主存物理空間內(nèi),以提高 主存儲器的利用率。主存儲器的利用率。 (2)幾個(gè)程序)幾個(gè)程序可以共享可以共享存放在主存中的同存放在主存中的同 一個(gè)程序段。一個(gè)程序段。 (3)支持)支持虛擬虛擬存儲器。存儲器。 動(dòng)態(tài)重定位方式的動(dòng)態(tài)重定位方式的主要缺點(diǎn)主要缺點(diǎn)有:有: (1)需要有)需要有硬件支持硬件支持。 (

21、2)實(shí)現(xiàn)存儲管理的軟件算法)實(shí)現(xiàn)存儲管理的軟件算法比較復(fù)雜比較復(fù)雜。 二、二、 內(nèi)存分配與回收內(nèi)存分配與回收 1.存儲分配存儲分配 2.存儲釋放存儲釋放 3.分配原則分配原則 在設(shè)計(jì)分配程序時(shí)需要考慮諸多因素: (1)內(nèi)存空間的劃分 (2)數(shù)據(jù)結(jié)構(gòu)的確定 (3)作業(yè)空間的劃分 (4)淘汰算法 (5)分配算法 存儲分配實(shí)際上是將作存儲分配實(shí)際上是將作 業(yè)的邏輯地址空間映射成業(yè)的邏輯地址空間映射成 為內(nèi)存中的物理地址空間。為內(nèi)存中的物理地址空間。 內(nèi)存中有許多尚未使用內(nèi)存中有許多尚未使用 的區(qū)域即自由區(qū)都可以被的區(qū)域即自由區(qū)都可以被 分配,但到底選擇哪一自分配,但到底選擇哪一自 由區(qū)必須依據(jù)分配算

22、法來由區(qū)必須依據(jù)分配算法來 確定。確定。 存儲釋放實(shí)際上是解除存儲釋放實(shí)際上是解除 邏輯地址空間與物理地址邏輯地址空間與物理地址 空間的聯(lián)系,并釋放物理空間的聯(lián)系,并釋放物理 空間??臻g。 存儲釋放程序?qū)⒒厥盏拇鎯︶尫懦绦驅(qū)⒒厥盏?內(nèi)存區(qū)域重新設(shè)定為自由內(nèi)存區(qū)域重新設(shè)定為自由 區(qū),并將其安排進(jìn)入自由區(qū),并將其安排進(jìn)入自由 區(qū)隊(duì)列。進(jìn)入自由區(qū)隊(duì)列區(qū)隊(duì)列。進(jìn)入自由區(qū)隊(duì)列 的具體位置也必須依據(jù)分的具體位置也必須依據(jù)分 配算法。配算法。 三、三、 存儲保護(hù)與共享存儲保護(hù)與共享 存儲保護(hù)就是要保護(hù)進(jìn)程的數(shù)據(jù)不被非法訪存儲保護(hù)就是要保護(hù)進(jìn)程的數(shù)據(jù)不被非法訪 問者破壞。問者破壞。 (1)界地址寄存器保護(hù)法)

23、界地址寄存器保護(hù)法 (2)訪問授權(quán)保護(hù))訪問授權(quán)保護(hù) (1)界地址寄存器保護(hù)法)界地址寄存器保護(hù)法 采用硬件:采用硬件: 基地址寄存器基地址寄存器BR 長度寄存器長度寄存器LR 采用軟件:采用軟件: 地址寄存器指令中邏輯地址 出錯(cuò) (地址寄存器) (基址寄存器)? 否 是 (地址寄存器) (基址寄存器)+ (長度寄存器)? 運(yùn)行指令 當(dāng)進(jìn)程之間需要共享當(dāng)進(jìn)程之間需要共享 某些數(shù)據(jù)時(shí),使用界地址某些數(shù)據(jù)時(shí),使用界地址 寄存器就表現(xiàn)得無能為力。寄存器就表現(xiàn)得無能為力。 (2)訪問授權(quán)保護(hù))訪問授權(quán)保護(hù) 分區(qū)號 訪問權(quán) 1 2 2 0 3 1 1 0 P1 P2 進(jìn)程訪問權(quán) 當(dāng)進(jìn)程訪問某個(gè)區(qū)域時(shí),若

24、進(jìn)程的當(dāng)進(jìn)程訪問某個(gè)區(qū)域時(shí),若進(jìn)程的訪問權(quán)限大于等訪問權(quán)限大于等 于被訪問區(qū)域的權(quán)限值于被訪問區(qū)域的權(quán)限值,訪問可以進(jìn)行,否則視為,訪問可以進(jìn)行,否則視為 非法。非法。 系統(tǒng)為每一個(gè)系統(tǒng)為每一個(gè)存儲區(qū)域存儲區(qū)域都給都給 定一個(gè)定一個(gè)訪問權(quán)限值。訪問權(quán)限值。 同時(shí)也為每一個(gè)同時(shí)也為每一個(gè)進(jìn)程進(jìn)程賦予一賦予一 個(gè)個(gè)訪問權(quán)限值訪問權(quán)限值。 一個(gè)進(jìn)程可以對不同存儲區(qū)域有一個(gè)進(jìn)程可以對不同存儲區(qū)域有 不同的訪問權(quán)限;不同的訪問權(quán)限; 一個(gè)存儲區(qū)域也可以被多個(gè)具有一個(gè)存儲區(qū)域也可以被多個(gè)具有 不同訪問權(quán)限的進(jìn)程按權(quán)限級別進(jìn)不同訪問權(quán)限的進(jìn)程按權(quán)限級別進(jìn) 行訪問。行訪問。 訪問授權(quán)保護(hù)還有一個(gè)好處是它訪問授

25、權(quán)保護(hù)還有一個(gè)好處是它 允許存儲區(qū)域的共享。允許存儲區(qū)域的共享。 四、四、 虛擬存儲器虛擬存儲器 (1)實(shí)際內(nèi)存空間實(shí)際內(nèi)存空間 (2)輔助存儲器上的內(nèi)存交換區(qū)輔助存儲器上的內(nèi)存交換區(qū) (3)虛擬地址虛擬地址 (4)換進(jìn)、換出機(jī)制換進(jìn)、換出機(jī)制 虛擬存儲器是將內(nèi)存進(jìn)行虛擬,使用戶能使用虛擬存儲器是將內(nèi)存進(jìn)行虛擬,使用戶能使用 比實(shí)際內(nèi)存大得多的虛擬空間。比實(shí)際內(nèi)存大得多的虛擬空間。 要實(shí)現(xiàn)虛擬內(nèi)存必須具備如下條件:要實(shí)現(xiàn)虛擬內(nèi)存必須具備如下條件: 目前的操作系統(tǒng)幾乎目前的操作系統(tǒng)幾乎全部全部具具 備虛擬存儲器功能,雖然不同的備虛擬存儲器功能,雖然不同的 系統(tǒng)其實(shí)現(xiàn)虛擬存儲器的系統(tǒng)其實(shí)現(xiàn)虛擬存儲

26、器的基本條基本條 件都相似件都相似,但在數(shù)據(jù)的換進(jìn)、換,但在數(shù)據(jù)的換進(jìn)、換 出出策略上是可以不同策略上是可以不同的。的。 存儲區(qū)整理存儲區(qū)整理 當(dāng)系統(tǒng)運(yùn)行一段時(shí)間后,可能出現(xiàn)如下當(dāng)系統(tǒng)運(yùn)行一段時(shí)間后,可能出現(xiàn)如下問題問題: 產(chǎn)生許多產(chǎn)生許多碎片碎片; 進(jìn)程過分進(jìn)程過分分散存儲分散存儲; 換進(jìn)、換出的次數(shù)過多,導(dǎo)致系換進(jìn)、換出的次數(shù)過多,導(dǎo)致系 統(tǒng)統(tǒng)運(yùn)行緩慢運(yùn)行緩慢; 不斷不斷“內(nèi)存空間不夠內(nèi)存空間不夠”。 存儲區(qū)存儲區(qū)需要整理需要整理。 存儲器的存儲器的整理方法整理方法: (1)定期將內(nèi)存中的)定期將內(nèi)存中的碎片合并;碎片合并; (2)將某些)將某些進(jìn)程進(jìn)程的分散存儲區(qū)域的分散存儲區(qū)域移動(dòng)移動(dòng)

27、到一起。到一起。 經(jīng)過經(jīng)過整理后整理后 系統(tǒng)中有更大的自由分區(qū),系統(tǒng)中有更大的自由分區(qū),提高提高存儲管理的存儲管理的效效 率率; 在整理時(shí)中斷所有進(jìn)程,并且需要在整理時(shí)中斷所有進(jìn)程,并且需要消耗較多的消耗較多的 CPU時(shí)間時(shí)間。 4.2 分區(qū)管理分區(qū)管理 單一分區(qū)分配方式單一分區(qū)分配方式 多重固定分區(qū)分配方式多重固定分區(qū)分配方式 多重動(dòng)態(tài)分區(qū)分配方式多重動(dòng)態(tài)分區(qū)分配方式 伙伴系統(tǒng)伙伴系統(tǒng) 一、單一連續(xù)分配方式一、單一連續(xù)分配方式 1.原理原理 連續(xù)的用戶邏連續(xù)的用戶邏 輯地址空間,輯地址空間, 經(jīng)過裝入程序經(jīng)過裝入程序 直接裝入分區(qū)直接裝入分區(qū) 的低地址部分的低地址部分 的單一的連續(xù)的單一的連

28、續(xù) 的區(qū)域。的區(qū)域。 OS 作業(yè)空間 內(nèi)存 用 戶 區(qū) 2.分配與釋放分配與釋放 入口(作業(yè)邏輯空間) 出錯(cuò): 內(nèi)存不夠 邏輯空間用戶區(qū)? 否 是 裝入作業(yè) 3.地址映射地址映射 采用采用靜態(tài)重定位靜態(tài)重定位的方式在作業(yè)裝入時(shí)的方式在作業(yè)裝入時(shí) 一次性對所有指令將要訪問的地址進(jìn)行一次性對所有指令將要訪問的地址進(jìn)行 修改。修改。 由于作業(yè)的物理地址空間由于作業(yè)的物理地址空間不不會發(fā)生會發(fā)生變變 化化,因此,單一連續(xù)分區(qū),因此,單一連續(xù)分區(qū)不適合不適合使用使用動(dòng)動(dòng) 態(tài)重定位態(tài)重定位。 4.存儲保護(hù)存儲保護(hù) 使用界地址寄存器保護(hù)法界地址寄存器保護(hù)法。其中,基 址寄存器的內(nèi)容是操作系統(tǒng)常駐內(nèi)存部 分以

29、后的首地址,長度寄存器的內(nèi)容便 是用戶可用區(qū)域的長度。 由于操作系統(tǒng)不會發(fā)生變化,甚至可甚至可 以不使用界地址寄存器以不使用界地址寄存器,而將基址和長 度用兩個(gè)常量來代替 。 5.單一連續(xù)分區(qū)的優(yōu)缺點(diǎn)單一連續(xù)分區(qū)的優(yōu)缺點(diǎn) (1)管理簡單。管理簡單。 (2)使用安全。)使用安全。 (3)不需要任何附加的硬件設(shè)備。)不需要任何附加的硬件設(shè)備。 (1)作業(yè)的大小受用戶區(qū)大小的限制。作業(yè)的大小受用戶區(qū)大小的限制。 (2)不支持多用戶。)不支持多用戶。 (3)容易造成系統(tǒng)資源的浪費(fèi)。)容易造成系統(tǒng)資源的浪費(fèi)。 二、多重固定二、多重固定分區(qū)分配方式分區(qū)分配方式 區(qū)號 大小 起始地址 狀態(tài) 0 20K 40

30、K 未分配 1 40K 60K 已分配 2 80K 100K 已分配 3 160K 180K 未分配 4 320K 340K 已分配 : : : : 作業(yè)號 大小 區(qū)號 0 55K 2 1 10K 0 2 150K 4 : : : 作業(yè)表 內(nèi)存分區(qū)表 OS 作業(yè) 1 作業(yè) 0 : : 作業(yè) 2 : : : 0 區(qū) 1 區(qū) 2 區(qū) 5 區(qū) 4 區(qū) 內(nèi)存 將內(nèi)存空間由小到大將內(nèi)存空間由小到大 劃分為若干個(gè)劃分為若干個(gè)位置固定大位置固定大 小不等小不等的區(qū)域,每個(gè)區(qū)域的區(qū)域,每個(gè)區(qū)域 可以存放一個(gè)作業(yè),存放可以存放一個(gè)作業(yè),存放 于不同區(qū)域的于不同區(qū)域的作業(yè)可以并作業(yè)可以并 行行。 用戶邏輯地址空間

31、依用戶邏輯地址空間依 然是一個(gè)連續(xù)的整體,在然是一個(gè)連續(xù)的整體,在 作業(yè)申請進(jìn)入內(nèi)存時(shí)作業(yè)申請進(jìn)入內(nèi)存時(shí)一次一次 性裝入性裝入。 描述內(nèi)存中每一個(gè)區(qū)描述內(nèi)存中每一個(gè)區(qū) 域的情況域的情況 描述存放于區(qū)域中的描述存放于區(qū)域中的 作業(yè)作業(yè) 地址映射地址映射 由于作業(yè)被分配進(jìn)入內(nèi)存后位置不再發(fā)生變化,因此,由于作業(yè)被分配進(jìn)入內(nèi)存后位置不再發(fā)生變化,因此, 地址映射可以采用地址映射可以采用靜態(tài)重定位靜態(tài)重定位方法。不過我們要注意到方法。不過我們要注意到 每一個(gè)作業(yè)的物理地址空間的起始位置是不相同的,因每一個(gè)作業(yè)的物理地址空間的起始位置是不相同的,因 此,對每一個(gè)作業(yè)進(jìn)行重定位時(shí)要修正基址寄存器的值。此,

32、對每一個(gè)作業(yè)進(jìn)行重定位時(shí)要修正基址寄存器的值。 存儲保護(hù)存儲保護(hù) 存儲保護(hù)可以采取存儲保護(hù)可以采取界地址寄存器界地址寄存器的方法和的方法和訪問授權(quán)訪問授權(quán) 保護(hù)保護(hù),由于作業(yè)在內(nèi)存中的位置保持不變,可以用兩個(gè),由于作業(yè)在內(nèi)存中的位置保持不變,可以用兩個(gè) 常量替代界地址寄存常量替代界地址寄存。 優(yōu)缺點(diǎn):優(yōu)缺點(diǎn): (1)提高了)提高了CPU的的利用率利用率。 (2)作業(yè)大小受到最大分)作業(yè)大小受到最大分 區(qū)大小的區(qū)大小的限制限制。 (3)空間)空間浪費(fèi)浪費(fèi)。 (4)碎片碎片問題。問題。 三、三、 可變分區(qū)分配方式可變分區(qū)分配方式 自由分區(qū)表 起始地址 大小 作業(yè)號 40K 55K 0 95K 10

33、K 1 210K 150K 2 : : : 已使用分區(qū)表 OS 作業(yè) 0 40K 作業(yè) 0 作業(yè) 2 80 內(nèi)存 60K 40K 95K 105K 210K 150K 360K 起始地址 大小 105K 40K 150K 60K 360K 80K : : 40K 80 60K 自由分區(qū)鏈 根據(jù)作業(yè)對內(nèi)存空間根據(jù)作業(yè)對內(nèi)存空間 的申請來劃分主存區(qū)的申請來劃分主存區(qū) 域,區(qū)域的域,區(qū)域的大小可變大小可變 、位置可變位置可變、數(shù)量也數(shù)量也 可變可變 描述已被分配的區(qū)域描述已被分配的區(qū)域 描述內(nèi)存中的自由區(qū)域描述內(nèi)存中的自由區(qū)域 為每一個(gè)為每一個(gè)自由分區(qū)自由分區(qū)設(shè)置一設(shè)置一 個(gè)個(gè)鏈接鏈接指針來指向下一

34、個(gè)指針來指向下一個(gè) 自由分區(qū),使所有的自由自由分區(qū),使所有的自由 分區(qū)形成一個(gè)鏈表分區(qū)形成一個(gè)鏈表 多重分區(qū)分配與釋放多重分區(qū)分配與釋放 20K 80K 60K 40K 120K 20K 25K 60K 40K 120K 20K 80K 60K 40K 120K 20K 80K 5K 40K 120K 20K 80K 60K 40K 120K 20K 80K 60K 40K 65K 55K 作業(yè)空間 (a)最先適應(yīng)算法 (b)最佳適應(yīng)算法 (c)最壞適應(yīng)算法 將作業(yè)分配到內(nèi)存中將作業(yè)分配到內(nèi)存中第一第一 個(gè)碰到個(gè)碰到的大于或等于作業(yè)的大于或等于作業(yè) 申請空間的未分配區(qū)。申請空間的未分配區(qū)。 將

35、作業(yè)申請大小與內(nèi)存中將作業(yè)申請大小與內(nèi)存中 所有未分配區(qū)的大小進(jìn)行所有未分配區(qū)的大小進(jìn)行 比較,直到找到比較,直到找到最小的最小的大大 于或等于作業(yè)空間的區(qū)分于或等于作業(yè)空間的區(qū)分 配給作業(yè)。配給作業(yè)。 將作業(yè)申請大小與內(nèi)存中將作業(yè)申請大小與內(nèi)存中 所有未分配區(qū)的大小進(jìn)行所有未分配區(qū)的大小進(jìn)行 比較,直到找到比較,直到找到最大的最大的大大 于或等于作業(yè)空間的區(qū)分于或等于作業(yè)空間的區(qū)分 配給作業(yè)。配給作業(yè)。 算法簡單但分配比較盲目算法簡單但分配比較盲目 ,可能造成較小的作業(yè)分,可能造成較小的作業(yè)分 割了較大的空間,使大作割了較大的空間,使大作 業(yè)無法被分配。業(yè)無法被分配。 優(yōu)先使用小的自由空間,

36、優(yōu)先使用小的自由空間, 但每次分配以后的剩余空但每次分配以后的剩余空 間可能變得過小而成為碎間可能變得過小而成為碎 片。片。 使用大的自由空間,在進(jìn)使用大的自由空間,在進(jìn) 行分割后剩余空間還可以行分割后剩余空間還可以 被使用,但也使大的自由被使用,但也使大的自由 空間無法保留給需要大空空間無法保留給需要大空 間的作業(yè)。間的作業(yè)。 另外可以有:另外可以有: 最佳適應(yīng)算法也是最先適應(yīng)最佳適應(yīng)算法也是最先適應(yīng) 算法算法 最壞適應(yīng)算法也是最先適應(yīng)最壞適應(yīng)算法也是最先適應(yīng) 算法算法 如何實(shí)現(xiàn)?如何實(shí)現(xiàn)? 幾種方法比較幾種方法比較 4.4.地址映射地址映射 動(dòng)態(tài)分區(qū)采用動(dòng)態(tài)分區(qū)采用動(dòng)態(tài)重定位動(dòng)態(tài)重定位方式

37、來實(shí)現(xiàn)地址映射,方式來實(shí)現(xiàn)地址映射, 這樣作業(yè)的基地址發(fā)生變化也不會影響執(zhí)行。這樣作業(yè)的基地址發(fā)生變化也不會影響執(zhí)行。 當(dāng)作業(yè)被選擇當(dāng)作業(yè)被選擇運(yùn)行時(shí)運(yùn)行時(shí),其物理空間,其物理空間起始地址起始地址被裝入被裝入 基地址寄存器中,基地址寄存器中,CPUCPU每執(zhí)行一條指令之前每執(zhí)行一條指令之前重定位硬件重定位硬件 對指令要訪問的地址進(jìn)行修改。對指令要訪問的地址進(jìn)行修改。 5.5.存儲保護(hù)存儲保護(hù) 存儲保護(hù)可以采用存儲保護(hù)可以采用界地址寄存器界地址寄存器的方法和訪問授權(quán)保的方法和訪問授權(quán)保 護(hù),不過由于作業(yè)被分配于內(nèi)存一個(gè)連續(xù)的區(qū)域中,護(hù),不過由于作業(yè)被分配于內(nèi)存一個(gè)連續(xù)的區(qū)域中,訪訪 問授權(quán)保護(hù)問

38、授權(quán)保護(hù)的的作用作用似乎似乎并不大并不大,因?yàn)樽鳂I(yè)并沒有對其他,因?yàn)樽鳂I(yè)并沒有對其他 作業(yè)空間的訪問權(quán)力。作業(yè)空間的訪問權(quán)力。 6.6.存儲區(qū)整理存儲區(qū)整理 經(jīng)過不斷地分配和釋放后,內(nèi)存中自由分區(qū)會變得經(jīng)過不斷地分配和釋放后,內(nèi)存中自由分區(qū)會變得 越來越多和越來越小,這就使很多小自由分區(qū)成為越來越多和越來越小,這就使很多小自由分區(qū)成為 碎片碎片。 可以用可以用緊縮緊縮的方法來解決碎片。的方法來解決碎片。緊縮是緊縮是將內(nèi)存中已將內(nèi)存中已 使用區(qū)域經(jīng)過移動(dòng)沉淀到低地址部分,從而使碎片使用區(qū)域經(jīng)過移動(dòng)沉淀到低地址部分,從而使碎片 浮動(dòng)浮動(dòng)到內(nèi)存的高地址部分合并成較大的可使用空間。到內(nèi)存的高地址部分合

39、并成較大的可使用空間。 用緊縮方法來消除碎片需要占用大量的用緊縮方法來消除碎片需要占用大量的CPUCPU時(shí)間,并時(shí)間,并 且在移動(dòng)過程中稍有且在移動(dòng)過程中稍有不慎不慎就有可能就有可能破壞破壞全部數(shù)據(jù)。全部數(shù)據(jù)。 7.7.多重動(dòng)態(tài)分區(qū)的優(yōu)缺點(diǎn)多重動(dòng)態(tài)分區(qū)的優(yōu)缺點(diǎn) (1 1)多道程度得以提高。)多道程度得以提高。 (2 2)提高了內(nèi)存的利用率。)提高了內(nèi)存的利用率。 (3 3)作業(yè)大小依然受內(nèi)存容量的限制。)作業(yè)大小依然受內(nèi)存容量的限制。 (4 4)對碎片問題的解決需要以增加系統(tǒng)開銷為代價(jià)。)對碎片問題的解決需要以增加系統(tǒng)開銷為代價(jià)。 (5 5)不便共享。)不便共享。 舉例:舉例: 作業(yè)作業(yè)A要求

40、要求18KB;作業(yè);作業(yè)B要求要求25KB;作業(yè);作業(yè)C要求要求30KB。 用首次適應(yīng)算法、最佳適應(yīng)算法來處理該作業(yè)序列,看哪種用首次適應(yīng)算法、最佳適應(yīng)算法來處理該作業(yè)序列,看哪種 算法合適。算法合適。 os 在使用在使用 在使用在使用 在使用在使用 30KB 5KB 46KB 0KB 20KB 100KB 20KB 160KB 210KB 256KB- -1 (1) 首次適應(yīng)算法中的自由主存隊(duì)列首次適應(yīng)算法中的自由主存隊(duì)列 (a) 首次適應(yīng)算法中的自由主存隊(duì)首次適應(yīng)算法中的自由主存隊(duì) 列列 20KB 0 30KB 100KB 0 20KB 160KB 0 5KB 210KB 0 46KB o

41、s 在使用在使用 在使用在使用 在使用在使用 30KB 5KB 46KB 0KB 20KB 100KB 20KB 160KB 210KB 256KB- -1 (2) 最佳適應(yīng)算法中的自由主存隊(duì)列最佳適應(yīng)算法中的自由主存隊(duì)列 (b) 最佳適應(yīng)算法中的自由主存隊(duì)列最佳適應(yīng)算法中的自由主存隊(duì)列 160KB 0 5KB 100KB 0 20KB 20KB 0 30KB 210KB 0 46KB os 在使用在使用 在使用在使用 在使用在使用 30KB 5KB 46KB 0KB 20KB 100KB 20KB 160KB 210KB 256KB- -1 (a) 首次適應(yīng)算法中的自由主存隊(duì)首次適應(yīng)算法中的

42、自由主存隊(duì) 列列 20KB 0 30KB 100KB 0 20KB 160KB 0 5KB 210KB 0 46KB (b) 最佳適應(yīng)算法中的自由主存隊(duì)最佳適應(yīng)算法中的自由主存隊(duì) 列列 160KB 0 5KB 100KB 0 20KB 20KB 0 30KB 210KB 0 46KB 作業(yè)作業(yè)A要求要求18KB 作業(yè)作業(yè)B要求要求25KB 作業(yè)作業(yè)C要求要求30KB 4.3 4.3 分頁存儲管理方式分頁存儲管理方式 頁式系統(tǒng)應(yīng)解決的問題頁式系統(tǒng)應(yīng)解決的問題 分區(qū)存儲管理的主要問題是碎片問題。分區(qū)存儲管理的主要問題是碎片問題。 在采用分區(qū)存儲管理的系統(tǒng)中,會形成在采用分區(qū)存儲管理的系統(tǒng)中,會形成

43、 一些非常小的分區(qū),最終這些非常小的分區(qū)一些非常小的分區(qū),最終這些非常小的分區(qū) 不能被系統(tǒng)中的任何用戶(程序)利用而浪不能被系統(tǒng)中的任何用戶(程序)利用而浪 費(fèi)。費(fèi)。 造成這樣問題的主要原因是用戶程序裝造成這樣問題的主要原因是用戶程序裝 入內(nèi)存時(shí)是整體裝入的,為解決這個(gè)問題,入內(nèi)存時(shí)是整體裝入的,為解決這個(gè)問題, 提出了分頁存儲管理技術(shù)。提出了分頁存儲管理技術(shù)。 頁式存儲管理要解決如下問題頁式存儲管理要解決如下問題 頁式存儲管理系統(tǒng)的地址映射;頁式存儲管理系統(tǒng)的地址映射; 調(diào)入策略;調(diào)入策略; 淘汰策略;淘汰策略; 放置策略放置策略 一、一、 頁式系統(tǒng)的基頁式系統(tǒng)的基 本概念本概念 (1 1)

44、 頁面頁面 程序的地址空間被等程序的地址空間被等 分成大小相等的片,稱為分成大小相等的片,稱為 頁面,又稱為虛頁。頁面,又稱為虛頁。 (2 2) 主存塊主存塊 主存被等分成大小相主存被等分成大小相 等的片,稱為主存塊,又等的片,稱為主存塊,又 稱為實(shí)頁。稱為實(shí)頁。 (3 3) 頁表頁表 為了實(shí)現(xiàn)從地址空間到物理主存的映象,為了實(shí)現(xiàn)從地址空間到物理主存的映象, 系統(tǒng)建立的記錄頁與內(nèi)存塊之間對應(yīng)關(guān)系的系統(tǒng)建立的記錄頁與內(nèi)存塊之間對應(yīng)關(guān)系的 地址變換的機(jī)構(gòu)稱為頁面映像表,簡稱頁表。地址變換的機(jī)構(gòu)稱為頁面映像表,簡稱頁表。 0 1KB 0 1KB 2KB 3KB 1 主存主存 作業(yè)作業(yè)2地址空間地址空

45、間 2KB 3KB 4KB 5KB 6KB 7KB 8KB 9KB 10KB 1 0 1KB 2KB 1 作業(yè)作業(yè)1地址空間地址空間 0 1KB 1 作業(yè)作業(yè)3地址空間地址空間 05 16 頁號頁號塊號塊號 02 14 08 27 作業(yè)作業(yè)1頁表頁表 作業(yè)作業(yè)2頁表頁表 作業(yè)作業(yè)3頁表頁表 os os 分頁映像存儲的例分頁映像存儲的例 (4 4)虛地址結(jié)構(gòu))虛地址結(jié)構(gòu)( (程序字程序字) ) 虛地址是用戶程序中的邏輯地址,它包括頁號和虛地址是用戶程序中的邏輯地址,它包括頁號和 頁內(nèi)地址(頁內(nèi)位移)。頁內(nèi)地址(頁內(nèi)位移)。 區(qū)分頁號和頁內(nèi)地址的依椐是頁的大小,頁內(nèi)地區(qū)分頁號和頁內(nèi)地址的依椐是頁的

46、大小,頁內(nèi)地 址占虛地址的低位部分,頁號占虛地址的高位部分。址占虛地址的低位部分,頁號占虛地址的高位部分。 假定頁面大小假定頁面大小1024字節(jié),虛地址共占用字節(jié),虛地址共占用2個(gè)字節(jié)個(gè)字節(jié) (16位位) 頁號頁號 頁內(nèi)地址(位移量)頁內(nèi)地址(位移量) P W 15 10 9 0 (5) 頁式地址變換頁式地址變換 l 頁式地址變換舉例頁式地址變換舉例 作業(yè)作業(yè)2 2地址空間中,設(shè)地址空間中,設(shè)100100號單元處有如下指令:號單元處有如下指令: mov mov r1,2500r1,2500。當(dāng)這條指令執(zhí)行時(shí),如何進(jìn)行正確的地址變換。當(dāng)這條指令執(zhí)行時(shí),如何進(jìn)行正確的地址變換。 mov r1 ,

47、2500 123 0 1KB 1KB 3KB 1 作業(yè)作業(yè)2地址空間地址空間 2500 2 2* *1024 + 452 1024 + 452 p=2 w=452 p=2 w=452 0000100111000100 000010 0111000100 l 頁式地址變換過程頁式地址變換過程 000111 0111000100 15 10 9 0 頁號頁號P頁內(nèi)位移頁內(nèi)位移W 頁表始址寄存器頁表始址寄存器 mov r1 , 2500 123 0 1KB 2KB 3KB 1 作業(yè)作業(yè)2地址空間地址空間 + 02 14 27 頁表頁表 000010 0111000100 15 10 9 0 頁號頁號

48、P頁內(nèi)位移頁內(nèi)位移W 2500 0 1KB 主存主存 2KB 3KB 4KB 5KB 6KB 7KB 8KB 9KB 10KB 1 os os mov r1 , 2500 123 第第1頁頁 7*1024+452 =7620 l 頁式地址變換的步驟頁式地址變換的步驟 CPU給出操作數(shù)地址給出操作數(shù)地址(為為2500) ; 由分頁機(jī)構(gòu)自動(dòng)地把邏輯地址分為兩部分,由分頁機(jī)構(gòu)自動(dòng)地把邏輯地址分為兩部分, 得到頁號得到頁號p和頁內(nèi)相對位移和頁內(nèi)相對位移w (p =2, w =452); 根據(jù)頁表始址寄存器指示的頁表始地址,以根據(jù)頁表始址寄存器指示的頁表始地址,以 頁號為索引,找到第頁號為索引,找到第2

49、頁所對應(yīng)的塊號頁所對應(yīng)的塊號(為為7) ; 最后,將塊號最后,將塊號b和頁內(nèi)位移量和頁內(nèi)位移量w拼接在一起,拼接在一起, 就形成了訪問主存的物理地址就形成了訪問主存的物理地址 (7*1024+452=7620)。 二、靜態(tài)分頁管理二、靜態(tài)分頁管理 1、分配與回收、分配與回收 l在靜態(tài)分頁管理時(shí),作業(yè)的一頁可分配在靜態(tài)分頁管理時(shí),作業(yè)的一頁可分配 到存儲空間的任何一個(gè)可用的物理塊中到存儲空間的任何一個(gè)可用的物理塊中 作業(yè)完成后,系統(tǒng)回收分配給該作業(yè)的作業(yè)完成后,系統(tǒng)回收分配給該作業(yè)的 內(nèi)存塊內(nèi)存塊 l作業(yè)完成后,系統(tǒng)回收分配給該作業(yè)的作業(yè)完成后,系統(tǒng)回收分配給該作業(yè)的 內(nèi)存塊內(nèi)存塊 2、優(yōu)缺點(diǎn)、

50、優(yōu)缺點(diǎn) (1)管理)管理簡單簡單 (2)每訪問一次內(nèi)存數(shù)據(jù)需要經(jīng)過)每訪問一次內(nèi)存數(shù)據(jù)需要經(jīng)過二次尋址二次尋址。 (3)解決了)解決了碎片問題碎片問題。無無須內(nèi)存碎片整理。須內(nèi)存碎片整理。 (4)無無法實(shí)現(xiàn)法實(shí)現(xiàn)共享共享。 (5)作業(yè)大小受內(nèi)存可用頁面數(shù)的)作業(yè)大小受內(nèi)存可用頁面數(shù)的限制限制。 如果想在內(nèi)存中運(yùn)行較大的作業(yè),則如果想在內(nèi)存中運(yùn)行較大的作業(yè),則 必須必須利用內(nèi)存以外的存儲空間利用內(nèi)存以外的存儲空間。 例:有一系統(tǒng)采用頁式存儲管理,有一作業(yè)大小例:有一系統(tǒng)采用頁式存儲管理,有一作業(yè)大小 是是8KB8KB,頁大小為,頁大小為2KB2KB,依次裝入內(nèi)存的第,依次裝入內(nèi)存的第7 7、9

51、9、1010、5 5 塊,試將虛地址塊,試將虛地址71457145,34123412轉(zhuǎn)換成內(nèi)存地址。轉(zhuǎn)換成內(nèi)存地址。 虛地址虛地址 34123412 P P3412 3412 2048 2048 1 1 W W 3412 mod 20483412 mod 2048 13641364 MR=9MR=9* *2048+1364=197962048+1364=19796 虛地址虛地址34123412的內(nèi)存地址的內(nèi)存地址 是:是:1979619796 三、三、 請求分頁管理請求分頁管理 1.原理原理 內(nèi)存 0 1 2 3 4 5 6 7 : 作業(yè)空間 0 1 2 3 頁表寄存器 頁表 0 0 1 1

52、2 1 3 1 缺頁狀態(tài) 外存地址 內(nèi)存塊號 外存 與靜態(tài)分頁管理與靜態(tài)分頁管理不同不同 : 按需分配。將按需分配。將需要需要運(yùn)行運(yùn)行 的頁面的頁面存放于內(nèi)存存放于內(nèi)存,暫時(shí),暫時(shí)不不 需要需要運(yùn)行的頁面存放于輔存,運(yùn)行的頁面存放于輔存, 當(dāng)需要運(yùn)行當(dāng)需要運(yùn)行存放于輔存存放于輔存上的上的 頁面時(shí),再將對應(yīng)的頁面調(diào)頁面時(shí),再將對應(yīng)的頁面調(diào) 入內(nèi)存。入內(nèi)存。 注意頁表變化注意頁表變化 2.分配與分配與 淘汰算法淘汰算法 動(dòng)態(tài)分動(dòng)態(tài)分 配配 啟動(dòng)待執(zhí)行指令 地址映射 缺頁狀態(tài)=0? 是 否 頁面裝入 淘汰一個(gè)頁面 獲取相對地址 P、d 執(zhí)行指令 指令地址+1 有空閑塊? 否 該頁修改過? 是 寫回外

53、存 否 頁面裝入 缺頁中斷處理 分配與淘汰算法分配與淘汰算法淘汰算法淘汰算法 衡量淘汰算法依據(jù):衡量淘汰算法依據(jù): 所有頁面訪問次數(shù) 淘汰頁面數(shù) 淘汰率 所有頁面訪問次數(shù) 缺頁次數(shù) 缺頁率 好的淘汰算法應(yīng)該有好的淘汰算法應(yīng)該有較低的缺頁率和淘汰率。較低的缺頁率和淘汰率。 0 2 4 3 1 0 5 2 7 8 1 6 4 0 5 8 4 2 7 6 4 3 1 * * * * * * * 0 3 5 8 4 2 1 2 1 4 0 7 6 * * * * * * * * * * 頁面訪問次序 最佳淘汰算法 缺頁中斷 最先淘汰算法 缺頁中斷 內(nèi)存 塊號 0 1 2 0 1 2 t 選擇在最遠(yuǎn)的將

54、來才被訪問的頁面淘汰。選擇在最遠(yuǎn)的將來才被訪問的頁面淘汰。 誰是最遠(yuǎn)的、將來才被訪問的頁面?選擇最早進(jìn)入內(nèi)存的頁面淘汰 這種方法包含一個(gè)假定:這種方法包含一個(gè)假定: 最早進(jìn)入內(nèi)存的頁面就是目前最不會被使最早進(jìn)入內(nèi)存的頁面就是目前最不會被使 用的頁面。用的頁面。 假定不成立?假定不成立?系統(tǒng)抖動(dòng)!系統(tǒng)抖動(dòng)! 1 2 1 5 4 1 3 4 2 4 0 2 2 4 5 3 * * * 頁面訪問次序 最近最少使用算 法淘汰算法 缺頁中斷 CPU t 內(nèi)存 塊號 0 1 2 選擇最近一段時(shí)間內(nèi)最長時(shí)間未被使用選擇最近一段時(shí)間內(nèi)最長時(shí)間未被使用 的頁面淘汰的頁面淘汰 該算法的該算法的假定假定:長時(shí)間未使

55、用的頁面不會馬上被使用。:長時(shí)間未使用的頁面不會馬上被使用。 這正好符合內(nèi)存這正好符合內(nèi)存局部性原理局部性原理(內(nèi)存中某個(gè)位置現(xiàn)在被(內(nèi)存中某個(gè)位置現(xiàn)在被 訪問,很快將再次被訪問;某個(gè)位置現(xiàn)在被訪問,其訪問,很快將再次被訪問;某個(gè)位置現(xiàn)在被訪問,其 鄰近位置也將被訪問。)鄰近位置也將被訪問。) 問題:問題: 需要確定一個(gè)需要確定一個(gè)比較時(shí)間段比較時(shí)間段來反映哪一個(gè)頁面長期未被來反映哪一個(gè)頁面長期未被 使用,時(shí)間段使用,時(shí)間段過長過長時(shí)該算法將變?yōu)闀r(shí)該算法將變?yōu)橄冗M(jìn)先出先進(jìn)先出算法,時(shí)算法,時(shí) 間段間段過短過短又會使系統(tǒng)頻繁地記錄訪問次數(shù)并進(jìn)行比較,又會使系統(tǒng)頻繁地記錄訪問次數(shù)并進(jìn)行比較, 從而

56、增加系統(tǒng)從而增加系統(tǒng)開銷開銷。 (4)最近未使用算法()最近未使用算法(NRU) 塊號 頁號 訪問位 修改位 : i-1 p1 0 0 i p2 10 0 i+1 p3 0淘汰 1回寫 i+2 p4 1 1 : 頁面選擇指針 入口 訪問位=0 訪問位=0? 否 是 頁面淘汰 申請頁表 頁面選擇指針+1 返回 修改位=0? 是 否 頁面回寫外存 選擇頁面選擇指針遇到的選擇頁面選擇指針遇到的 最近未被訪問的頁面淘汰。最近未被訪問的頁面淘汰。 簡化的方法是:簡化的方法是: 頁面選擇指針下移,只要遇到剛才頁面選擇指針下移,只要遇到剛才 未使用的頁面就可以淘汰。未使用的頁面就可以淘汰。 例例: : 某作

57、業(yè)有某作業(yè)有a,b,c,da,b,c,d四個(gè)頁面四個(gè)頁面, ,作業(yè)在運(yùn)行過程中的訪作業(yè)在運(yùn)行過程中的訪 問次序?yàn)閱柎涡驗(yàn)?a,b,c,a,d,a,:a,b,c,a,d,a,試計(jì)算采用試計(jì)算采用FIFOFIFO和和LRULRU淘汰算法淘汰算法, , 各會產(chǎn)生幾次缺頁中斷各會產(chǎn)生幾次缺頁中斷?(?(注:系統(tǒng)為該作業(yè)分配個(gè)內(nèi)注:系統(tǒng)為該作業(yè)分配個(gè)內(nèi) 存塊存塊) ) 缺頁中斷 次數(shù) 淘汰的 頁面 進(jìn)入主存 的頁面 1-a 2-B 3-C 4ad 5ba 缺頁中斷 次數(shù) 淘汰的 頁面 進(jìn)入主存 的頁面 1-a 2-b 3-c 4bd LRU LRUFIFOFIFO 舉例舉例 FIFO算法的異?,F(xiàn)象算法的

58、異?,F(xiàn)象(Belady) 設(shè)進(jìn)程共有設(shè)進(jìn)程共有8頁頁,且已在內(nèi)存中分配有且已在內(nèi)存中分配有3個(gè)頁個(gè)頁 面面,程序訪問內(nèi)存的順序?yàn)槌绦蛟L問內(nèi)存的順序?yàn)?7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1. 求缺頁次數(shù)和缺頁率求缺頁次數(shù)和缺頁率, 當(dāng)分配當(dāng)分配4個(gè)頁面時(shí)個(gè)頁面時(shí),缺頁次數(shù)和缺頁率為多缺頁次數(shù)和缺頁率為多 少少? 又進(jìn)程又進(jìn)程P有有5頁頁,訪問串為訪問串為 1,2,3,4,1,2,5,1,2,3,4,5.P分得分得3 個(gè)頁面?zhèn)€頁面,情況如何情況如何? 當(dāng)分配當(dāng)分配4個(gè)頁面時(shí)個(gè)頁面時(shí),會出現(xiàn)什么會出現(xiàn)什么 情況情況? 虛擬存儲器虛擬存儲器 動(dòng)態(tài)分頁技術(shù)實(shí)現(xiàn)了虛擬存儲器。

59、動(dòng)態(tài)分頁技術(shù)實(shí)現(xiàn)了虛擬存儲器。 虛擬要素?虛擬要素? 3.3.加速尋址加速尋址 二次尋址?二次尋址? 一次尋址?一次尋址? 頁表長度 頁框長度 內(nèi)存 頁表寄存器 表目長度 地址寄存器 中的邏輯地址 d P d 頁表 P P 頁框長度 快 速 頁 表 舉例舉例 有一頁式系統(tǒng),頁表放在主存中有一頁式系統(tǒng),頁表放在主存中 如對主存的一次存取需如對主存的一次存取需1.5us,試問實(shí)現(xiàn)一次頁面,試問實(shí)現(xiàn)一次頁面 訪問的存取時(shí)間是多少?訪問的存取時(shí)間是多少? 如系統(tǒng)有快表,平均命中率為如系統(tǒng)有快表,平均命中率為85%,當(dāng)頁表在快,當(dāng)頁表在快 表中時(shí),查找時(shí)間忽略為表中時(shí),查找時(shí)間忽略為0。此時(shí)的存取時(shí)間為

60、多。此時(shí)的存取時(shí)間為多 少?少? 解:(解:(1)1.5*2=3us (2)0.85*1.5+(1-0.85) *2*1.5=1.725us。 4.4.分頁管理的優(yōu)缺點(diǎn)分頁管理的優(yōu)缺點(diǎn) (1 1)管理簡單。)管理簡單。 (2 2)支持虛擬存儲器。)支持虛擬存儲器。 (3 3)無法實(shí)現(xiàn)共享。)無法實(shí)現(xiàn)共享。 作業(yè)空間按邏輯意義分割!作業(yè)空間按邏輯意義分割! 4.4 段式管理段式管理 簡單分段管理簡單分段管理 請求分段管理請求分段管理 一、一、 基本概念基本概念 內(nèi)存 作業(yè)空間 s0 s1 s2 s3 段表寄存器 段表 0 0 1 1 2 0 3 1 缺段狀態(tài) 外存地址 內(nèi)存地址 外存 段長 作業(yè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論