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

正文內(nèi)容

計算機(jī)虛擬頁式存儲管理系統(tǒng)的仿真實現(xiàn)(編輯修改稿)

2024-12-22 16:01 本頁面
 

【文章內(nèi)容簡介】 進(jìn)程 CLOCK 方法的駐留集狀態(tài) setFifoStayPage PCB pcb void 獲得當(dāng)前進(jìn)程 FIFO 方法的駐留集狀態(tài) clearall 無 void 清空全部界面 ( 7)完成命 中率的計算 以評價模擬系統(tǒng)的優(yōu)劣。 3 裸機(jī) 硬件 部件仿真設(shè)計 3. 1 存儲空間 的設(shè)計與抽象 抽象并設(shè)計存儲空間模塊,采用將程序指令存儲和數(shù)據(jù)存儲分開的 哈弗 結(jié)構(gòu),具體分為內(nèi)存抽 象與外存抽象。 存儲空間按塊劃分,塊與頁大小相同,均為 32B。 內(nèi)存 1024B 即 32 塊,外存 2048B 即 64 塊。 9 物理地址 9 位, 4位頁號, 5位頁內(nèi)偏移,可訪問 512B 大小 的空間 ; 邏輯地址 10 位, 5位頁號, 5 位頁內(nèi)偏移 ,可訪問 1024B 大小的空間 。 3. 2 存儲管理部件 MMU 的抽象與設(shè)計 抽象并設(shè)計存儲管理部件 MMU 模塊, 以對象類的形式模擬 存儲管理部件 MMU的結(jié)構(gòu)和功能。 存放邏輯地址與物理地址的寄存器 等結(jié)構(gòu)部件以靜態(tài)屬性抽象模擬。 地址分解、地址轉(zhuǎn)換、發(fā)出異常與異常處理功能 等功能以動態(tài)成員函數(shù)抽象模擬 。 3. 3 中央處理器 CPU 的抽象與設(shè)計 抽象并設(shè)計 中央處理器 CPU 模塊, 以對象類的形式模擬中央處理器 CPU的結(jié)構(gòu)和功能。 程序狀態(tài)字 PSW ; 頁表基址寄存器 PTBR; 指令計數(shù)器 PC; 指令寄存器 IR; 快表 TLB等寄存器 部件都以靜態(tài)屬性抽象模擬 。 進(jìn)程調(diào)度時進(jìn)行進(jìn)程上下文切換以保護(hù) CPU 現(xiàn)場信息 ; 將邏輯地址傳送給存儲管理部件 MMU; 指 令的運行等功能以動態(tài)成員函數(shù)抽象模擬 。 4 通用數(shù)據(jù)結(jié)構(gòu)設(shè)計 4. 1 后備作業(yè)隊列抽象設(shè)計 4. 1. 1 數(shù)據(jù)結(jié)構(gòu)設(shè)計 typedef struct{//后備作業(yè)隊列,數(shù)據(jù)結(jié)構(gòu)用隊列表示 int base[10]。//隊列基地址 int rear。//隊列尾指針 int front。//隊列頭指針 }JQueue。 4. 1. 2 基本操作 void EnJob(int job){//進(jìn)后備作業(yè)隊列 作業(yè)進(jìn)隊列; 尾指針 +1; } int DeJob(){//出后備作業(yè)隊列 if(隊列為空,作業(yè)執(zhí)行結(jié)束 ){ 返回 1; }else{ 作業(yè)出隊列; 頭指針 +1; 為作業(yè)分配外存 ; 返回 0; } } void InitJob(){//初始化后備作業(yè)隊列 隊列指針初始化 ; while(作業(yè)數(shù)不為 0) 10 { 作業(yè)號 =生成隨機(jī)數(shù) ; 作業(yè)數(shù) =作業(yè)數(shù) 1; } } 4. 2 進(jìn)程狀態(tài)隊列抽象設(shè)計 4. 2. 1 數(shù)據(jù)結(jié)構(gòu)設(shè)計 typedef struct{//進(jìn)程狀態(tài)隊列 PCB base[100]。//隊列元素為進(jìn)程控 制塊 int rear。//隊列尾指針 int front。//隊列頭指針 }PQueue。 4. 2. 2 基本操作 int ReadyQueueisEmpty(){//判斷就緒隊列是否為空 if( 隊列頭指針 == 隊列尾指針 ){ 返回 1; } 返回 0; } int WaitQueueisEmpty(){//判斷等待隊列是否為空 if( 隊列頭指針 == 隊列尾指針 ){ 返回 1; } 返回 0; } int EnReadyQueue(PCB qpcb){//表示進(jìn)程已獲 得內(nèi)存等資源,進(jìn)入就緒態(tài) 進(jìn)程進(jìn)入就緒隊列; 隊列尾指針 +1; } PCB DeReadyQueue(){//出就緒隊列,表示進(jìn)程獲得處理器,進(jìn)入運行態(tài) if(就緒隊列不為空 ){ 進(jìn)程出隊列; 隊列頭指針 +1; }else{ 返回空; } } int ReadyQueueLength()。//就緒隊列長度 int EnWaitQueue(PCB qpcb){ //表示進(jìn)程出現(xiàn)等待事件,被阻塞進(jìn)入等待態(tài) 進(jìn)程進(jìn)入等待隊列; 隊列尾指針 +1; } PCB DeWaitQueue(){//出等待隊列,表示等待事件結(jié)束 if(等待隊列不為空 ){ 進(jìn)程出隊列; 11 隊列頭指針 +1; }else{ 返回空; } } 4. 3 快表抽象設(shè)計 4. 3. 1 數(shù)據(jù)結(jié)構(gòu)設(shè)計 typedef struct TNode{//頁號和頁框號的對應(yīng)關(guān)系的數(shù)據(jù)結(jié)構(gòu) int tpageno。//頁號 int trealpageno。//頁框號 }TNode。 typedef struct{//快表隊列 TNode base[4]。//快表大小是 3,數(shù)據(jù)結(jié)構(gòu)為循環(huán)隊列,所以空出一位 int rear。//隊列尾指針 int front。//隊列頭指針 }TQueue。 4. 3. 2 基本操作 void InitTlb(){//初始化快表 快表頭指針 =快表尾指針 =0; } int EnTlb(int epageno,int erealpageno){//進(jìn)快表 生成新的快表項; 快表項進(jìn)快表; 快表尾指針 +1; } int DeTlb(){//出快表 if(快表為空 ){ 返回 1; }else{ 返回表頭快表項的物理頁號; } } int TlbisFull(){//判 斷快表是否滿 if(尾指針 +1==頭指針 ){ 返回 1; } 返回 0; } void ClearTlb(){//清空快表 尾指針 =頭指針 =0; } int VisitTlb(int pageno)。//遍歷快表 int TlbSize(){//快表長度 返回 尾指針 頭指針; } 12 4. 4 頁表項抽象設(shè)計 4. 4. 1 數(shù)據(jù)結(jié)構(gòu)設(shè)計 typedef struct Page{//頁表項,大小為 2B int iPageNo。//頁號 int iRealPageNo。//頁框號 int iInMemory。//駐留標(biāo)志位 int iHavenUse。//引用位 int iChange。//修改位 int iProtect。//保護(hù)位 }Page; 4. 4. 2 基本操作 void setPage(){//進(jìn)程頁表 { 生成新頁表; 設(shè)置 頁號 ; 設(shè)置 駐留位 、 引用位 、 修改位 、 保護(hù)位 ; 對應(yīng) 頁框號 ; } void setPageInMemory(int pageno,int n){//設(shè)置 頁面的駐留位 遍 歷頁表; if(頁號相同) { 該頁面駐留位置 n。 } } void setPageHavenUse(int pageno,int n)。//設(shè)置 頁面的引用位 int getPageInMemory(int pageno){ //根據(jù)頁號獲得進(jìn)程頁表 駐留位 遍歷頁表; if(遍歷未結(jié)束 amp。amp。 頁號相同 ){ 駐留位置 n; 返回 0; } if(遍歷結(jié)束 amp。amp。 不存在頁號相同 ){ 返回 1; } } int getPageHavenUse(int pageno)。//根據(jù)頁號獲得進(jìn)程頁表 引用 位 int getPhyPageNo(int pageno)。//根據(jù)頁號獲得對應(yīng)物理頁號 4. 5 外頁表項抽象設(shè)計 4. 5. 1 數(shù)據(jù)結(jié)構(gòu)設(shè)計 typedef struct OutPage{//外頁表項,大小為 2B int iOutPageNo。//頁號 int iOutRealPageNo。//頁框號 int phyAddr。//物理地址 }OutPage。 13 4. 5. 2 基本操作 void setOutPage(){//進(jìn)程外頁表 生成新頁表; 設(shè)置 頁號 ; 對應(yīng)物 理地址; } 4. 6 頁表基址寄存器 抽象設(shè)計 4. 6. 1 數(shù)據(jù)結(jié)構(gòu)設(shè)計 typedef struct PTBR{//頁表基地址寄存器抽象 int iF。//頁表起始地址 int iM。//頁表長度 }PTBR。 4. 6. 2 基本操作 void setPtbr(){//生成頁表基地址 設(shè)置頁表基地址; 設(shè)置頁表長度; } int getiF(){//獲得進(jìn)程頁表基址 返回頁表基址; } 4. 7 程序狀態(tài)字 抽象設(shè)計 4. 7. 1 數(shù)據(jù)結(jié)構(gòu)設(shè)計 typedef struct PSW{//程 序狀態(tài)字抽象 int iNumber。//當(dāng)前運行指令編號 int IF。//中斷允許標(biāo)志,為 1 允許響應(yīng)中斷,否則關(guān)中斷 int iType。//此時運行狀態(tài), 0表示用戶態(tài) ,1 表示內(nèi)核態(tài) }PSW。 4. 7. 2 基本操作 void setPSW(PSW psw){//設(shè)置程序狀態(tài)字,用于進(jìn)程上下文切換 設(shè)置 當(dāng)前運行指令編號 設(shè)置 中斷允許標(biāo)志,為 1 允許響應(yīng)中斷,否則關(guān)中斷 設(shè)置 此時運行狀態(tài), 0表示用戶態(tài) ,1 表示內(nèi)核態(tài) } 4. 8 駐留集抽象設(shè)計 4. 8. 1 數(shù)據(jù)結(jié)構(gòu)設(shè)計 typedef struct{//用于 CLOCK 算法的駐留集,數(shù)據(jù)結(jié)構(gòu)用循環(huán)隊列表示 int ptr。//當(dāng)前指針指向的位置 int front。//隊首標(biāo)志 int rear。//隊尾標(biāo)志 int *base。//隊列元素 14 }CycleQueue。 typedef struct{//用于 FIFO 的駐留集,數(shù)據(jù)結(jié)構(gòu)用順序隊列表示 int *base。//駐留集基地址 int rear。//駐留集尾指針 int front。//駐留集頭指 針 }MQueue。 4. 8. 2 基本操作 int fStaySize(){//獲得 駐留集當(dāng)前長度 返回 尾指針 頭指針; } int enCycleQueue(int pageno){//進(jìn)駐留集 if(駐留集已經(jīng)滿 ){ 返回 1; }else{ 新頁號進(jìn)駐留集; 尾指針 +1; } } int deCycleQueue(){//出駐留集 if(駐留集已經(jīng)空 ){ 返回 1; }else{ 出駐留集; 頭指針 +1; } } 4. 9 內(nèi)存抽象設(shè)計 4. 9. 1 數(shù)據(jù)結(jié)構(gòu)設(shè)計 typedef struct Memory{//內(nèi)存空間抽象 Page page[256]。//8 頁大小的頁表區(qū) ,一頁 32B,共 256B Mpage mpage[768]。//24 頁大小的空閑區(qū) ,共 768B }Memory。//共 32 頁 ,1024B 15 4. 9. 2 基本操作 void setPCBSpace(int addr, int pid){ //為進(jìn)程分配內(nèi)存空間 if(內(nèi)存空間未占用 ){ 進(jìn)程占用內(nèi)存空間; 位示圖置 1; } } void freePCBSpace(int addr,int pid){//為進(jìn)程釋放內(nèi)存空間 進(jìn)程釋放內(nèi)存空間; 位示圖置 0; } 4. 10 外存抽象設(shè)計 4. 10. 1 數(shù)據(jù)結(jié)構(gòu)設(shè)計 typedef struct Disk{//外存空間抽象 OutPage doutpage[512]。//16 頁大小的頁表區(qū) ,一頁 32B,共 512B Mpage mpage[1536]。//48 頁大小的空閑區(qū) ,共 1536B }Disk。//共 64頁 ,2048B 4. 10. 2 基本操作 void setJOBSpace(int addr){//為作業(yè)分配外存 if(外存空間未占用 ){ 作業(yè)占用外存空間; 位示圖法置 1; } } void freeJOBSpace(int addr){//為作業(yè)釋放外存 作業(yè)釋放內(nèi)存空間; 位示圖置 0; 5 軟件系統(tǒng)設(shè)計 5. 1 系統(tǒng) 結(jié)構(gòu) 5. 1. 1 底層硬件抽象 抽象設(shè)計中央處理器 CPU 模塊、存儲管理部件 MMU 模塊、內(nèi)存儲器與外存儲器模塊。
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1