freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

計算機虛擬頁式存儲管理系統(tǒng)的仿真實現(xiàn)(文件)

2024-12-10 16:01 上一頁面

下一頁面
 

【正文】 執(zhí)行和處理, 但讓進程全部信息駐留于內(nèi)存是對內(nèi)存資源的極大浪費 ,因此 利用“部分裝入,部分替換”來實現(xiàn)存儲空間在邏輯上的擴充是提高內(nèi)存利用率的有效手段 , 虛擬頁式存儲管理 是將程序信息副本存放在外存中,當它被調(diào)度投入運行時僅裝入當前使用頁面;進程執(zhí)行過程中訪問到不在內(nèi)存的頁面時,再由系統(tǒng)自動調(diào)入 ,根據(jù)頁面替換算法選擇淘汰頁面 。 關(guān)鍵詞: 虛擬頁式存儲 管理 ; 內(nèi)存; 外存; 頁面替換算法 ; MMU; c++;可視化 The Computer Simulation of Virtual Page Storage Management System Student majoring in *** *** Tutor *** Abstract: .Any program or data must occupy memory space can be implemented and processing, but let all of the information process resides in the memory is to the memory resources waste, therefore part of the load, partial substitution is used to realize the storage space on the logic of expansion is an effective method for improving memory utilization, virtual storage management page type is the program a copy of the information stored in CRT, when it is dispatching operation use only into the current page。 Memory。主要包括: ( 1)模擬作業(yè) 執(zhí)行與調(diào)度,進程創(chuàng)建與終止 ; ( 2)模擬進程調(diào)度與進程上下文切換; ( 3) 實現(xiàn) 硬件頁表基址寄存器 與快表 的管理與訪問 ; ( 4)仿真實現(xiàn)存儲管理部件 MMU; ( 5) 仿真實現(xiàn) 頁表、外頁表并對其進行管理與訪問; ( 6)處理缺頁異常,按照替換算法選擇淘汰頁面; ( 7)實現(xiàn)對內(nèi)存與外存的抽象設計; ( 8)內(nèi)存與外存占用情況的可視化; ( 9)進程調(diào)度與頁面替換過程可視化 。但是進程全部信息駐留于內(nèi)存是對內(nèi)存資源的極大浪費,因此利用“部分裝入,部分替換”來實現(xiàn)存儲空間在 邏輯上的擴充是提高內(nèi)存利用率的有效手段。將這些硬件設備抽象成代碼實現(xiàn)不僅僅需要對 這些硬件的屬性結(jié)構(gòu)有全面的了解,還需要對他們的功能做出動態(tài)的仿真 。 2 設計思路與 完成 功能說明 2. 1 課程設計思路 2. 1. 1 模擬 多 進程 并發(fā)環(huán)境 首先從高級調(diào)度開始, 作業(yè)生成后 從后備作業(yè)隊列根據(jù)相關(guān)調(diào)度策略 (以先來先服務為例) 獲取作業(yè),接著 動態(tài) 創(chuàng)建 作業(yè)所需一系列進程,即從 PCB 池 中 申請空白 PCB,對其初始化并分配內(nèi)存空間 等一系列資源 。進程 從外頁表獲得該 缺頁的 信息后, 如果駐留集未滿則直接加入該頁面對應的邏輯頁號,如果駐留集滿則采用頁面 替換策略選擇淘汰相應頁面 對應的邏輯頁號 ,并加入新頁面 對應的邏輯頁號 ,同時將新頁面的 邏輯 頁號 與物理頁號的對應關(guān)系 加入 進程快表 信息 。 2. 1. 2 頁面訪問請求 與異常處理 頁面訪問請求 過程如下: ( 1) MMU 接收 CPU 傳送來的邏輯地址并按照頁面大小把它從某位起分解成兩部分:頁號和頁內(nèi)偏移; ( 2) 以頁號為索引快速搜索快表 TLB; ( 3) 如果命中,立即送出頁框號,并與頁內(nèi)偏移拼接成物理地址; ( 4) 如果不命中,由硬件以頁號為索引搜索頁表,頁表基址由硬件頁表基址寄存器指出; ( 5) 如果頁表被命中,說明訪問頁面已經(jīng)在內(nèi)存中,可送出頁框號,并與頁內(nèi)偏移拼接成物理地址,同時要把這個頁面和頁框信息裝入快表 TLB,以備再次訪問。 實現(xiàn)進程上下文切換,模擬進程指令的執(zhí)行與進程對頁面訪問請求的生成,實現(xiàn)對快表和 頁表基址寄存器等硬件寄存器的訪問與管理,其中,快表按照 FIFO 算法進行表項替換; 函數(shù)聲明 參數(shù) 返回值 函數(shù)功能 setPCB PCB pcb void 設置進程控制塊,表示該進程正在運行 setPSW PSW psw void 設置程序狀態(tài)字,用于進程上下文切換 setPtbr PTBR ptbr void 設置進程的頁表基址,用于進程上下文切換 setTLB TQueue ptlb void 置快表內(nèi)容,用于進程上下文切換 setPC int pc void 設置指令計數(shù)器 setIR int ir void 設置當前指令 getIR 無 int 獲得當前指令邏輯地址 InitTlb 無 void 初始化快表 ClearTlb 無 void 清空快表 ( 2)抽象并設計 MMU 模塊,實現(xiàn)對邏輯地址的分解、對快表與慢表的搜索、發(fā)出缺頁異常信號,并調(diào)用相應 異常 處理模塊完成對缺頁異常的處理,最后輸出物理地址; 函數(shù)聲明 參數(shù) 返回值 函數(shù)功能 setLogicAddr 無 void 獲得邏輯地址 setPageNoTemp 無 void 獲得頁號 setOffsetAddr 無 void 獲得偏移地址 setCPU CPU cpu void 獲得當前 CPU 狀態(tài) setPhysicAddr 無 void 獲得物理地址 CutLogicAddr 無 void 分解邏輯地址,頁號 3位,頁內(nèi)偏移 5 位 ( 3)抽象并設計 PCB 模塊與 PCBPOOL 模塊,設計后備作業(yè)隊列、進程等待隊列、就緒隊列,實現(xiàn)作業(yè)的生成、調(diào)度、執(zhí)行與終止,以及在作業(yè)執(zhí)行過程中,進程的創(chuàng)建、調(diào)度與終止,作業(yè)和進程均按照先來先服務算法進行調(diào)度 ,在進程調(diào)度時需要保護 CPU現(xiàn)場信息,以保證進程能夠在自己的運行環(huán)境下運行 ; 函數(shù)聲明 參數(shù) 返回值 函數(shù)功能 CreatePCB 無 int 申請一個空白 PCB,分配內(nèi)存并初始化 FreePCB PCB fpcb int 釋放 PCB BlockCourse PCB bpcb int 進程阻塞原語 WakeCourse PCB amp。 存儲空間按塊劃分,塊與頁大小相同,均為 32B。 存放邏輯地址與物理地址的寄存器 等結(jié)構(gòu)部件以靜態(tài)屬性抽象模擬。 進程調(diào)度時進行進程上下文切換以保護 CPU 現(xiàn)場信息 ; 將邏輯地址傳送給存儲管理部件 MMU; 指 令的運行等功能以動態(tài)成員函數(shù)抽象模擬 。//隊列頭指針 }JQueue。//隊列頭指針 }PQueue。//頁框號 }TNode。//隊列頭指針 }TQueue。//頁框號 int iInMemory。//保護位 }Page; 4. 4. 2 基本操作 void setPage(){//進程頁表 { 生成新頁表; 設置 頁號 ; 設置 駐留位 、 引用位 、 修改位 、 保護位 ; 對應 頁框號 ; } void setPageInMemory(int pageno,int n){//設置 頁面的駐留位 遍 歷頁表; if(頁號相同) { 該頁面駐留位置 n。 頁號相同 ){ 駐留位置 n; 返回 0; } if(遍歷結(jié)束 amp。//根據(jù)頁號獲得對應物理頁號 4. 5 外頁表項抽象設計 4. 5. 1 數(shù)據(jù)結(jié)構(gòu)設計 typedef struct OutPage{//外頁表項,大小為 2B int iOutPageNo。 13 4. 5. 2 基本操作 void setOutPage(){//進程外頁表 生成新頁表; 設置 頁號 ; 對應物 理地址; } 4. 6 頁表基址寄存器 抽象設計 4. 6. 1 數(shù)據(jù)結(jié)構(gòu)設計 typedef struct PTBR{//頁表基地址寄存器抽象 int iF。//當前運行指令編號 int IF。//當前指針指向的位置 int front。 typedef struct{//用于 FIFO 的駐留集,數(shù)據(jù)結(jié)構(gòu)用順序隊列表示 int *base。 4. 8. 2 基本操作 int fStaySize(){//獲得 駐留集當前長度 返回 尾指針 頭指針; } int enCycleQueue(int pageno){//進駐留集 if(駐留集已經(jīng)滿 ){ 返回 1; }else{ 新頁號進駐留集; 尾指針 +1; } } int deCycleQueue(){//出駐留集 if(駐留集已經(jīng)空 ){ 返回 1; }else{ 出駐留集; 頭指針 +1; } } 4. 9 內(nèi)存抽象設計 4. 9. 1 數(shù)據(jù)結(jié)構(gòu)設計 typedef struct Memory{//內(nèi)存空間抽象 Page page[256]。//16 頁大小的頁表區(qū) ,一頁 32B,共 512B Mpage mpage[1536]。在作業(yè)執(zhí)行過程中由系統(tǒng)向 PCB 池申請空間,創(chuàng)建進程, 初始化進程的指令與頁表等信息, 當進程獲取所需資源后進入就緒隊列。缺頁異常處理中在從外存獲取邏輯頁號與物理頁號的對應關(guān)系后,不僅要加入慢表,也要加入快表,還涉及到頁表項的標 志位的更改。為方便整合程序, MMU 模塊將引用將異常處理程序,完成對頁面的換入換出。寫入文檔和圖形化界面的代碼應當嵌入進程調(diào)度和頁面替換的代碼中。 因此, 將相關(guān)功能整合在抽象模塊中,以方便使用;對代碼盡可能的實現(xiàn)復用,減少代碼冗余的現(xiàn)象;劃分各模塊功能,并對其有清楚的認識,在整合代碼時按照功能進行組合與調(diào)試。//進程置新建態(tài) ()。//生成指令邏輯地址 thisEnReadyQueue(ppcb)。//進程控制塊地址 } void memory::setPCBpageSpace(int iF)//為進程分配內(nèi)存空間 { for(int i=iF。wpcb)//進程喚醒原語 { int flag=1。//進就緒隊列 return flag。//設置頁表基址寄存器 thisClearTlb()。//快表頭指針和尾指針置 0 } int PCB::EnTlb(int epageno,int erealpageno)//進快表 { if((this+1)%thisctlbSize==this) return 0。 this[this]=temp。 int temp=this[this].tpageno。//獲得當前正在運行的 PCB 狀態(tài) void clearPage()。//獲得當前進程 LRU 方法的駐留集狀態(tài) void clearStayPage()。 this=(this+1)%100。 } 6. 1. 2 進程喚醒原語 PCB pcbpool::DeWaitQueue()//出等待隊列,表示等 待事件結(jié)束 { PCB qpcb=this[this]。wpcb)//進程喚醒原語 { int flag=1。//進就緒隊列 return flag。//設置頁表基 址寄存器 thisClearTlb()。 } void CPU::setPSW(PSW psw)//設置程序狀態(tài)字,用于進程上下文切換 { thiscpsw=psw。//主面板 QGridLayout *rightLayout=new QGridLayout。//左下面板 QGridLayout *leftdownupLayout=new QGridLayout。//設置布局 leftdownLayoutaddLayout(leftdowndownLayout)。 rightLayoutaddWidget(thispageLabel,0,0)。//設置布局 thisresize(1000,500)。在 PSW 寄存器組中設置當前運行指令編號、中斷允許標志、運行狀態(tài)三項內(nèi)容,以確??梢詫?現(xiàn)相應的功能。 根據(jù)設計,抽象模塊主要分為: CPU、 PCB、 MMU、 PCB 池、存儲空間。 31 ②設計之初的思路為盡可能的將功能細化,使每個函數(shù)實現(xiàn)簡單的功能,但實際的代碼編寫無法完全達到這一要求,導致在模塊組合時產(chǎn)生混亂。 ( 5)其他問題 ① 代碼可重用性不是很強; ② 在硬件設計時只涉及到比較重要的模塊,比如 CPU模塊只抽象出程序狀態(tài)字 PSW 、頁表基址寄存器 PTBR、指令計數(shù)器 PC、指令寄存器 IR、快表 TLB 等寄存器,沒有將 CPU模塊
點擊復制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1