操作系統(tǒng)原理與Linux實(shí)踐教程(第2版)課件 第41-50講 存儲管理概念 - IO硬件系統(tǒng)_第1頁
操作系統(tǒng)原理與Linux實(shí)踐教程(第2版)課件 第41-50講 存儲管理概念 - IO硬件系統(tǒng)_第2頁
操作系統(tǒng)原理與Linux實(shí)踐教程(第2版)課件 第41-50講 存儲管理概念 - IO硬件系統(tǒng)_第3頁
操作系統(tǒng)原理與Linux實(shí)踐教程(第2版)課件 第41-50講 存儲管理概念 - IO硬件系統(tǒng)_第4頁
操作系統(tǒng)原理與Linux實(shí)踐教程(第2版)課件 第41-50講 存儲管理概念 - IO硬件系統(tǒng)_第5頁
已閱讀5頁,還剩152頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

存儲管理概念主要內(nèi)容一、存儲管理的功能二、存儲器層次三、地址重定位四、存儲保護(hù)五、存儲共享一、存儲管理的功能存儲管理的功能內(nèi)存分配和回收內(nèi)存抽象和映射存儲隔離和共享存儲擴(kuò)充二、存儲器層次位于CPU中,訪問速度最快寄存器高速緩存主存儲器磁盤磁帶訪問速度及單位造價(jià)容量低高低高位于CPU中,用于存放從內(nèi)存預(yù)取的指令或數(shù)據(jù)非永久保存信息,掉電后其中的信息不存在永久保存信息,掉電后信息依然存在寄存器高速緩存主存儲器磁盤磁帶操作系統(tǒng)存儲管理的主要對象,是進(jìn)程活動的重要場所。主存容量大,可以同時(shí)容納多個(gè)進(jìn)程。OS需要對內(nèi)存分塊管理。I/O操作也依托于主存。寄存器高速緩存主存儲器磁盤磁帶磁盤和磁帶存儲的信息可長期保存。磁盤和磁帶被看做I/O設(shè)備,屬于設(shè)備管理的范疇。又由于磁盤和磁帶是軟件信息的主要存儲場所,因此文件管理也會涉及磁盤及磁帶空間的管理。三、地址重定位在執(zhí)行程序時(shí),將其中的邏輯地址轉(zhuǎn)變?yōu)槲锢淼刂返倪^程。地址重定位或地址變換邏輯地址是某個(gè)指令、數(shù)據(jù)或語句相對于程序本身某個(gè)基準(zhǔn)位置(通常是程序的開始處)的偏移量,也稱為相對地址。邏輯地址在執(zhí)行對內(nèi)存的訪問之前必須把邏輯地址轉(zhuǎn)換為物理地址。邏輯地址源程序中的符號地址編譯生成的中間代碼程序(也稱為目標(biāo)代碼程序)地址鏈接生成的可執(zhí)行程序中的地址物理地址是程序運(yùn)行時(shí)中央處理器實(shí)際訪問的內(nèi)存單元地址。物理地址(或絕對地址)邏輯地址或相對地址也稱為虛擬內(nèi)存地址。一個(gè)用戶作業(yè)的目標(biāo)程序的邏輯地址集合稱為該作業(yè)的邏輯地址空間。邏輯地址空間為進(jìn)程分配的進(jìn)程能夠訪問的那部分內(nèi)存空間的地址范圍為該進(jìn)程的物理地址空間。物理地址空間地址變換圖示main(){inta;intb;intc;scanf(“%d%d”,&a,&b);c=a+b;printf(“c=%d\n”,c);}main()...abcscanf(“%d%d”,,)[]=[]+[]printf(“c=%d\n”,[])0…10141822100200編譯鏈接為目標(biāo)代碼相對地址101418101418源程序及符號地址目標(biāo)程序main()...abcscanf(“%d%d”,10,14)[18]=[10]+[14]printf(“c=%d\n”,[18])0…10141822100200裝入內(nèi)存相對地址目標(biāo)程序main()...abcscanf(“%d%d”,,)[]=[]+[]printf(“c=%d\n”,[])1000…101010141018102211001200物理地址101010141018101010141018進(jìn)程根據(jù)程序所裝入的內(nèi)存位置由裝入程序依據(jù)重定位信息一次性將程序中所有的邏輯地址轉(zhuǎn)變?yōu)槲锢淼刂罚缓蟪绦蜷_始執(zhí)行,這種重定位方式稱為靜態(tài)重定位(可重定位裝入方式)。靜態(tài)重定位靜態(tài)重定位無須硬件支持,易于實(shí)現(xiàn)。靜態(tài)重定位不允許程序在內(nèi)存中移動位置。概念特點(diǎn)地址轉(zhuǎn)換工作穿插在指令執(zhí)行的過程中,每執(zhí)行一條指令,CPU對指令中涉及的邏輯地址進(jìn)行轉(zhuǎn)換,這種重定位方式稱為動態(tài)重定位(動態(tài)運(yùn)行時(shí)裝入方式)。動態(tài)重定位動態(tài)重定位必須借助硬件地址轉(zhuǎn)換機(jī)構(gòu)實(shí)現(xiàn)。動態(tài)重定位允許程序在內(nèi)存中移動位置。概念特點(diǎn)程序裝入內(nèi)存后,其中的邏輯地址保持不變,程序在內(nèi)存的起始地址裝入到硬件專用寄存器

