付費下載
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
實驗項目名稱頁式虛擬存儲管理中地址轉換和缺頁中斷實驗目的及要求深入了解頁式存儲管理如何實現(xiàn)地址轉換。進一步認識頁式虛擬存儲管理中如何處理缺頁中斷。實驗內(nèi)容編寫程序完成頁式虛擬存儲管理中地址轉換過程和模擬缺頁中斷的處理。實驗具體包括:首先對給定的地址進行地址轉換工作,若發(fā)生缺頁則先進行缺頁中斷處理,然后再進行地址轉換;最后編寫主函數(shù)對所做工作進行測試。假定內(nèi)存64KB,每個內(nèi)存塊1024字節(jié);作業(yè)最大支持到64KB,系統(tǒng)中每個作業(yè)分得內(nèi)存塊4塊。實驗步驟缺頁處理:根據(jù)當前執(zhí)行指令中邏輯地址的頁號查頁表,判斷該頁是否在主存儲器中,若該頁標志為“0”操作系統(tǒng)處理缺頁中斷的方法就是查內(nèi)存分配表,找一個空閑內(nèi)存塊;若無空閑塊,查頁表,選擇一個已在內(nèi)存的頁面,把它暫時調出內(nèi)存。若在執(zhí)行過程中該頁被修改過,則需將該頁信息寫回磁盤,否則不必寫回;找出該頁的磁盤位置,啟動磁盤讀出該頁信息,把磁盤上讀出的信息裝入第2補找到的內(nèi)存塊,修改頁表中該頁的標志為“1”;由于產(chǎn)生缺頁中斷的那條指令沒有執(zhí)行完,所以頁面裝入后應重新執(zhí)行被中斷的指令。當重新執(zhí)行該指令時,由于要訪問的頁面已在內(nèi)存中,所以可以正常執(zhí)行。實驗環(huán)境WindowsXP、visualstudio2005實驗結果與分析#include"stdio.h"#definen64#definelength10struct{ intlnumber; intflag; intpnumber; intwrite; intdnumber;}page[n];intm;intpage_length;intp[length];inthead;page_interrupt(intlnumber){ intj; printf("發(fā)生缺頁3中斷%d\n",lnumber); j=p[head]; p[head]=lnumber; head=(head+1)%m; if(page[j].write==1) printf("將頁d寫回磁盤第ì塊\n",j,page[j].dnumber); page[j].flag=0; page[lnumber].pnumber=page[j].pnumber; page[lnumber].flag=1; page[lnumber].write=0; printf("淘汰內(nèi)存塊%2d中ì頁°3%2d,從?¨?磁??盤¨?第ì¨2%d塊¨|中D調ì??入¨?頁°3%2d\n",page[j].pnumber,j,page[lnumber].dnumber,lnumber);}command(unsignedladdress,intwrite){ unsignedpaddress,ad,pnumber,lnumber;kk: lnumber=laddress>>10; ad=laddress&0x3ff; if(lnumber>=page_length) { printf("不存在該頁3\n"); return; } if(page[lnumber].flag==1) { pnumber=page[lnumber].pnumber; paddress=pnumber<<10|ad; printf("邏輯地址是x對應物理地址是%x\n",laddress,paddress); if(write==1) page[lnumber].write=1; } else { page_interrupt(lnumber); gotokk; }}voidmain(){ intlnumber,flag,pnumber,write,dnumber; unsignedladdress; inti; printf("輸入頁3表的信息,創(chuàng)建頁3表(若頁°3號為a,則結束輸入)\n"); printf("輸入頁3號和輔存地址:"); scanf("%d%d",&lnumber,&dnumber); i=0; while(lnumber!=-1) { page[i].lnumber=lnumber; page[i].flag=0; page[i].write=0; page[i].dnumber=dnumber; i++; printf("輸入頁3號和輔存地址:"); scanf("%d%d",&lnumber,&dnumber); } page_length=i; printf(""輸入指令性質<1-修改,0-不需要,其他-結束程序運行>和邏輯地址:",i);scanf("%d",&pnumber); m=0; head=0; while(pnumber!=-1) { if(m<=i) { page[m].pnumber=pnumber; page[m].flag=1; p[m]=m; m++; } scanf("%d",&pnumber); } printf("輸入指令性質<1-修改,0-不需要,其他-結束程序運行>和¨a邏輯地址:""); scanf("%d%x",&write,&laddress); while(write==0||write==1) { command(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 46639.4-2025鑄造機械術語第4部分:拋噴丸清理機及其他鑄件清理設備
- GB/T 46746-2025船舶低壓電力系統(tǒng)絕緣故障定位裝置
- 2026年吉安幼兒師范高等??茖W校單招職業(yè)傾向性考試題庫含答案詳解
- 2026年甘肅省定西地區(qū)單招職業(yè)傾向性測試題庫帶答案詳解
- 2026年湖南省益陽市單招職業(yè)適應性考試題庫附答案詳解
- 2026年南通科技職業(yè)學院單招職業(yè)技能考試題庫參考答案詳解
- 2026年寧波職業(yè)技術學院單招職業(yè)適應性測試題庫及參考答案詳解
- 2026年海南外國語職業(yè)學院單招職業(yè)適應性考試題庫參考答案詳解
- 2026年甘肅省嘉峪關市單招職業(yè)適應性測試題庫附答案詳解
- 2026年益陽師范高等??茖W校單招職業(yè)適應性測試題庫及參考答案詳解1套
- 圖書館管理系統(tǒng)設計與實現(xiàn)答辯
- 《ERCP的麻醉》課件:深入解析診療過程中的麻醉管理
- 護士禮儀與溝通技巧課件
- 華電集團筆試題庫
- 扳機點(激痛點)療法(理論及實操演示附全身激痛點分布圖)
- 公司年終獎發(fā)放方案(6篇)
- 企業(yè)如何做好培訓工作
- 《預防未成年人犯罪》課件(圖文)
- 測量常用坐標系課件
- 乒乓球女單孫穎莎介紹主題班會課件
- 創(chuàng)新實踐(理論)學習通超星期末考試答案章節(jié)答案2024年
評論
0/150
提交評論