《现代操作系统》第3章读书笔记--内存管理(未完成)
寫(xiě)在前面:本文僅供個(gè)人學(xué)習(xí)使用,如有侵權(quán),請(qǐng)聯(lián)系刪除。文章中所用圖片絕大多數(shù)來(lái)源于《現(xiàn)代操作系統(tǒng)(第4版)》,請(qǐng)讀者支持原版。
內(nèi)存(RAM) 是計(jì)算機(jī)中一種需要認(rèn)真管理的重要資源。一個(gè)事實(shí)是程序大小的正常速度比內(nèi)存容量的增長(zhǎng)速度要快得多。正如帕金森定律所指出的:“不管存儲(chǔ)器有多大,程序都可以把它填滿(mǎn)。”在這一章中,我們將討論操作系統(tǒng)是怎樣對(duì)存儲(chǔ)器創(chuàng)建抽象模型以及怎樣管理它們的。
每個(gè)程序員都?jí)粝霌碛羞@樣的存儲(chǔ)器:它是私有的、容量無(wú)限大的、速度無(wú)限快的,并且是永久性的(即斷電時(shí)不會(huì)丟失數(shù)據(jù))。當(dāng)我們期望這樣的存儲(chǔ)器時(shí),何不進(jìn)一步要求它價(jià)格低廉? 遺憾的是,目前的技術(shù)還不能為我們提供這樣的存儲(chǔ)器。
除此之外的選擇是什么呢? 經(jīng)過(guò)多年探索,人們提出了分層存儲(chǔ)器體系(memory hierarchy) 的概念,即在這個(gè)體系中,計(jì)算機(jī)有若干兆(MB)快速、昂貴且易失性的高速緩存(cache),數(shù)千兆(GB)速度與價(jià)格適中且同樣易失性的內(nèi)存,以及幾兆兆(TB)低速、廉價(jià)、非易失性的磁盤(pán)存儲(chǔ),另外還有諸如DVD和USB等可移動(dòng)存儲(chǔ)裝置。操作系統(tǒng)的工作是將這個(gè)存儲(chǔ)體系抽象為一個(gè)有用的模型并管理這個(gè)抽象模型。
操作系統(tǒng)中管理分層存儲(chǔ)器模型的部分稱(chēng)為存儲(chǔ)管理器(memory manager) 。它的任務(wù)是有效地管理內(nèi)存,即記錄哪些內(nèi)存是正在使用的,哪些內(nèi)存是空閑的;在進(jìn)程需要時(shí)為其分配內(nèi)存,在進(jìn)程使用完后釋放內(nèi)存。
文章目錄
- 3.1 無(wú)存儲(chǔ)器抽象
- 3.2 一種存儲(chǔ)器抽象:地址空間
- 3.2.1 地址空間的概念
- 3.2.2 交換技術(shù)
- 3.2.3 空閑內(nèi)存管理
- 3.3 虛擬內(nèi)存
- 3.3.1 分頁(yè)
- 3.3.2 頁(yè)表
- 3.3.3 加速分頁(yè)過(guò)程
- 3.3.4 針對(duì)大內(nèi)存的頁(yè)表
- 3.4 頁(yè)面置換算法
- 3.4.1 最優(yōu)頁(yè)面置換算法
- 3.4.2最近未使用(NRU)頁(yè)面置換算法
- 3.4.3先進(jìn)先出(FIFO)頁(yè)面置換算法
- 3.4.4 第二次機(jī)會(huì)頁(yè)面置換算法
- 3.4.5時(shí)鐘頁(yè)面置換算法
- 3.4.6最近最少使用(LRU)頁(yè)面置換算法
- 3.4.7 用軟件模擬LRU
- 3.4.8 工作集頁(yè)面置換算法
- 3.4.9 工作集時(shí)鐘頁(yè)面置換算法
- 3.4.10 頁(yè)面置換算法小結(jié)
- 3.5 分頁(yè)系統(tǒng)中的設(shè)計(jì)問(wèn)題
- 3.5.1 局部分配策略與全局分配策略
- 3.5.2負(fù)載控制
- 3.5.3 頁(yè)面大小
- 3.5.4 分離的指令空間和數(shù)據(jù)空間
- 3.5.5 共享頁(yè)面
- 3.5.6 共享庫(kù)
- 3.5.7 內(nèi)存映射文件
- 3.5.8 清除策略
- 3.5.9 虛擬內(nèi)存接口
- 3.6 有關(guān)實(shí)現(xiàn)的問(wèn)題
- 3.6.1 與分頁(yè)有關(guān)的工作
- 3.6.2 缺頁(yè)中斷處理
- 3.6.3指令備份
- 3.6.4 鎖定內(nèi)存中的頁(yè)面
- 3.6.5 后備存儲(chǔ)
- 3.6.6 策略和機(jī)制的分離
- 3.7 分段
- 3.7.1純分段的實(shí)現(xiàn)
- 3.7.2 分段與分頁(yè)結(jié)合:MULTICS
- 3.7.3 分段與分頁(yè)結(jié)合:Intel x86
- 3.8 小結(jié)
3.1 無(wú)存儲(chǔ)器抽象
最簡(jiǎn)單的存儲(chǔ)器抽象就是根本沒(méi)有抽象。每一個(gè)程序都直接訪問(wèn)物理內(nèi)存。當(dāng)一個(gè)程序執(zhí)行如下指令
MOVE REGISTER1,1000計(jì)算機(jī)會(huì)將位置為1000的物理內(nèi)存中的內(nèi)容移到REGISTER1中。因此,那時(shí)呈現(xiàn)給編程人員的存儲(chǔ)器模型就是簡(jiǎn)單的物理內(nèi)存:從0到某個(gè)上限的地址集合,每一個(gè)地址對(duì)應(yīng)一個(gè)可容納一定數(shù)目二進(jìn)制位的存儲(chǔ)單元,通常為8個(gè)。
在這種情況下,要想在內(nèi)存中同時(shí)運(yùn)行兩個(gè)程序是不可能的。如果第一個(gè)程序在2000 的位置寫(xiě)入一個(gè)新的值,將會(huì)擦掉第二個(gè)程序存放在相同位置上的所有內(nèi)容,所以同時(shí)運(yùn)行兩個(gè)程序是根本行不通的,這兩個(gè)程序會(huì)立即崩潰。
不過(guò)即使存儲(chǔ)器模型就是物理模型,還是存在一些可行選項(xiàng)的。圖3-1展示了三種變體。 在a)中,操作系統(tǒng)位于RAM(隨機(jī)訪問(wèn)存儲(chǔ)器)的底部;在b)中,操作系統(tǒng)位于內(nèi)存頂端的ROM(只讀存儲(chǔ)器)中;在C)中,設(shè)備驅(qū)動(dòng)程序位于內(nèi)存頂端的ROM中,而操作系統(tǒng)的其他部分則位于下面的RAM底部。第一種方案以前用于大型機(jī)和小型計(jì)算機(jī),現(xiàn)在很少使用了。第二種方案被用在一些掌上電腦和嵌入式系統(tǒng)中。第三種方案用于早期的個(gè)人計(jì)算機(jī)中(例如運(yùn)行MS-DOS的計(jì)算機(jī)),在ROM中的系統(tǒng)部分稱(chēng)為BIOS(Basic Input Output System,基本輸入輸出系統(tǒng))。第一種和第三種方案的缺點(diǎn)是用戶(hù)程序出現(xiàn)的錯(cuò)誤可能摧毀操作系統(tǒng),引發(fā)災(zāi)難性后果。
當(dāng)按這種方式組織系統(tǒng)時(shí),通常同一時(shí)刻只能有一個(gè)進(jìn)程在運(yùn)行。一旦用戶(hù)鍵入了一個(gè)命令,操作系統(tǒng)就把需要的程序從磁盤(pán)復(fù)制到內(nèi)存中執(zhí)行;當(dāng)進(jìn)行運(yùn)行結(jié)束后,操作系統(tǒng)在用戶(hù)終端顯示提示符并等待新的命令。收到新的命令后,它把新的程序裝入內(nèi)存,覆蓋前一個(gè)程序。
在沒(méi)有存儲(chǔ)器抽象的系統(tǒng)中實(shí)現(xiàn)并行的一種方法是使用多線程來(lái)編程。由于在引入線程時(shí)就假設(shè)一個(gè)進(jìn)程中的所有線程對(duì)同一
在不使用存儲(chǔ)器抽象的情況下運(yùn)行多個(gè)程序
3.2 一種存儲(chǔ)器抽象:地址空間
3.2.1 地址空間的概念
基址寄存器與界限寄存器
3.2.2 交換技術(shù)
3.2.3 空閑內(nèi)存管理
3.3 虛擬內(nèi)存
3.3.1 分頁(yè)
3.3.2 頁(yè)表
3.3.3 加速分頁(yè)過(guò)程
3.3.4 針對(duì)大內(nèi)存的頁(yè)表
3.4 頁(yè)面置換算法
3.4.1 最優(yōu)頁(yè)面置換算法
3.4.2最近未使用(NRU)頁(yè)面置換算法
3.4.3先進(jìn)先出(FIFO)頁(yè)面置換算法
3.4.4 第二次機(jī)會(huì)頁(yè)面置換算法
3.4.5時(shí)鐘頁(yè)面置換算法
3.4.6最近最少使用(LRU)頁(yè)面置換算法
3.4.7 用軟件模擬LRU
3.4.8 工作集頁(yè)面置換算法
3.4.9 工作集時(shí)鐘頁(yè)面置換算法
3.4.10 頁(yè)面置換算法小結(jié)
3.5 分頁(yè)系統(tǒng)中的設(shè)計(jì)問(wèn)題
3.5.1 局部分配策略與全局分配策略
3.5.2負(fù)載控制
3.5.3 頁(yè)面大小
3.5.4 分離的指令空間和數(shù)據(jù)空間
3.5.5 共享頁(yè)面
3.5.6 共享庫(kù)
3.5.7 內(nèi)存映射文件
3.5.8 清除策略
3.5.9 虛擬內(nèi)存接口
3.6 有關(guān)實(shí)現(xiàn)的問(wèn)題
3.6.1 與分頁(yè)有關(guān)的工作
3.6.2 缺頁(yè)中斷處理
3.6.3指令備份
3.6.4 鎖定內(nèi)存中的頁(yè)面
3.6.5 后備存儲(chǔ)
3.6.6 策略和機(jī)制的分離
3.7 分段
3.7.1純分段的實(shí)現(xiàn)
3.7.2 分段與分頁(yè)結(jié)合:MULTICS
3.7.3 分段與分頁(yè)結(jié)合:Intel x86
3.8 小結(jié)
總結(jié)
以上是生活随笔為你收集整理的《现代操作系统》第3章读书笔记--内存管理(未完成)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《现代操作系统》第4章读书笔记--文件系
- 下一篇: 通信电子线路期末复习第二章下