重定位寄存器中。動態(tài)重定位的具體操作物理地址=邏輯地址(首地址為0)+內(nèi)存始址地址變換公式重定位寄存器可以有多個(gè),分別用于程序段、數(shù)據(jù)段以及堆棧段等的重定位。這意味著程序地址結(jié)構(gòu)是二維的,包括段地址和段內(nèi)偏移。程序所在物理內(nèi)存空間可以是離散的,不必連續(xù)。重定位寄存器數(shù)目、程序地址結(jié)構(gòu)、程序物理內(nèi)存空間連續(xù)性在Intelx86CPU中,CS、DS、ES、SS、FS、GS段寄存器即起到重定位寄存器的作用。重定位寄存器內(nèi)容是進(jìn)程上下文的一部分,進(jìn)程切換時(shí),重定位寄存器內(nèi)容要一并切換。重定位寄存器與進(jìn)程切換重定位寄存器的信息通常保存在進(jìn)程控制塊中。進(jìn)程上下文切換時(shí),當(dāng)前運(yùn)行進(jìn)程的重定位寄存器的內(nèi)容及其它信息保護(hù)在進(jìn)程控制塊中,新進(jìn)程重定位寄存器的內(nèi)容及其它信息從其進(jìn)程控制塊中恢復(fù),進(jìn)程從斷點(diǎn)開始繼續(xù)執(zhí)行。四、存儲保護(hù)存儲保護(hù)包括地址越界保護(hù)信息存取保護(hù)各道程序只能訪問自己的主存區(qū)而不能跳轉(zhuǎn)到另一個(gè)進(jìn)程中,尤其不能訪問操作系統(tǒng)的任何部分。對進(jìn)程執(zhí)行時(shí)所產(chǎn)生的所有主存訪問地址進(jìn)行檢查,確保進(jìn)程僅訪問自己的主存區(qū),這就是地址越界保護(hù)。程序的合法訪問范圍程序的地址空間存儲保護(hù)包括地址越界保護(hù)信息存取保護(hù)進(jìn)程訪問分配給自己的主存區(qū)時(shí),系統(tǒng)要對訪問權(quán)限進(jìn)行檢查,如檢查是否允許讀、寫、執(zhí)行等,從而確保數(shù)據(jù)的安全性和完整性,防止有意無意的誤操作而破壞主存信息,這就是信息存取保護(hù)。五、存儲共享當(dāng)多個(gè)進(jìn)程執(zhí)行一個(gè)程序,或者多個(gè)進(jìn)程合作完成同一個(gè)任務(wù)需要訪問相同的數(shù)據(jù)結(jié)構(gòu)時(shí),內(nèi)存管理系統(tǒng)都要提供存儲共享機(jī)制,以對內(nèi)存共享區(qū)域進(jìn)行受控訪問。謝謝!固定分區(qū)存儲管理主要內(nèi)容一、固定分區(qū)存儲管理方案二、固定分區(qū)存儲管理的數(shù)據(jù)結(jié)構(gòu)三、固定分區(qū)存儲管理的地址轉(zhuǎn)換四、作業(yè)進(jìn)入固定分區(qū)排隊(duì)策略固定分區(qū)存儲管理連續(xù)存儲管理對每個(gè)進(jìn)程分配一個(gè)連續(xù)的存儲區(qū)域。連續(xù)存儲管理目前的操作系統(tǒng)多采用基于分頁和分段的虛擬存儲管理系統(tǒng)。目前流行的存儲管理技術(shù)連續(xù)存儲管理包括固定分區(qū)存儲管理可變分區(qū)存儲管理一、固定分區(qū)存儲管理方案固定分區(qū)存儲管理將內(nèi)存空間劃分為若干個(gè)位置和大小固定的連續(xù)區(qū)域,每一個(gè)連續(xù)區(qū)域稱為一個(gè)分區(qū),各分區(qū)大小可相同,也可不同。由系統(tǒng)操作員和操作系統(tǒng)初始化模塊在系統(tǒng)開機(jī)啟動時(shí),根據(jù)當(dāng)天作業(yè)情況把主存劃分成大小可以不等但位置固定的分區(qū)。分區(qū)劃分的時(shí)機(jī)和劃分的數(shù)目(1)分區(qū)數(shù)目和大小在系統(tǒng)啟動階段已經(jīng)確定,限制了系統(tǒng)中活動進(jìn)程的數(shù)目,也限制了當(dāng)前分區(qū)方案下可運(yùn)行的最大進(jìn)程。固定分區(qū)方案的缺點(diǎn)(2)當(dāng)分區(qū)長度大于其中進(jìn)程長度時(shí),造成存儲空間浪費(fèi)。內(nèi)部碎片由于進(jìn)程所在分區(qū)大于進(jìn)程大小而造成的分區(qū)內(nèi)部浪費(fèi)部分稱為內(nèi)部碎片。二、固定分區(qū)存儲管理的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)示例如下分區(qū)號起始地址長度占用標(biāo)志18K8K0216K16KJob1332K16K0448K16K0564K32KJob2696K64K0三、固定分區(qū)存儲管理的地址轉(zhuǎn)換可以采用靜態(tài)重定位方式動態(tài)重定位方式CPU分區(qū)號基地址長度占用進(jìn)程1B1L1023B3L3P2主存分配表上限寄存器下限寄存器B2L2P1B2+L2-1B2P1操作系統(tǒng)區(qū)用戶分區(qū)1用戶分區(qū)2用戶分區(qū)3B2B2+L2-1主存邏輯地址AB2+AB2B2+L2-1

