已閱讀5頁,還剩72頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Module9 MemoryManagement Background 背景 LogicalversusPhysicalAddressSpace 邏輯與物理地址空間 ContiguousAllocation 連續(xù)分配 Paging 分頁 Segmentation 分段 SegmentationwithPaging 段頁式 Swapping 交換 存儲(chǔ)層次結(jié)構(gòu) Background Background Programmustbebroughtintomemoryandplacedwithinaprocessforittobeexecuted 程序必需放入一個(gè)進(jìn)程 并且送入內(nèi)存才能被執(zhí)行 Inputqueue collectionofprocessesonthediskthatarewaitingtobebroughtintomemoryforexecution 輸入隊(duì)列 磁盤上等待進(jìn)入內(nèi)存并執(zhí)行的進(jìn)程的集合 Userprogramsgothroughseveralstepsbeforebeingexecuted 用戶程序在執(zhí)行之前必需經(jīng)歷很多步驟 Background 源程序 編譯 目標(biāo)模塊 庫 鏈接程序 裝入模塊 裝入程序 內(nèi)存 Logicalvs PhysicalAddressSpace 重定位Theconceptofalogicaladdressspacethatisboundtoaseparatephysicaladdressspaceiscentraltopropermemorymanagement 邏輯地址空間的概念同物理地址空間相關(guān)聯(lián) 它是正確內(nèi)存管理的中心 Logicaladdress generatedbytheCPU alsoreferredtoasvirtualaddress 邏輯地址 由CPU產(chǎn)生 也叫做虛擬空間 Physicaladdress addressseenbythememoryunit 物理地址 內(nèi)存設(shè)備所讀入的地址 Logicalandphysicaladdressesarethesameincompile timeandload timeaddress bindingschemes logical virtual andphysicaladdressesdifferinexecution timeaddress bindingscheme 邏輯和物理地址在編譯時(shí)期和裝入時(shí)期的地址綁定策略是相同的 而在執(zhí)行時(shí)間的地址綁定策略是不同的 BindingofInstructionsandDatatoMemory Compiletime 編譯時(shí)期 Ifmemorylocationknownapriori absolutecodecanbegenerated mustrecompilecodeifstartinglocationchanges 如果內(nèi)存位置已知 可生成絕對(duì)代碼 如果開始位置改變 需要重新編譯代碼 Loadtime 裝入時(shí)期 Mustgeneraterelocatablecodeifmemorylocationisnotknownatcompiletime 如果存儲(chǔ)位置在編譯時(shí)不知道 則必須生成可重定位代碼 Executiontime 執(zhí)行時(shí)期 Bindingdelayeduntilruntimeiftheprocesscanbemovedduringitsexecutionfromonememorysegmenttoanother Needhardwaresupportforaddressmaps e g baseandlimitregisters 如果進(jìn)程在執(zhí)行時(shí)可以在內(nèi)存中移動(dòng) 則地址綁定要延遲到運(yùn)行時(shí) 需要硬件對(duì)地址映射的支持 例如基址和限長(zhǎng)寄存器 Addressbindingofinstructionsanddatatomemoryaddressescanhappenatthreedifferentstages 指令和數(shù)據(jù)綁定到內(nèi)存地址可以在三個(gè)不同的階段發(fā)生 地址重定位 將程序裝入到與其地址空間不一致的物理空間 所引起的一系列地址變換過程 靜態(tài)地址重定位在裝入一個(gè)作業(yè)時(shí) 把作業(yè)中的指令地址全部轉(zhuǎn)換為絕對(duì)地址 在作業(yè)執(zhí)行過程中就無須再進(jìn)行地址轉(zhuǎn)換工作 動(dòng)態(tài)地址重定位 動(dòng)態(tài)地址重地位是在程序執(zhí)行過程中 在CPU訪問內(nèi)存之前 將要訪問的程序或數(shù)據(jù)地址轉(zhuǎn)換成內(nèi)存地址 動(dòng)態(tài)重定位依靠硬件地址變換機(jī)構(gòu)完成 Memory ManagementUnit MMU Hardwaredevicethatmapsvirtualtophysicaladdress 硬件把虛擬地址映射到物理地址 InMMUscheme thevalueintherelocationregisterisaddedtoeveryaddressgeneratedbyauserprocessatthetimeitissenttomemory 在MMU策略中 基址寄存器中的值在其送入內(nèi)存的時(shí)候被加入到用戶進(jìn)程所產(chǎn)生的每個(gè)地址中 Theuserprogramdealswithlogicaladdresses itneverseestherealphysicaladdresses 用戶程序所對(duì)應(yīng)到的是邏輯地址 物理地址對(duì)它從來都不可見 Memory ManagementUnit MMU Overlays Keepinmemoryonlythoseinstructionsanddatathatareneededatanygiventime 只是在內(nèi)存中保留那些在特定時(shí)間所需要的指令和數(shù)據(jù) Neededwhenprocessislargerthanamountofmemoryallocatedtoit 當(dāng)進(jìn)程比所分配的內(nèi)存大時(shí) 覆蓋是必需的 Implementedbyuser nospecialsupportneededfromoperatingsystem programmingdesignofoverlaystructureiscomplex 由用戶執(zhí)行 不需要操作系統(tǒng)的特別支持 覆蓋結(jié)構(gòu)的程序設(shè)計(jì)很復(fù)雜 要求用戶清楚地了解程序的結(jié)構(gòu) 并指定各程序段調(diào)入內(nèi)存的先后次序 它是一種早期的主存擴(kuò)充的方式 Overlays DynamicLoading Routineisnotloadeduntilitiscalled 例程在調(diào)用之前并不執(zhí)行 Bettermemory spaceutilization unusedroutineisneverloaded 更好的內(nèi)存空間利用率 沒有被使用的例程不被載入 Usefulwhenlargeamountsofcodeareneededtohandleinfrequentlyoccurringcases 當(dāng)需要大量的代碼來處理不經(jīng)常發(fā)生的事情時(shí)是非常有用的 Nospecialsupportfromtheoperatingsystemisrequiredimplementedthroughprogramdesign 不需要操作系統(tǒng)的特別支持 通過程序設(shè)計(jì)實(shí)現(xiàn) DynamicLinking Linkingpostponeduntilexecutiontime 鏈接被推遲到執(zhí)行時(shí)期 Smallpieceofcode stub usedtolocatetheappropriatememory residentlibraryroutine 小的代碼片 存根 用來定位合適的保留在內(nèi)存中的庫程序 Stubreplacesitselfwiththeaddressoftheroutine andexecutestheroutine 存根用例程地址來替換自己 以及執(zhí)行例程 Operatingsystemneededtocheckifroutineisinprocesses memoryaddress 操作系統(tǒng)需要檢查例程是否在進(jìn)程的內(nèi)存空間 Swapping Aprocesscanbeswappedtemporarilyoutofmemorytoabackingstore andthenbroughtbackintomemoryforcontinuedexecution 一個(gè)進(jìn)程可以暫時(shí)被交換到內(nèi)存外的一個(gè)備份區(qū) 隨后可以被換回內(nèi)存繼續(xù)執(zhí)行 Backingstore fastdisklargeenoughtoaccommodatecopiesofallmemoryimagesforallusers mustprovidedirectaccesstothesememoryimages 備份區(qū) 是一個(gè)固定的足夠大的可以容納所有用戶內(nèi)存映像的拷貝 可以提供對(duì)這些內(nèi)存映像的直接存取 由操作系統(tǒng)控制 利用外存空間 進(jìn)程交換區(qū) 通過對(duì)進(jìn)程實(shí)體的整體交換 來滿足用戶進(jìn)程的內(nèi)存需要 它的主要特點(diǎn)是打破了進(jìn)程運(yùn)行的駐留性 Swapping Rollout rollin swappingvariantusedforpriority basedschedulingalgorithms lower priorityprocessisswappedoutsohigher priorityprocesscanbeloadedandexecuted 滾入 滾出 交換由于基于優(yōu)先級(jí)的算法而不同 低優(yōu)先級(jí)的進(jìn)程被換出 這樣高優(yōu)先級(jí)的進(jìn)程可以被裝入和執(zhí)行 Majorpartofswaptimeistransfertime totaltransfertimeisdirectlyproportionaltotheamountofmemoryswapped 交換時(shí)間的主要部分是轉(zhuǎn)移時(shí)間 總的轉(zhuǎn)移時(shí)間直接同交換的內(nèi)存的數(shù)量成比例 Modifiedversionsofswappingarefoundonmanysystems i e UNIXandMicrosoftWindows 在許多系統(tǒng)如 UNIX Windows中 可以找到一些被修正過的交換措施 SchematicViewofSwapping ContiguousAllocation Mainmemoryusuallydividedintotwopartitions 主存通常被分為兩部分 Residentoperatingsystem usuallyheldinlowmemorywithinterruptvector 為操作系統(tǒng)保留的部分 通常用中斷矢量保存在內(nèi)存低端 Userprocessesthenheldinhighmemory 用戶進(jìn)程保存在內(nèi)存高端 ContiguousAllocation 連續(xù)分配方式 為一個(gè)程序分配一段連續(xù)的內(nèi)存空間 主要有 單獨(dú)分區(qū)管理方式 多分區(qū)管理方式 是一種可用于多道程序的較簡(jiǎn)單的存儲(chǔ)管理方式 又分為 固定分區(qū)方式可變分區(qū)方式Single partitionallocation 單獨(dú)分區(qū)分配 Relocation registerschemeusedtoprotectuserprocessesfromeachother andfromchangingoperating systemcodeanddata 基址寄存器策略由來保護(hù)用戶進(jìn)程 同其他進(jìn)程和改變的操作系統(tǒng)代碼和數(shù)據(jù)分開 Relocationregistercontainsvalueofsmallestphysicaladdress limitregistercontainsrangeoflogicaladdresses eachlogicaladdressmustbelessthanthelimitregister 基址寄存器包含最小物理地址的值 限長(zhǎng)寄存器包含邏輯地址的范圍 每個(gè)邏輯地址必需比限長(zhǎng)寄存器的值小 ContiguousAllocation 固定分區(qū) FixedPartitioning 分配 固定式分區(qū)是在作業(yè)裝入之前 內(nèi)存就被劃分成若干個(gè)固定大小的連續(xù)分區(qū) 劃分工作可以由系統(tǒng)管理員完成 也可以由操作系統(tǒng)實(shí)現(xiàn) 一旦劃分完成 在系統(tǒng)運(yùn)行期間不再重新劃分 即分區(qū)的個(gè)數(shù)不可變 分區(qū)的大小不可變 所以 固定式分區(qū)又稱為靜態(tài)分區(qū) 劃分分區(qū)的方法如下 分區(qū)大小相等 只適用于多個(gè)相同程序的并發(fā)執(zhí)行 處理多個(gè)類型相同的對(duì)象 缺乏靈活性 分區(qū)大小不等 多個(gè)小分區(qū) 適量的中等分區(qū) 少量的大分區(qū) 根據(jù)程序的大小 分配當(dāng)前空閑的 適當(dāng)大小的分區(qū) 固定分區(qū) 大小相同 固定分區(qū) 多種大小 固定分區(qū) FixedPartitioning 分配 一般將內(nèi)存的用戶區(qū)域劃分成大小不等的分區(qū) 可適應(yīng)不同大小的作業(yè)的需要系統(tǒng)有一張分區(qū)說明表 每個(gè)表目說明一個(gè)分區(qū)的大小 起始地址和是否已分配的使用標(biāo)志分區(qū)說明表和內(nèi)存分配圖如下所示 分區(qū)說明表 內(nèi)存分配圖 固定分區(qū)分配 優(yōu)點(diǎn) 易于實(shí)現(xiàn) 開銷小 缺點(diǎn) 分區(qū)大小固定 內(nèi)碎片分區(qū)總數(shù)固定 限制并發(fā)執(zhí)行的進(jìn)程數(shù)目 采用的數(shù)據(jù)結(jié)構(gòu) 分區(qū)表 記錄分區(qū)的大小和使用情況 ContiguousAllocation Cont Multiple partitionallocation 多分區(qū)分配 Hole blockofavailablememory holesofvarioussizearescatteredthroughoutmemory 分區(qū) 可用的內(nèi)存塊 不同大小的分區(qū)分布在整個(gè)內(nèi)存中 Whenaprocessarrives itisallocatedmemoryfromaholelargeenoughtoaccommodateit 當(dāng)一個(gè)進(jìn)程到來的時(shí)候 它將從一個(gè)足夠容納它分區(qū)中分配內(nèi)存 Operatingsystemmaintainsinformationabout 操作系統(tǒng)包含以下信息 a allocatedpartitions 分配的分區(qū) b freepartitions hole 空的分區(qū) OS process5 process8 process2 OS process5 process2 OS process5 process2 OS process5 process9 process2 process9 process10 空閑分區(qū)的管理 空閑分區(qū)表 前向指針 后向指針 空閑分區(qū)鏈 ContiguousAllocation Cont DynamicStorage AllocationProblem First fit 首先適應(yīng) Allocatethefirstholethatisbigenough 分配最先找到的合適的分區(qū) Best fit 最佳適應(yīng) Allocatethesmallestholethatisbigenough mustsearchentirelist unlessorderedbysize Producesthesmallestleftoverhole 搜索整個(gè)序列 找到適合條件的最小的分區(qū)進(jìn)行分配 Worst fit 最差適應(yīng) Allocatethelargesthole mustalsosearchentierlist Producesthelargestleftoverhole 搜索整個(gè)序列 尋找最大的分區(qū)進(jìn)行分配 Howtosatisfyarequestofsizenfromalistoffreeholes 怎樣從一個(gè)空的分區(qū)序列中滿足一個(gè)申請(qǐng)需要 First fitandbest fitbetterthanworst fitintermsofspeedandstorageutilization 在速度和存儲(chǔ)的利用上 首先適應(yīng)和最佳適應(yīng)要比最差適應(yīng)好 首次適應(yīng)算法 FirstFit 從空閑分區(qū)表的第一個(gè)表目開始查找 把找到的第一個(gè)滿足要求的空閑區(qū)分配給作業(yè) 目的在于減少查找時(shí)間 通常將空閑分區(qū)表 空閑區(qū)鏈 中的空閑分區(qū)要按地址由低到高進(jìn)行排序 特點(diǎn) 分配和釋放的時(shí)間性能較好 較大的空閑分區(qū)可以被保留在內(nèi)存高端 隨著低端分區(qū)不斷劃分而產(chǎn)生較多小分區(qū) 每次分配時(shí)查找時(shí)間開銷會(huì)增大 在系統(tǒng)不斷地分配和回收中 必定會(huì)出現(xiàn)一些不連續(xù)的小的空閑區(qū) 稱為外碎片 雖然可能所有碎片的總和超過某一個(gè)作業(yè)的要求 但是由于不連續(xù)而無法分配 最佳適應(yīng)算法 BestFit 從全部空閑區(qū)中找出能滿足作業(yè)要求的 且最小的空閑分區(qū) 能使碎片盡量小為提高查找效率 空閑分區(qū)表 空閑區(qū)鏈 中的空閑分區(qū)要按從小到大進(jìn)行排序 自表頭開始查找到第一個(gè)滿足要求的自由分區(qū)分配特點(diǎn) 從個(gè)別來看 外碎片較小 但從整體來看 會(huì)形成較多無法利用的碎片 較大的空閑分區(qū)可以被保留 ContiguousAllocation Cont Fragmentation Externalfragmentation 外碎片 totalmemoryspaceexiststosatisfyarequest butitisnotcontiguous 整個(gè)內(nèi)存空間用來滿足一個(gè)請(qǐng)求 但它不是連續(xù)的 Internalfragmentation 內(nèi)碎片 allocatedmemorymaybeslightlylargerthanrequestedmemory thissizedifferenceismemoryinternaltoapartition butnotbeingused 分配的內(nèi)存可能比申請(qǐng)的內(nèi)存大一點(diǎn) 這兩者之間的差別是內(nèi)部不被使用的簇 緊縮Reduceexternalfragmentationbycompaction 通過壓縮來減少外碎片 Shufflememorycontentstoplaceallfreememorytogetherinonelargeblock 把一些小的空閑內(nèi)存結(jié)合成一個(gè)大的塊 Compactionispossibleonlyifrelocationisdynamic andisdoneatexecutiontime 只有重置是動(dòng)態(tài)的時(shí)候 才有可能進(jìn)行壓縮 壓縮在執(zhí)行時(shí)期進(jìn)行 I Oproblem I O問題 LatchjobinmemorywhileitisinvolvedinI O 當(dāng)I O的時(shí)候 把工作鎖定在內(nèi)存中 DoI OonlyintoOSbuffers 只對(duì)操作系統(tǒng)的緩沖區(qū)進(jìn)行I O Fragmentation 實(shí)現(xiàn)緊湊的技術(shù)必須獲得硬件支持 只有具有動(dòng)態(tài)重定位硬件機(jī)構(gòu)的計(jì)算機(jī)系統(tǒng) 才有可能采用動(dòng)態(tài)重定位可變分區(qū)管理技術(shù) 系統(tǒng)的硬件包括重定位寄存器和加法器 Paging 分頁存儲(chǔ)管理是解決存儲(chǔ)碎片的一種方法 Logicaladdressspaceofaprocesscanbenoncontiguous processisallocatedphysicalmemorywheneverthelatterisavailable 進(jìn)程的邏輯地址空間可能是不連續(xù)的 如果有可用的物理內(nèi)存 它將分給進(jìn)程 Dividephysicalmemoryintofixed sizedblockscalledframes sizeispowerof2 between512bytesand8192bytes 把物理內(nèi)存分成大小固定的塊 Dividelogicalmemoryintoblocksofsamesizecalledpages 把邏輯內(nèi)存也分為固定大小的塊 叫做頁 Keeptrackofallfreeframes 保留一個(gè)頁的記錄 Torunaprogramofsizenpages needtofindnfreeframesandloadprogram 運(yùn)行一個(gè)有N頁大小的程序 需要找到N個(gè)空的頁框讀入程序 Setupapagetabletotranslatelogicaltophysicaladdresses 建立一個(gè)頁表 把邏輯地址轉(zhuǎn)換為物理地址 Internalfragmentation 內(nèi)碎片 AddressTranslationScheme AddressgeneratedbyCPUisdividedinto CPU產(chǎn)生的地址被分為 Pagenumber p 頁號(hào) usedasanindexintoapagetablewhichcontainsbaseaddressofeachpageinphysicalmemory 它包含每個(gè)頁在物理內(nèi)存中的基址 用來作為頁表的索引 Pageoffset d 偏移 combinedwithbaseaddresstodefinethephysicalmemoryaddressthatissenttothememoryunit 同基址相結(jié)合 用來確定送入內(nèi)存設(shè)備的物理內(nèi)存地址 Forgivenlogicaladdressspace2mandpagesize2n pagenumber pageoffset p d m n n AddressTranslationArchitecture 地址結(jié)構(gòu) 圖中的地址長(zhǎng)度為32位 允許地址空間的大小最多為1M個(gè)頁 P A L 整除 W AMODL 取余 程序經(jīng)過編譯鏈接后形成邏輯地址 對(duì)某特定機(jī)器其地址結(jié)構(gòu)是一定的 若給定一個(gè)邏輯地址為A 十進(jìn)制 頁面大小為L(zhǎng) 則頁號(hào)P和頁內(nèi)地址W可按下式求得 PagingExample PagingExample ImplementationofPageTable Pagetableiskeptinmainmemory 頁表被保存在主存中 Page tablebaseregister PTBR pointstothepagetable 頁表基址寄存器指向頁表 Page tablelengthregister PRLR indicatessizeofthepagetable 頁表限長(zhǎng)寄存器表明頁表的長(zhǎng)度 Inthisschemeeverydata instructionaccessrequirestwomemoryaccesses Oneforthepagetableandoneforthedata instruction 在這個(gè)機(jī)制中 每一次的數(shù)據(jù) 指令存取需要兩次內(nèi)存存取 一次是存取頁表 一次是存取數(shù)據(jù) Thetwomemoryaccessproblemcanbesolvedbytheuseofaspecialfast lookuphardwarecachecalledassociativeregistersortranslationlook asidebuffers TLBs 通過一個(gè)聯(lián)想寄存器 可以解決兩次存取的問題 ImplementationofPageTable AssociativeRegister Associativeregisters parallelsearch 聯(lián)想寄存器 并行查找 Addresstranslation A A 地址轉(zhuǎn)換 IfA isinassociativeregister getframe out 如果A 在聯(lián)想寄存器中 把頁框 取出來 Otherwisegetframe frompagetableinmemory 否則從內(nèi)存中的頁表中取出頁框 Page Frame EffectiveAccessTime AssociativeLookup timeunit 聯(lián)想寄存器的查找需要時(shí)間 Assumememorycycletimeis1microsecond 假設(shè)內(nèi)存一次存取要1微秒 Hitration percentageoftimesthatapagenumberisfoundintheassociativeregisters rationrelatedtonumberofassociativeregisters 命中率 在聯(lián)想寄存器中找到頁號(hào)的比率 比率與聯(lián)想寄存器的大小有關(guān) Hitratio EffectiveAccessTime EAT 有效存取時(shí)間 EAT 1 2 1 2 EffectiveAccessTime 例如 假設(shè)檢索聯(lián)想存儲(chǔ)器的時(shí)間為20ns 訪問內(nèi)存的時(shí)間為100ns 訪問聯(lián)想存儲(chǔ)器的命中率為85 則CPU存取一個(gè)數(shù)據(jù)的平均時(shí)間 T 0 85 120 0 15 220 135ns 訪問時(shí)間只增加35 如果不引入聯(lián)想存儲(chǔ)器 其訪問將延長(zhǎng)一倍 達(dá)200ns 頁式地址變換 虛地址 邏輯地址 程序地址 以十六進(jìn)制 八進(jìn)制 二進(jìn)制的形式給出將虛地址轉(zhuǎn)換成二進(jìn)制的數(shù) 按頁的大小分離出頁號(hào)和位移量 低位部分是位移量 高位部分是頁號(hào) 虛地址以十進(jìn)制數(shù)給出頁號(hào) 虛地址 頁大小位移量 虛地址mod頁大小以頁號(hào)查頁表 得到對(duì)應(yīng)頁裝入內(nèi)存的塊號(hào)內(nèi)存地址 塊號(hào) 頁大小 位移量 舉例 例1 有一系統(tǒng)采用頁式存儲(chǔ)管理 有一作業(yè)大小是8KB 頁大小為2KB 依次裝入內(nèi)存的第7 9 A 5塊 試將虛地址0AFEH 1ADDH轉(zhuǎn)換成內(nèi)存地址 虛地址0AFEH0000101011111110P 1W 01011111110MR 0100101011111110 4AFEH虛地址1ADDH0001101011011101P 3W 01011011101MR 0010101011011101 2ADDH MemoryProtection Memoryprotectionimplementedbyassociatingprotectionbitwitheachframe 內(nèi)存的保護(hù)由與每個(gè)頁框相連的保護(hù)位來執(zhí)行 Valid invalidbitattachedtoeachentryinthepagetable 有效 無效位附在頁表的每個(gè)表項(xiàng)中 valid indicatesthattheassociatedpageisintheprocess logicaladdressspace andisthusalegalpage 有效 表明相關(guān)的頁在進(jìn)程的邏輯地址空間 以及是一個(gè)合法的頁 invalid indicatesthatthepageisnotintheprocess logicaladdressspace 無效 表明頁不在進(jìn)程的邏輯地址空間中 MemoryProtection Two LevelPage TableScheme 將頁表進(jìn)行分頁 每個(gè)頁面的大小與內(nèi)存物理塊的大小相同 并為它們進(jìn)行編號(hào) 可以離散地將各個(gè)頁面分別存放在不同的物理塊中 為此再建立一張頁表 稱為外層頁表 頁表目錄 即第一級(jí)頁表 其中的每個(gè)表目是存放某個(gè)頁表的物理地址 第二級(jí)才是頁表 其中每個(gè)物理塊上的頁表叫做頁表分頁 其中的每個(gè)表目所存放的才是頁的物理塊號(hào) Two LevelPage TableScheme Two LevelPagingExample Alogicaladdress on32 bitmachinewith4Kpagesize isdividedinto 一個(gè)邏輯地址被分為 apagenumberconsistingof20bits 一個(gè)20位的頁號(hào) apageoffsetconsistingof12bits 一個(gè)12位的偏移 Sincethepagetableispaged thepagenumberisfurtherdividedinto 頁表頁被分為 a10 bitpagenumber 一個(gè)10位的頁號(hào) a10 bitpageoffset 一個(gè)10位的偏移 Thus alogicaladdressisasfollows 因此 一個(gè)邏輯地址表示如下 wherepiisanindexintotheouterpagetable andp2isthedisplacementwithinthepageoftheouterpagetable pagenumber pageoffset pi p2 d 10 10 12 Address TranslationScheme Address translationschemeforatwo level32 bitpagingarchitecture 一個(gè)兩級(jí)32位分頁結(jié)構(gòu)的地址轉(zhuǎn)換機(jī)制 MultilevelPagingandPerformance Sinceeachlevelisstoredasaseparatetableinmemory coveringalogicaladdresstoaphysicalonemaytakefourmemoryaccesses 由于每一級(jí)都分開的以表的形式存儲(chǔ)在內(nèi)存中 把一個(gè)邏輯地址轉(zhuǎn)換為一個(gè)物理地址可能要進(jìn)行4次內(nèi)存存取 Eventhoughtimeneededforonememoryaccessisquintupled cachingpermitsperformancetoremainreasonable 盡管每次內(nèi)存存取的時(shí)間是很大的 高速緩存使執(zhí)行的時(shí)間還是可以接受的 Cachehitrateof98percentyields 如果緩存的命中率有98 則 effectiveaccesstime 0 98x120 0 02x520 128nanoseconds whichisonlya28percentslowdowninmemoryaccesstime 這只把內(nèi)存存取時(shí)間降低了28 InvertedPageTable Oneentryforeachrealpageofmemory 一個(gè)內(nèi)存中頁的表項(xiàng) Entryconsistsofthevirtualaddressofthepagestoredinthatrealmemorylocation withinformationabouttheprocessthatownsthatpage 表項(xiàng)包含真正內(nèi)存地址的頁的虛擬地址 它包括擁有這個(gè)頁的進(jìn)程的信息 Decreasesmemoryneededtostoreeachpagetable butincreasestimeneededtosearchthetablewhenapagereferenceoccurs 減少內(nèi)存需要儲(chǔ)存每個(gè)頁表 但是當(dāng)訪問一個(gè)頁時(shí) 尋找頁表需要增加時(shí)間 Usehashtabletolimitthesearchtoone oratmostafew page tableentries 使用哈希表來減少搜索 InvertedPageTableArchitecture SharedPages Sharedcode 共享代碼 Onecopyofread only reentrant codesharedamongprocesses i e texteditors compilers windowsystems 一個(gè)只讀 可再入 代碼可由進(jìn)程共享 Sharedcodemustappearinsamelocationinthelogicaladdressspaceofallprocesses 共享代碼出現(xiàn)在所有進(jìn)程的邏輯地址空間的相同位置 Privatecodeanddata 私有代碼和數(shù)據(jù) Eachprocesskeepsaseparatecopyofthecodeanddata 每個(gè)進(jìn)程保留一個(gè)代碼和數(shù)據(jù)的私有拷貝 Thepagesfortheprivatecodeanddatacanappearanywhereinthelogicaladdressspace 私有代碼和數(shù)據(jù)的頁可以出現(xiàn)在邏輯地址空間的任何地方 SharedPagesExample Segmentation Memory managementschemethatsupportsuserviewofmemory 內(nèi)存管理機(jī)制支持用戶觀點(diǎn)的內(nèi)存 Aprogramisacollectionofsegments Asegmentisalogicalunitsuchas 一個(gè)程序是一些段的集合 一個(gè)段是一個(gè)邏輯單位 如 mainprogram procedure function localvariables globalvariables commonblock stack symboltable arrays LogicalViewofSegmentation userspace physicalmemoryspace SegmentationHardware SegmentationArchitecture Logicaladdressconsistsofatwotuple 一個(gè)邏輯地址是兩個(gè)向量的集合 Segmenttable mapstwo dimensionalphysicaladdresses eachtableentryhas 段表 映射二維物理地址 每個(gè)表項(xiàng)包括 base containsthestartingphysicaladdresswherethesegmentsresideinmemory 基址 包括內(nèi)存中段物理地址的起始地址 limit specifiesthelengthofthesegment 限長(zhǎng) 指定段的長(zhǎng)度 Segment tablebaseregister STBR pointstothesegmenttable slocationinmemory 段表基址寄存器指向段表在內(nèi)存中的地址 Segment tablelengthregister STLR indicatesnumberofsegmentsusedbyaprogram 段表限長(zhǎng)寄存器表明被一個(gè)程序所使用的段的數(shù)目 segmentnumbersislegalifs STLR SegmentationArchitecture Cont Relocation 重定位 dynamic 動(dòng)態(tài) bysegmenttable 由段表來執(zhí)行 Sharing 共享 sharedsegments 共享的段 samesegmentnumber 同樣的段號(hào) Allocation 分配 firstfit bestfit 首先 最佳適配 externalfragmentation 外碎片 SegmentationArchitecture Cont Protection Witheachentryinsegmenttableassociate 保護(hù) 每個(gè)段表的表項(xiàng)有 validationbit 有效位 0 illegalsegmentread write executeprivileges 讀 寫 執(zhí)行權(quán)利 Protectionbitsassociatedwithsegments codesharingoccursatsegmentlevel 保護(hù)位同段相聯(lián)系 在段的級(jí)別進(jìn)行代碼共享 Sincesegmentsvaryinlength memoryallocationisadynamicstorage allocationproblem 由
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東外語外貿(mào)大學(xué)南國商學(xué)院《建筑工程事故分析與加固》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東省外語藝術(shù)職業(yè)學(xué)院《電力系統(tǒng)保護(hù)與控制》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024-2025學(xué)年北京延慶區(qū)八年級(jí)初二(上)期末語文試卷(含答案)
- 廣東茂名健康職業(yè)學(xué)院《教師書寫》2023-2024學(xué)年第一學(xué)期期末試卷
- 三年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)匯編及答案
- 小學(xué)二年級(jí)家長(zhǎng)會(huì)教師發(fā)言稿范文五篇
- 【學(xué)練考】2021-2022學(xué)年高一人教版物理必修2練習(xí)冊(cè):模塊終結(jié)測(cè)評(píng)-
- 2025年人教版八年級(jí)數(shù)學(xué)寒假復(fù)習(xí) 專題01 三角形(13個(gè)知識(shí)點(diǎn)回顧+9大題型歸納+過關(guān)檢測(cè))
- 【走向高考】2021高考政治二輪專題復(fù)習(xí)限時(shí)訓(xùn)練:專題十-哲學(xué)思想與唯物論、認(rèn)識(shí)論
- 【同步參考】2020高中語文人教版必修三配套練習(xí):第4單元-單元檢測(cè)
- 2025年國家圖書館招聘筆試參考題庫含答案解析
- 機(jī)器人課程課程設(shè)計(jì)
- 南充市市級(jí)事業(yè)單位2024年公招人員擬聘人員歷年管理單位遴選500模擬題附帶答案詳解
- 現(xiàn)代學(xué)徒制課題:數(shù)字化轉(zhuǎn)型背景下新型師徒關(guān)系構(gòu)建研究(附:研究思路模板、可修改技術(shù)路線圖)
- 9.2溶解度(第2課時(shí))-2024-2025學(xué)年九年級(jí)化學(xué)人教版(2024)下冊(cè)
- 安全知識(shí)考試題庫500題(含答案)
- 2024-2025學(xué)年上學(xué)期南京小學(xué)數(shù)學(xué)六年級(jí)期末模擬試卷
- 安徽省合肥市包河區(qū)2023-2024學(xué)年三年級(jí)上學(xué)期語文期末試卷
- 河北省保定市定興縣2023-2024學(xué)年一年級(jí)上學(xué)期期末調(diào)研數(shù)學(xué)試題(含答案)
- 2024版食源性疾病培訓(xùn)完整課件
- 2025年中國蛋糕行業(yè)市場(chǎng)規(guī)模及發(fā)展前景研究報(bào)告(智研咨詢發(fā)布)
評(píng)論
0/150
提交評(píng)論