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

正文內容

計算機虛擬頁式存儲管理系統(tǒng)的仿真實現(xiàn)(專業(yè)版)

2025-01-11 16:01上一頁面

下一頁面
  

【正文】 在停課周,聽取了助教的建議,我又在程序原有的基礎上實現(xiàn) 了三個頁面替換算法算法的并發(fā)環(huán)境,這是本次課程設計最大的難點。 CPU 內存放當前運行的 PCB 的信息,以及實現(xiàn)對指令的操作; PCB 直接代表進程,存放進程的信息; MMU進行虛存管理,包括地址轉換與發(fā)出異常信息; PCB 池初始化 PCB 分配的內存空間,以及釋放 PCB 占用的空間。 leftupLayoutaddWidget(thisproIdLabel,0,0)。//清空快表 thissetTLB(this)。 return 1。//新節(jié)點進入快表 this=(this+1)%thisctlbSize。 thisDeWaitQueue()。 17 5. 1. 4 系統(tǒng)結構圖 圖 系統(tǒng) 結構 圖 18 5. 2 系統(tǒng)類圖與順序圖 5. 2. 1 系 統(tǒng)類圖 圖 系統(tǒng)類圖 19 5. 2. 2 系統(tǒng)順序圖 J O BP C B P O O L P C B M M UM E M O R Y占 用 外 存創(chuàng) 建 進 程初 始 化 進 程申 請 空 間申 請 資 源進 程 就 緒頁 面 訪 問 請 求缺 頁 異 常 處 理頁 面 調 度頁 面 替 換喚 醒 進 程阻 塞 進 程釋 放 進 程釋 放 資 源資 源 已 釋 放釋 放 資 源作 業(yè) 結 束 圖 系統(tǒng)順序圖 20 5. 3 功能 實現(xiàn)流程 5. 3. 1 實現(xiàn)作業(yè)生成、進程創(chuàng)建與資源分配 ( 1)對應類 JOB、 PCBPOOL、 PCB、 MEMORY ( 2)對應函數(shù) void job::InitJob()//初始化后備作業(yè)隊列 { //隊列指針初始化 while(作業(yè)數(shù)不為 0) { 作業(yè)號 =生成隨機數(shù) ; 作業(yè)數(shù) =作業(yè)數(shù) 1; } } int pcbpool::CreatePCB()//申請一個空白 PCB,分配內存并初始化 { PCB ppcb。如果進程獲得 CPU 資源則進入運行態(tài) ,這涉及到進程上下文切換,將 CPU 的快表、頁表基址寄存 16 器、程序狀態(tài)字等寄存器的內容都切換成當前運行進程的狀態(tài)。//隊首標志 int rear。amp。 typedef struct{//快表隊列 TNode base[4]。 地址分解、地址轉換、發(fā)出異常與異常處理功能 等功能以動態(tài)成員函數(shù)抽象模擬 。 這時進程等待事件已經(jīng)結束,進程被喚醒,進入就緒隊列等待 CPU 資源。 從而將操作系統(tǒng)的處理器管理與存儲管理聯(lián)系在一起, 將理論與實踐相結合, 從整體上系統(tǒng)的了解并發(fā)環(huán)境中 的地址轉換機制 , 更深入的理解 計算機虛擬頁式存儲管理系統(tǒng) 的實現(xiàn),在加深對理論 理解 的 同時強化編程能力與算法思維。 本次課程 設計 目標是利用 c++程序設計語言抽象硬件部件,模擬 系統(tǒng)軟件功能,完成并行環(huán)境下 計算機虛擬頁式存儲管理系統(tǒng)的仿真 實現(xiàn)。找到獨立章節(jié)的理論知識之間的聯(lián)系并用代碼建立聯(lián)系,實現(xiàn)相應的功能,不僅僅是對理論知識的深入理解的過程,也是實踐能力、動手能力和編程能力的考驗與鍛煉 有著重要意義 。 2. 1. 3 過程可視化 ( 1) 控制臺顯示 作業(yè)與進程 的創(chuàng)建、執(zhí)行、調度等狀態(tài)信息,并顯示進程的 頁面訪問請求 、 頁面替換過程 以及內存、外存的占用情況 ; ( 2) 將 作業(yè)與進程的創(chuàng)建 、執(zhí)行、調度等狀態(tài)信息寫入文檔,并將 進程 的 頁面訪問請求 以及頁面替換過程寫入 文檔,將內存與外存的占用情況寫入文檔 ; ( 3) 將進程 的 頁面訪問請求 以及頁面替換過程寫入圖形化界面 ,將內存與外存的占用情況以位示圖的方法寫入圖形化界面,實現(xiàn)動態(tài)的過程可視化 。//隊列基地址 int rear。//遍歷快表 int TlbSize(){//快表長度 返回 尾指針 頭指針; } 12 4. 4 頁表項抽象設計 4. 4. 1 數(shù)據(jù)結構設計 typedef struct Page{//頁表項,大小為 2B int iPageNo。//頁框號 int phyAddr。//駐留集尾指針 int front。 5. 1. 3 模塊整合 根據(jù)設計,抽象模塊主要分為: CPU、 PCB、 MMU、 PCB 池、存儲空間。//進程頁表 ()。//設置進程控制塊 thissetPSW(this)。 //快表頭指針指向下一個 return temp。 return qpcb。 } void CPU::setPtbr(PTBR ptbr)//設置進程的頁表基址 { thiscptbr=ptbr。 //設置布局 mainLayoutaddLayout(rightLayout)。 ( 4)對 C++讀寫文件機制沒有完全掌握,對數(shù)據(jù)流概念不清晰,導致在將頁面替換過程寫 入文件時出現(xiàn)問題。非常感謝助教給予我的幫助,在我遇到問題時耐心的講解,并提出好的建議讓我能夠順利的完成課程設計。 這次課程設計我采用的編寫語言是 C++,集成開發(fā)環(huán)境選擇的是 Qt Creator,之所以選擇 Qt Creator 是自 己想要接觸新的開發(fā)環(huán)境,而不僅僅是局限于在學校學習所使用的 VC 或者 VS 環(huán)境。在 PSW 寄存器組中設置當前運行指令編號、中斷允許標志、運行狀態(tài)三項內容,以確??梢詫?現(xiàn)相應的功能。//左下面板 QGridLayout *leftdownupLayout=new QGridLayout。//進就緒隊列 return flag。//獲得當前進程 LRU 方法的駐留集狀態(tài) void clearStayPage()。//快表頭指針和尾指針置 0 } int PCB::EnTlb(int epageno,int erealpageno)//進快表 { if((this+1)%thisctlbSize==this) return 0。//進程控制塊地址 } void memory::setPCBpageSpace(int iF)//為進程分配內存空間 { for(int i=iF。寫入文檔和圖形化界面的代碼應當嵌入進程調度和頁面替換的代碼中。//16 頁大小的頁表區(qū) ,一頁 32B,共 512B Mpage mpage[1536]。//當前運行指令編號 int IF。//保護位 }Page; 4. 4. 2 基本操作 void setPage(){//進程頁表 { 生成新頁表; 設置 頁號 ; 設置 駐留位 、 引用位 、 修改位 、 保護位 ; 對應 頁框號 ; } void setPageInMemory(int pageno,int n){//設置 頁面的駐留位 遍 歷頁表; if(頁號相同) { 該頁面駐留位置 n。//隊列頭指針 }PQueue。 存儲空間按塊劃分,塊與頁大小相同,均為 32B。 2 設計思路與 完成 功能說明 2. 1 課程設計思路 2. 1. 1 模擬 多 進程 并發(fā)環(huán)境 首先從高級調度開始, 作業(yè)生成后 從后備作業(yè)隊列根據(jù)相關調度策略 (以先來先服務為例) 獲取作業(yè),接著 動態(tài) 創(chuàng)建 作業(yè)所需一系列進程,即從 PCB 池 中 申請空白 PCB,對其初始化并分配內存空間 等一系列資源 。 Memory。 Realized the realtime process scheduling, both inside and outside storage usage and page replacement process visualization, and eventually will be involved in the process of data saved to the specified document. Key words: Virtual page storage management。常見的頁面替換算法諸如先入先出頁面替換算法( FIFO)、最近最少使用頁面替換算法( LRU)、時鐘頁面替換算法( LRU)等,用程序設計語言實現(xiàn)這些算法,也對算法思維的培養(yǎng)有著重要意義。 3 裸機 硬件 部件仿真設計 3. 1 存儲空間 的設計與抽象 抽象并設計存儲空間模塊,采用將程序指令存儲和數(shù)據(jù)存儲分開的 哈弗 結構,具體分為內存抽 象與外存抽象。//隊列尾指針 int front。//修改位 int iProtect。 4. 6. 2 基本操作 void setPtbr(){//生成頁表基地址 設置頁表基地址; 設置頁表長度; } int getiF(){//獲得進程頁表基址 返回頁表基址; } 4. 7 程序狀態(tài)字 抽象設計 4. 7. 1 數(shù)據(jù)結構設計 typedef struct PSW{//程 序狀態(tài)字抽象 int iNumber。//共 32 頁 ,1024B 15 4. 9. 2 基本操作 void setPCBSpace(int addr, int pid){ //為進程分配內存空間 if(內存空間未占用 ){ 進程占用內存空間; 位示圖置 1; } } void freePCBSpace(int addr,int pid){//為進程釋放內存空間 進程釋放內存空間; 位示圖置 0; } 4. 10 外存抽象設計 4. 10. 1 數(shù)據(jù)結構設計 typedef struct Disk{//外存空間抽象 OutPage doutpage[512]。同理,當作業(yè)執(zhí)行結束或者進程執(zhí)行結束時都應當釋放存儲空間。//分配內存空間 return 。//輸出當前運行進程信息 } 22 ( 3)流程圖 開 始進 程 進 入 等 待 隊 列進 程 上 下 文 切 換新 進 程 運 行進 程 進 入 就 緒 隊 列結 束 圖 5. 3. 2 實現(xiàn)進程調度與進程上下文切換 5. 3. 3 實現(xiàn)對快表和駐留集的 管理 ( 1)對應類 PCB、 CPU ( 2)對應函數(shù) void PCB::InitTlb()//初始化快表 { this=this=0。//清空快表模擬 void setStayPage(PCB pcb)。//進程置就緒態(tài) thisEnReadyQueue(wpcb)。//左上面板 QVBoxLayout *leftdownLayout=new QVBoxLayout。 解決方案: 查閱課本中相關內容,自己歸納分析總結。主要模塊的編寫工作在寒假已完成,在助教的建議下,部分代碼優(yōu)化以及部分功能的增加在停課課設周基本完成。 參考文獻 [1] 費翔林 ,駱斌 .操作系統(tǒng)教程 [M].(5 版 ).北京 :高等教育出版社 ,2020. [2] 嚴蔚敏 ,吳偉民 .數(shù)據(jù)結構 (C 語言版 )[M].北京 :清華大學出版社 ,2020. [3] 許薇 ,方修豐 .面向對象程序設計 (C++)[M].北京 :清華大學出版社 ,2020. [4] 唐朔飛 .計算機組成原理 (2 版 )[M].北京 :高等教育出版社 ,2020. [5] Charles 程序設計 (5 版 )[M].北京 :北京大學出版社 ,2020. [6] Jasmin Blanchette,Mark ++ GUI Qt4 編程 (2 版 )[M].北京 :電子工業(yè)出版社 ,2020. [7] [M].(3 版 ).北京 :機械工業(yè)出版社 ,2020 33 附件 1 ( 1) PCB cpcb。 解決方案: 閱讀與分析相關教材的文件讀寫部分的代碼示例,對文件流概念有一定的了解后繼續(xù)完成設計中對文件操作的部分。 thissetLayout(mainLayout)。 } 6. 2 頁面替換算法 6. 2. 1 先入先出 FIFO 頁面替換算法 偽代碼: if(駐留集 中存在該請求頁面) { 命中; } else{ if(駐留
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1