存儲保護(hù)絕對地址四、作業(yè)進(jìn)入固定分區(qū)排隊(duì)策略分區(qū)大小不等時(shí)的作業(yè)隊(duì)列每個(gè)分區(qū)一個(gè)調(diào)度隊(duì)列所有分區(qū)一個(gè)調(diào)度隊(duì)列進(jìn)程1用戶分區(qū)1用戶分區(qū)2用戶分區(qū)3進(jìn)程2進(jìn)程3進(jìn)程4進(jìn)程5進(jìn)程6進(jìn)程7進(jìn)程8進(jìn)程9進(jìn)程1用戶分區(qū)1用戶分區(qū)2用戶分區(qū)3進(jìn)程2進(jìn)程3進(jìn)程6進(jìn)程5進(jìn)程4進(jìn)程7進(jìn)程8進(jìn)程9謝謝!可變分區(qū)存儲管理主要內(nèi)容一、可變分區(qū)分配及回收方法二、內(nèi)存分配數(shù)據(jù)結(jié)構(gòu)三、可變分區(qū)分配算法四、地址轉(zhuǎn)換與存儲保護(hù)可變分區(qū)存儲管理可變分區(qū)存儲管理方法按照作業(yè)的大小劃分分區(qū),劃分的時(shí)間、大小和位置都是動態(tài)的,屬于一種動態(tài)分區(qū)方法。一、可變分區(qū)分配及回收方法作業(yè)1作業(yè)2作業(yè)3作業(yè)4作業(yè)5按需分配內(nèi)存回收合并外部碎片隨著時(shí)間的推移,內(nèi)存中會產(chǎn)生許多小到難以利用的分區(qū),這種分區(qū)稱為外部碎片。不相鄰空閑分區(qū)的移動合并消耗CPU大量時(shí)間二、內(nèi)存分配數(shù)據(jù)結(jié)構(gòu)空閑和已占用分區(qū)管理結(jié)構(gòu)分區(qū)表分區(qū)鏈占用進(jìn)程標(biāo)識符分區(qū)信息已分配分區(qū)分區(qū)起始地址、分區(qū)長度包括還包括分區(qū)表包括從空閑分區(qū)表中找出足夠容納進(jìn)程的空閑區(qū),將該區(qū)一分為二空閑分區(qū)表已分配區(qū)表分區(qū)分配方法:分區(qū)表一部分用來裝入作業(yè),成為已分配區(qū),并將其大小和起始地址登記在已分配區(qū)表中。另一部分作為空閑分區(qū),修改空閑分區(qū)表中原空閑區(qū)的大小和起始地址。分區(qū)分配演示:基地址長度B1L1空閑分區(qū)表B2L2P1P2主存基地址長度占用進(jìn)程B3L3P1B4L4P2B5L5已分配區(qū)表P3B2’L2’P3將作業(yè)所在分區(qū)作為空閑區(qū)登記在空閑分區(qū)表中,并考慮該空閑分區(qū)與相鄰空閑分區(qū)的合并問題,同時(shí)從已分配區(qū)表中刪除該區(qū)對應(yīng)的表項(xiàng)。內(nèi)存回收方法:分區(qū)鏈包括空閑區(qū)開頭單元存放本空閑區(qū)長度及下個(gè)空閑區(qū)起始地址,把所有空閑區(qū)都鏈接起來,設(shè)置頭指針指向第一塊空閑區(qū)。鏈表中的空閑區(qū)按照大小或分區(qū)地址有序排列??臻e分區(qū)鏈已分配區(qū)鏈分區(qū)鏈頭指針本區(qū)長度下區(qū)地址本區(qū)長度下區(qū)地址本區(qū)長度下區(qū)地址空閑分區(qū)三、可變分區(qū)分配算法(1)最先適應(yīng)分配算法(首次適應(yīng)算法)(2)下次適應(yīng)分配算法(循環(huán)首次適應(yīng)算法)從鏈?zhǔn)醉樞虿檎?,找到第一個(gè)滿足要求的分區(qū)即行分配。(3)最優(yōu)適應(yīng)分配算法(最佳適應(yīng)算法)(4)最壞適應(yīng)分配算法(5)快速適應(yīng)分配算法(1)最先適應(yīng)分配算法(首次適應(yīng)算法)(2)下次適應(yīng)分配算法(循環(huán)首次適應(yīng)算法)每次不從鏈?zhǔn)醉樞虿檎?,而是從上次找到的空閑分區(qū)的下一個(gè)空閑分區(qū)開始查找。(3)最優(yōu)適應(yīng)分配算法(最佳適應(yīng)算法)(4)最壞適應(yīng)分配算法(5)快速適應(yīng)分配算法每次從鏈?zhǔn)撞檎?,直到找到一個(gè)能夠滿足要求的最小分區(qū)。空閑分區(qū)需按大小順序鏈接。容易產(chǎn)生碎片。(1)最先適應(yīng)分配算法(首次適應(yīng)算法)(2)下次適應(yīng)分配算法(循環(huán)首次適應(yīng)算法)掃描整個(gè)空閑分區(qū)鏈,總是挑選一個(gè)最大的空閑區(qū)分割給作業(yè)使用。減少碎片產(chǎn)生。(3)最優(yōu)適應(yīng)分配算法(最佳適應(yīng)算法)(4)最壞適應(yīng)分配算法(5)快速適應(yīng)分配算法為那些經(jīng)常用到的長度的空閑區(qū)設(shè)立單獨(dú)的空閑分區(qū)鏈表。四、地址轉(zhuǎn)換與存儲保護(hù)由加載程序檢查地址是否越界地址轉(zhuǎn)換靜態(tài)重定位動態(tài)重定位存儲保護(hù)動態(tài)地址重定位需要硬件支持?;芳拇嫫鞔娣欧峙浣o作業(yè)使用的分區(qū)的起始地址,限長寄存器存放作業(yè)占用的連續(xù)存儲空間的長度?;锇橄到y(tǒng)主要內(nèi)容一、伙伴的概念二、伙伴系統(tǒng)內(nèi)存分配與回收伙伴系統(tǒng)伙伴系統(tǒng)也稱為buddy算法,是固定分區(qū)和可變分區(qū)折中的主存管理算法,由Knuth在1973年提出。伙伴系統(tǒng)采用稱為伙伴的可以分割、合并的不同規(guī)格的內(nèi)存塊作為分區(qū)單位。一、伙伴的概念兩個(gè)大小相等且由同一個(gè)尺寸為2i的空閑塊分割而來的內(nèi)存塊互為伙伴?;锇榉腔锇槎?、伙伴系統(tǒng)內(nèi)存分配與回收運(yùn)用伙伴系統(tǒng)分配內(nèi)存空間的過程是一個(gè)對空閑內(nèi)存區(qū)不斷對半切分,直到切分出的內(nèi)存塊為大于或等于進(jìn)程大小的最小伙伴為止的過程?;锇橄到y(tǒng)回收內(nèi)存的過程是不斷將相鄰空閑伙伴合并為更大伙伴單位,直到伙伴不空閑,無法合并為止的過程。分配回收伙伴系統(tǒng)內(nèi)存分配所需內(nèi)存空閑內(nèi)存切分切分切分伙伴系統(tǒng)為所有大小為2i的伙伴塊維護(hù)一個(gè)列表。一個(gè)大小為2i+1的伙伴塊分割一次后產(chǎn)生的大小為2i的伙伴塊加入2i伙伴塊列表?;锇橄到y(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)2i2i2i2i2i+12i+12i+12i+12i+k2i+k2i+k2i+k?謝謝!分頁存儲管理方案主要內(nèi)容一、頁框和頁二、分頁存儲管理的地址結(jié)構(gòu)三、分頁存儲管理的地址變換四、分頁地址變換的硬件支持五、快表六、分頁存儲空間分配和釋放七、分頁存儲空間頁面共享與保護(hù)分頁存儲管理方案存儲管理分類連續(xù)存儲空間管理離散存儲空間管理固定分區(qū)可變分區(qū)分頁分段一、頁框和頁物理塊或頁框分頁存儲管理將全部內(nèi)存劃分為長度相等的若干份,每一份稱為一個(gè)物理塊或頁框。頁或頁面作業(yè)自動被分頁系統(tǒng)劃分為與每個(gè)物理塊相等的若干等份,每一份稱為一頁或一個(gè)頁面。Intelx86CPU頁大小4KB2MB4MB只能在Pentium和PentiumPro處理器中使用分頁系統(tǒng)存儲分配方法一個(gè)作業(yè)的任一頁可以裝入到內(nèi)存任一空閑物理塊,并不要求邏輯上相鄰的頁所在內(nèi)存物理塊也相鄰。P2頁0P1頁3P1頁2P2頁1P1頁0P1頁1P2頁2進(jìn)程P1進(jìn)程P2進(jìn)程的分頁離散存儲二、分頁存儲管理的地址結(jié)構(gòu)邏輯地址結(jié)構(gòu)頁號頁內(nèi)位移物理地址結(jié)構(gòu)物理塊號塊內(nèi)位移頁號和頁內(nèi)地址算例:若頁面大小設(shè)置為4KB,地址總線寬度為32位邏輯(虛擬)地址空間最大頁數(shù)為220頁頁號頁內(nèi)位移4K4×102422×21021212位頁內(nèi)位移位數(shù)為12位20位頁號位數(shù)=32-12=20求:頁內(nèi)位移位數(shù)和頁號位數(shù)三、分頁存儲管理的地址變換由于頁內(nèi)位移和塊內(nèi)位移相同,分頁存儲管理的地址變換演變?yōu)轫撎柕轿锢韷K號的映射,即根據(jù)頁號獲得物理塊號。頁號頁內(nèi)位移物理地址物理塊號塊內(nèi)位移邏輯地址頁表頁表用于實(shí)現(xiàn)地址變換,頁表記載了邏輯地址到物理地址的對應(yīng)關(guān)系,操作系統(tǒng)需為每個(gè)作業(yè)建立一張頁表,系統(tǒng)通過頁表可以準(zhǔn)確訪問內(nèi)存中屬于一個(gè)作業(yè)的所有頁面。進(jìn)程頁表實(shí)例操作系統(tǒng)P1的PCB頁表指針域P2的PCB頁表指針域P1頁3P1頁2P1頁0P1頁1P2頁2P2頁0P2頁1進(jìn)程P1進(jìn)程P2頁號0123塊號頁號012塊號P2頁0P1頁3P1頁2P2頁1P1頁0P1頁1P2頁2四、分頁地址變換的硬件支持分頁存儲管理采用動態(tài)重定位技術(shù),重定位寄存器的設(shè)置方法有兩種:一種是為每個(gè)頁面設(shè)立一個(gè)重定位寄存器,整個(gè)頁表放在重定位寄存器中,造價(jià)較高。第2種方法是把頁表存放在內(nèi)存,系統(tǒng)另設(shè)一個(gè)頁表始址寄存器和長度控制寄存器用來存放當(dāng)前運(yùn)行作業(yè)的頁表始址和頁表長。當(dāng)前占有處理器的進(jìn)程是頁表寄存器的使用者,一旦進(jìn)程釋放了處理器,同時(shí)也就釋放了頁表寄存器。分頁存儲管理地址變換過程CPU邏輯地址pd物理地址bd頁表始址寄存器b頁號012…p…長度控制寄存器主存A頁表內(nèi)存中央處理器分頁地址變換實(shí)例若頁面大小設(shè)置為4KB,地址總線寬度為32位,則頁內(nèi)位移位數(shù)為12位,頁號位數(shù)=32-12=20,邏輯地址60000在第幾頁?頁內(nèi)偏移是多少?若該頁被裝進(jìn)物理塊1280中,則物理地址是多少?60000=(EA60)16問題求解:1280=(500)16EA60頁號頁內(nèi)偏移0111231頁內(nèi)偏移=(A60)16物理地址=(500A60)16500A60物理塊號塊內(nèi)偏移0111231邏輯地址五、快表頁表放在內(nèi)存中降低了程序執(zhí)行的速度一次訪問頁表取得物理塊號以形成物理地址第二次根據(jù)物理地址存取指令/數(shù)據(jù),速度降低了一倍1、引入快表的原因CPU每存取一個(gè)指令/數(shù)據(jù)時(shí),需要兩次訪問內(nèi)存CPU存取一個(gè)指令/數(shù)據(jù)時(shí),兩次訪問內(nèi)存的過程CPU邏輯地址pd物理地址bd頁號012…p…指令/數(shù)據(jù)主存A頁表中央處理器b內(nèi)存db指令/數(shù)據(jù)快表為了減少分頁存儲管理系統(tǒng)中的內(nèi)存訪問速度下降一倍問題,在存儲管理部件中增設(shè)一個(gè)專用的高速緩沖存儲器,用來存放最近訪問過的部分頁表項(xiàng),這種高速緩沖存儲器稱為快表或聯(lián)想存儲器。Intel80486的快表為32個(gè)單元2、快表的使用有了快表,根據(jù)頁號查找對應(yīng)的物理塊號時(shí),首先查找快表中的局部頁表若找到則將物理塊號和頁內(nèi)地址(也是塊內(nèi)地址)拼接形成物理地址,根據(jù)該物理地址訪問相應(yīng)的內(nèi)存單元。若在快表中未找到物理塊號,則再查找內(nèi)存頁表,獲取物理塊號一方面形成物理地址,另一方面將該表項(xiàng)抄到快表中,以備下次再次訪問該頁面時(shí)從快表中獲得物理塊號。查快表和查內(nèi)存頁表是同時(shí)進(jìn)行的,一旦從快表中找到了對應(yīng)項(xiàng),則立即停止對內(nèi)存頁表的查找。具有快表的分頁地址變換過程CPU邏輯地址pd物理地址bd頁表始址寄存器b頁號01…p…長度控制寄存器主存A頁表內(nèi)存中央處理器pb快表3、快表性能分析假定訪問主存時(shí)間為100毫微秒,訪問快表時(shí)間為20毫微秒,快表為32個(gè)單元時(shí)快表命中率可達(dá)90%,則按邏輯地址存取的平均時(shí)間為:(訪問快表的時(shí)間+訪問內(nèi)存數(shù)據(jù)的時(shí)間)×90%+(訪問內(nèi)存頁表的時(shí)間(同時(shí)包含訪問快表的時(shí)間)+訪問內(nèi)存數(shù)據(jù)的時(shí)間)×(1-90%)=(20+100)×90%+(100+100)×(1-90%)=128毫微秒比兩次訪問主存的時(shí)間100毫微秒×2=200毫微秒下降了36%。若快表命中,則內(nèi)存訪問減少1次。六、分頁存儲空間分配和釋放分頁系統(tǒng)存儲管理數(shù)據(jù)結(jié)構(gòu)分頁系統(tǒng)需要記錄每個(gè)物理塊的忙閑情況當(dāng)前可用的空閑塊總數(shù)分頁系統(tǒng)兩種數(shù)據(jù)結(jié)構(gòu)位示圖主存分配鏈表位示圖由一些二進(jìn)制位組成,每一位對應(yīng)一個(gè)內(nèi)存物理塊,位值表示所對應(yīng)的物理塊是否已分配出去。分配和回收物理塊時(shí)只需修改位值即可。分頁系統(tǒng)兩種數(shù)據(jù)結(jié)構(gòu)位示圖主存分配鏈表表中結(jié)點(diǎn)信息包括物理塊忙閑標(biāo)志物理塊起始地址塊數(shù)指向下一結(jié)點(diǎn)的指針主存分配鏈表性能分析結(jié)點(diǎn)數(shù)目是影響主存分配鏈表使用效率的重要因素。當(dāng)鏈表中的結(jié)點(diǎn)數(shù)目較多時(shí),鏈表本身消耗較多內(nèi)存空間,導(dǎo)致使用效率不高。七、分頁存儲空間頁面共享與保護(hù)1、存儲共享分頁系統(tǒng)實(shí)現(xiàn)存儲共享時(shí),必須區(qū)分?jǐn)?shù)據(jù)共享程序共享允許不同的作業(yè)對共享的數(shù)據(jù)頁使用不同的頁號,只要令各自頁表中的有關(guān)表目指向共享的數(shù)據(jù)信息塊就行了。被共享的程序段中的邏輯地址在不同的進(jìn)程空間必須是相同的。即對共享的程序必須規(guī)定一個(gè)統(tǒng)一的頁號。分頁系統(tǒng)程序共享時(shí)頁號必須統(tǒng)一的解釋該共享程序頁在內(nèi)存中僅有一個(gè)副本,變量a的地址是唯一的,不可能是兩個(gè)。child()ascanf(“%d”,);child()ascanf(“%d”,);child()ascanf(“%d”,);進(jìn)程A共享程序頁在進(jìn)程A中的邏輯頁號為1進(jìn)程B共享程序頁在進(jìn)程B中的邏輯頁號為01頁=1000B1頁=1000B地址010001004地址010004共享程序頁/10041004442、信息保護(hù)分頁系統(tǒng)實(shí)現(xiàn)信息保護(hù)的辦法是在頁表中增加一些標(biāo)志位,用來指出該頁的信息操作權(quán)限可讀/寫只讀只可執(zhí)行不可訪問謝謝!多級頁表主要內(nèi)容一、多級頁表的思想二、兩級頁表的地址結(jié)構(gòu)三、兩級頁表的地址轉(zhuǎn)換一、多級頁表的思想如果頁表很大,頁表占用的內(nèi)存物理塊也允許是離散的,而且頁表也可以按需裝入內(nèi)存,這樣就需要再建立頁表的頁表,即頁目錄,這就是二級頁表機(jī)制。需要的還可建立更多級的頁表。頁表離散存儲,按需調(diào)入無論多少級頁表推論必須完全駐留內(nèi)存頂級頁表系統(tǒng)為每個(gè)進(jìn)程建一張頁目錄表,它的每個(gè)表項(xiàng)對應(yīng)一個(gè)頁表頁,而頁表頁的每個(gè)表項(xiàng)給出頁面和頁框的對應(yīng)關(guān)系。頁目錄表是一級頁表,頁表頁是二級頁表。二級頁表機(jī)制二級頁表示例10111078頁號012n-1頁目錄表…140162…頁表頁01023…114115012…頁表頁11023…1468012…頁表頁n-11023……012…內(nèi)存物理塊…34567114115…1468………頁表頁頁號一級頁表塊號…二、兩級頁表的地址結(jié)構(gòu)兩級頁表的邏輯地址結(jié)構(gòu)頁號頁內(nèi)位移頁目錄號一級頁表號二級頁表號三、兩級頁表的地址轉(zhuǎn)換CPU送出的邏輯地址被分解為三個(gè)部分:頁目錄號、頁表頁號和頁內(nèi)位移。根據(jù)頁目錄號查找頁目錄表中相應(yīng)表項(xiàng),獲得頁表頁所在物理塊號;在該物理塊中查找頁表頁號,獲得該頁所在內(nèi)存物理塊號,該物理塊號與頁內(nèi)位移拼接形成要訪問數(shù)據(jù)的內(nèi)存物理地址。地址分解查找一級頁表查找二級頁表謝謝!分段存儲管理主要內(nèi)容一、分段存儲管理的引入二、分段存儲管理的邏輯地址結(jié)構(gòu)三、分段存儲管理的地址轉(zhuǎn)換機(jī)構(gòu)四、段的共享和保護(hù)五、分段和分頁的比較一、分段存儲管理的引入程序的結(jié)構(gòu)特征程序通常具有一定的邏輯結(jié)構(gòu),例如分成若干個(gè)段,每個(gè)段包含若干數(shù)據(jù)塊或程序模塊(函數(shù)、過程)。因此,程序具有二維地址結(jié)構(gòu):段和段內(nèi)偏移。程序結(jié)構(gòu)示例代碼段1函數(shù)11函數(shù)12函數(shù)1k…代碼段2函數(shù)21函數(shù)22函數(shù)2m…數(shù)據(jù)段1數(shù)據(jù)塊11數(shù)據(jù)塊12數(shù)據(jù)塊1i…數(shù)據(jù)段2數(shù)據(jù)塊21數(shù)據(jù)塊22數(shù)據(jù)塊2j…堆棧段堆棧1堆棧2堆棧m…一個(gè)程序的組成結(jié)構(gòu)內(nèi)存的結(jié)構(gòu)特征內(nèi)存對用戶呈現(xiàn)一維線性結(jié)構(gòu)純粹的分頁和分區(qū)存儲管理將程序視為與內(nèi)存一致的線性結(jié)構(gòu),即使程序?qū)嶋H上為分段的二維邏輯結(jié)構(gòu),這樣就導(dǎo)致內(nèi)存中的程序不易按程序邏輯組成訪問。內(nèi)存一維線性結(jié)構(gòu)分頁、分區(qū)存儲管理與程序結(jié)構(gòu)的不一致性解決問題的辦法采用分段存儲管理,依照程序的邏輯結(jié)構(gòu)劃分和分配內(nèi)存空間分段存儲管理分段存儲管理以段為單位進(jìn)行存儲分配,作業(yè)每一段被分配一個(gè)連續(xù)的主存空間,各段存儲位置不一定相鄰,各段大小不一。二、分段存儲管理的邏輯地址結(jié)構(gòu)段號段內(nèi)位移分段存儲管理的邏輯地址是二維的,包括采用匯編語言編程時(shí),分段地址結(jié)構(gòu)對用戶是可見的,用戶知道邏輯地址如何劃分為段號和段內(nèi)位移。每個(gè)段的最大長度受地址結(jié)構(gòu)的限制,每一個(gè)程序中允許的最多段數(shù)也會受到限制。三、分段存儲管理的地址轉(zhuǎn)換機(jī)構(gòu)分段存儲管理數(shù)據(jù)結(jié)構(gòu)段表操作系統(tǒng)需為每個(gè)作業(yè)建立一張段表,用以登記每個(gè)段的段號、該段所在內(nèi)存始址和段長度。分段存儲管理硬件支持段表控制寄存器系統(tǒng)需設(shè)置一個(gè)段表控制寄存器用來存放當(dāng)前占用處理器的作業(yè)的段表起始地址和長度。段表實(shí)例段M作業(yè)相對地址0…k-1邏輯段號0段X0…p-11段Y0…n-12段A0…s-13長度段起始地址主存1500段X段Y操作系統(tǒng)段Mpk32008000sn6000段號0123段A段表1500段起始地址320060008000分段地址變換CPU邏輯地址sd物理地址b+db段號012…s…主存A段長內(nèi)存段表始址寄存器段表長度寄存器基址db段表四、段的共享和保護(hù)共享段在內(nèi)存中只有一個(gè)副本,不同作業(yè)段表中的項(xiàng)指向共享段基址。與頁共享類似,共享數(shù)據(jù)段在不同作業(yè)進(jìn)程的段表中可以有不同的段號,共享代碼段在不同作業(yè)進(jìn)程的段表中須有相同的段號。進(jìn)程1editordata1進(jìn)程2editordata2段長160基址80段表40240editordata1data2……段長160基址80段表4038080240280380420段共享實(shí)例主存五、分段和分頁的比較存儲管理技術(shù)分段分頁信息單位邏輯單位物理單位對用戶可見性可見不可見長度規(guī)定用戶需要系統(tǒng)確定起始地址任何位置頁大小整倍數(shù)地址邏輯地址結(jié)構(gòu)二維一維比較項(xiàng)目謝謝!請求分頁存儲管理方案主要內(nèi)容一、虛擬存儲器的定義二、請求分頁虛擬存儲系統(tǒng)基本原理三、請求分頁系統(tǒng)的頁表結(jié)構(gòu)四、分頁虛擬存儲系統(tǒng)的硬件支撐五、請求分頁的地址變換過程六、缺頁中斷處理過程虛擬存儲器原理存儲管理分類實(shí)存管理虛存管理固定分區(qū)可變分區(qū)請求分頁請求分段分頁分段一、虛擬存儲器的定義利用外存模擬內(nèi)存,采用部分裝入和部分對換功能,在內(nèi)外存之間自動傳輸完整信息的一部分,從邏輯上擴(kuò)充內(nèi)存容量,為用戶提供一個(gè)比其實(shí)際擁有的內(nèi)存要大的“主存儲器”稱為虛擬存儲器。虛擬存儲器的好處小內(nèi)存運(yùn)行大進(jìn)程小內(nèi)存運(yùn)行較多進(jìn)程虛擬存儲器的代價(jià)以時(shí)間換空間,以較小的內(nèi)存空間運(yùn)行大的進(jìn)程或較多的進(jìn)程將消耗較多的進(jìn)程對換時(shí)間節(jié)省了空間,浪費(fèi)了時(shí)間大型商業(yè)軟件安裝時(shí)都要求配置足夠的內(nèi)存容量程序執(zhí)行的局部性在一段時(shí)間內(nèi),程序訪問的存儲空間僅限于某個(gè)區(qū)域(這稱為空間局部性),或者最近訪問過的程序代碼和數(shù)據(jù)很快會再次被訪問(這稱為時(shí)間局部性)。2、實(shí)現(xiàn)虛擬存儲器的基礎(chǔ)

程序執(zhí)行的局部性原理在較小的一段時(shí)間內(nèi),整個(gè)作業(yè)空間中只有某一局部模塊的指令和數(shù)據(jù)會被執(zhí)行和訪問到。作業(yè)其它部分暫時(shí)不會訪問到。程序執(zhí)行的局部性允許程序局部裝入這就允許僅在內(nèi)存保留當(dāng)前需要運(yùn)行的程序部分,而其它部分暫時(shí)留在外存。虛擬存儲器的實(shí)現(xiàn)技術(shù)主要有(1)請求分頁式虛擬存儲管理(2)請求分段式虛擬存儲管理(3)請求段頁式虛擬存儲管理二、請求分頁虛擬存儲系統(tǒng)基本原理在進(jìn)程開始運(yùn)行之前,裝入全部頁面集合中的一個(gè)或幾個(gè)頁面,進(jìn)程運(yùn)行過程中,訪問的頁面不在內(nèi)存時(shí),再裝入所需頁面;若內(nèi)存空間已滿,而又需要裝入新的頁面時(shí),則根據(jù)某種算法淘汰某個(gè)頁面,以便裝入新的頁面。三、請求分頁系統(tǒng)的頁表結(jié)構(gòu)請求分頁系統(tǒng)的頁表分為內(nèi)存頁表外頁表頁號物理塊號駐留標(biāo)志位引用位R修改位M訪問權(quán)限位又稱中斷位,狀態(tài)位,指示頁面是否在內(nèi)存指示頁面最近是否被訪問過,幫助頁面淘汰指示頁面最近是否被修改過,決定頁面調(diào)出內(nèi)存時(shí)是否寫回外存規(guī)定頁面的訪問權(quán)限請求分頁系統(tǒng)的頁表分為內(nèi)存頁表外頁表頁號外存地址外頁表是頁面與磁盤物理地址的對應(yīng)表,進(jìn)程啟動運(yùn)行前系統(tǒng)為其建立外頁表,并把進(jìn)程程序頁面裝入輔存。缺頁中斷時(shí)外頁表由外存調(diào)入內(nèi)存。外頁表結(jié)構(gòu)定義四、分頁虛擬存儲系統(tǒng)的硬件支撐分頁虛擬存儲系統(tǒng)需要內(nèi)存管理部件MMU。MMU通常由一個(gè)或一組芯片組成,它接受虛擬地址(邏輯地址)作為輸入,輸出物理地址。MMU的功能①管理硬件頁表寄存器,裝入將要占用處理器的進(jìn)程頁表②分解邏輯地址為頁號和頁內(nèi)地址③管理快表:查找快表、裝入表目和清除表目④訪問頁表⑤當(dāng)要訪問的頁面不在內(nèi)存時(shí)發(fā)出缺頁中斷,頁面訪問越界時(shí)發(fā)出越界中斷⑥設(shè)置和檢查頁表中的引用位、修改位、有效位和保護(hù)權(quán)限位等各個(gè)特征位MMU操作的實(shí)體對象①頁表寄存器②頁表③快表查找裝入清除訪問缺頁中斷越界中斷設(shè)置和檢查特征位指向頁表五、請求分頁的地址變換過程進(jìn)程開始執(zhí)行并要訪問某個(gè)虛擬地址時(shí),內(nèi)存管理部件MMU的工作如下CPU邏輯地址pdAMMU①M(fèi)MU接受CPU傳送過來的虛地址并分解為兩部分:頁號和頁內(nèi)地址分解CPU邏輯地址pdAMMU②以頁號為索引搜索快表pb快表CPU邏輯地址pdAMMU③如果命中快表,則立即送出物理塊號(頁框號),并與頁內(nèi)地址拼接形成物理地址,然后訪問相應(yīng)內(nèi)存單元pb快表物理地址bd主存內(nèi)存CPU邏輯地址pdAMMU④如果不命中快表,則以頁號為索引搜索內(nèi)存頁表快表主存內(nèi)存b頁號01…p…頁表CPU邏輯地址pdAMMU⑤在頁表中查找相應(yīng)表項(xiàng),如果其狀態(tài)位指示該頁已在內(nèi)存,則送出物理塊號與頁內(nèi)地址拼接形成物理地址訪問相應(yīng)內(nèi)存單元,同時(shí)要將該表項(xiàng)裝入快表pb快表物理地址bd主存內(nèi)存b頁號01…p…頁表CPU邏輯地址pdAMMU⑥如果在頁表中找到的相應(yīng)表項(xiàng),其狀態(tài)位指示該頁不在內(nèi)存,則發(fā)出缺頁中斷,請求操作系統(tǒng)處理快表主存內(nèi)存在外存頁號01…p…頁表CPU邏輯地址pdAMMU⑦存儲管理軟件將所缺頁面調(diào)入內(nèi)存,修改頁表快表主存內(nèi)存b頁號01…p…頁表六、缺頁中斷處理過程進(jìn)程掛起主存內(nèi)存缺頁頁表步1掛起請求缺頁的進(jìn)程步2根據(jù)頁號查外頁表,找到該頁存放的磁盤物理地址盤塊外存盤塊號頁號01…p…外頁表主存內(nèi)存缺頁頁表步3查看主存是否有空閑頁框,如有則找出一個(gè),修改主存管理表和相應(yīng)頁表項(xiàng)內(nèi)容,轉(zhuǎn)步6盤塊外存盤塊號頁號01…p…外頁表主存內(nèi)存b頁表步6進(jìn)行調(diào)頁,把頁面裝入主存所分配的頁框中,同時(shí)修改進(jìn)程頁表項(xiàng)盤塊外存盤塊號頁號01…p…外頁表主存內(nèi)存b頁表步7返回進(jìn)程斷點(diǎn),重新啟動被中斷的指令盤塊外存盤塊號頁號01…p…外頁表主存內(nèi)存b頁表進(jìn)程斷點(diǎn)步4如主存中無空閑頁框,則按替換算法選擇淘汰頁面,檢查它曾被寫過或修改過嗎?若未則轉(zhuǎn)步6;若是則轉(zhuǎn)步5盤塊外存盤塊號頁號01…p…外頁表主存內(nèi)存b頁表淘汰頁面步5該淘汰頁面被寫過或修改過,則把它的內(nèi)容寫回磁盤原先位置盤塊外存盤塊號頁號01…p…外頁表主存內(nèi)存b頁表淘汰頁面缺頁中斷處理過程總結(jié)①查看內(nèi)存是否有空閑物理塊,如有則裝入頁面到空閑物理塊,同時(shí)修改頁表相應(yīng)項(xiàng)以及內(nèi)存分配表②如果內(nèi)存中沒有空閑物理塊,則按替換算法選擇一個(gè)頁面淘汰,若該頁面被寫過或修改過,則寫回外存;否則只簡單淘汰該頁面。淘汰頁面之后要修改頁表相應(yīng)項(xiàng),然后調(diào)入頁面到淘汰頁面釋放的物理塊中謝謝!IO硬件系統(tǒng)主要內(nèi)容一、設(shè)備類別二、設(shè)備硬件組成三、控制器四、總線五、I/O控制方式一、設(shè)備類別塊設(shè)備字符設(shè)備從數(shù)據(jù)交換單位來分塊設(shè)備是以物理塊為存儲和傳輸單位的設(shè)備,每個(gè)物理塊都有地址,因此可獨(dú)立尋址。所有傳輸以一個(gè)或多個(gè)完整的物理塊為單位。硬盤、CD-ROM和USB盤是最常見的塊設(shè)備。塊設(shè)備字符設(shè)備從數(shù)據(jù)交換單位來分字符設(shè)備是以字節(jié)為傳輸單位的設(shè)備,且不可尋址。鍵盤、打印機(jī)、鼠標(biāo)、網(wǎng)絡(luò)接口,以及大多數(shù)與磁盤不同的設(shè)備都可以看做字符設(shè)備。順序設(shè)備隨機(jī)設(shè)備從設(shè)備訪問方式來分順序設(shè)備是只能按照訪問請求的順序或者物理編址順序進(jìn)行響應(yīng)的設(shè)備。隨機(jī)設(shè)備是通過指定數(shù)據(jù)存儲位置對其任意部分進(jìn)行訪問的設(shè)備。二、設(shè)備硬件組成機(jī)械部件電子部件I/O設(shè)備一般由機(jī)械部件即設(shè)備本身電子部件稱為設(shè)備控制器或適配器。一般為芯片形式或印刷電路板的形式??刂破骺梢圆僮?、4個(gè)甚至8個(gè)相同的設(shè)備??刂破魇窃O(shè)備的直接控制者,操作系統(tǒng)通過控制器間接控制設(shè)備。組成三、控制器(1)接收和識別CPU或通道發(fā)來的命令(2)實(shí)現(xiàn)數(shù)據(jù)交換,包括設(shè)備和控制器間的數(shù)據(jù)傳輸設(shè)備控制器主要功能(3)發(fā)現(xiàn)和記錄設(shè)備及自身的狀態(tài)信息,供CPU處理使用(4)設(shè)備地址識別狀態(tài)寄存器控制寄存器設(shè)備控制器中的四種寄存器數(shù)據(jù)輸入寄存器數(shù)據(jù)輸出寄存器包含CPU可讀取的設(shè)備狀態(tài)信息。狀態(tài)信息指示當(dāng)前任務(wù)是否完成,數(shù)據(jù)輸入寄存器中數(shù)據(jù)是否可以讀取,是否出現(xiàn)設(shè)備故障等。狀態(tài)寄存器控制寄存器設(shè)備控制器中的四種寄存器數(shù)據(jù)輸入寄存器數(shù)據(jù)輸出寄存器用來向設(shè)備發(fā)送命令或改變設(shè)備狀態(tài)存放設(shè)備從外界獲取的數(shù)據(jù)供CPU讀取存放供設(shè)備向外界輸出的數(shù)據(jù)四、總線總線用以連接計(jì)算機(jī)系統(tǒng)中的設(shè)備、處理器、內(nèi)存等硬件資源實(shí)現(xiàn)通信。CPU內(nèi)存視頻控制器鍵盤控制器USB控制器磁盤控制器顯示器鍵盤USBCD-ROM磁盤驅(qū)動器總線五、I/O控制方式輪詢中斷主機(jī)通過控制器對設(shè)備輸入、輸出進(jìn)行控制的方式有四種DMA通道1、輪詢輪詢也稱為忙等待,CPU向設(shè)備下達(dá)操作命令后,不斷查詢設(shè)備操作完成狀態(tài)。在輪詢控制方式下,CPU與設(shè)備的工作完全是串行(順序)的,而不是并發(fā)的。輪詢

溫馨提示

  • 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

提交評論