南京郵電大學(xué)-操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第1頁(yè)
南京郵電大學(xué)-操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第2頁(yè)
南京郵電大學(xué)-操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第3頁(yè)
南京郵電大學(xué)-操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第4頁(yè)
南京郵電大學(xué)-操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

課內(nèi)實(shí)驗(yàn)報(bào)告課程名: 操作系統(tǒng)任課教師: 沈超專(zhuān)業(yè): 信息管理與信息系統(tǒng)學(xué) 號(hào): 姓 名: 二0—六至二0—七年度第一學(xué)期南京郵電大學(xué)經(jīng)濟(jì)與管理學(xué)院《操作系統(tǒng)》課程實(shí)驗(yàn)第一次實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)內(nèi)容及基本要求:實(shí)驗(yàn)項(xiàng)目名稱(chēng):調(diào)度系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)實(shí)驗(yàn)類(lèi)型:設(shè)計(jì)每組人數(shù):1實(shí)驗(yàn)內(nèi)容及要求:實(shí)驗(yàn)內(nèi)容:本次實(shí)驗(yàn)的主要內(nèi)容是模擬調(diào)度系統(tǒng)的實(shí)現(xiàn),包括高級(jí)、中級(jí)和低級(jí)調(diào)度的管理系統(tǒng)實(shí)現(xiàn),調(diào)度算法的設(shè)計(jì)與實(shí)現(xiàn)以及銀行家算法的設(shè)計(jì)設(shè)計(jì)與實(shí)現(xiàn)。本次實(shí)驗(yàn)主要包括兩部分內(nèi)容:1、 模擬具有三級(jí)調(diào)度的計(jì)算機(jī)系統(tǒng)進(jìn)程運(yùn)行過(guò)程,設(shè)計(jì)進(jìn)程調(diào)度算法,將其存入進(jìn)程文件中。如:進(jìn)程1:運(yùn)行5秒后有3秒的I/O操作,之后有10秒的運(yùn)行,結(jié)束??梢詫?xiě)成:”p1:r5,io3,r3e;”。編程實(shí)現(xiàn)調(diào)度算法函數(shù),設(shè)計(jì)優(yōu)先級(jí)、時(shí)間片大小和并發(fā)進(jìn)程個(gè)數(shù),系統(tǒng)不斷從進(jìn)程文件中讀出進(jìn)程信息,選擇一種進(jìn)程調(diào)度算法,模擬進(jìn)程的運(yùn)行及調(diào)度過(guò)程,比較不同算法在周轉(zhuǎn)時(shí)間和平均周轉(zhuǎn)時(shí)間上的差異。針對(duì)進(jìn)程文件里面的數(shù)據(jù)為正常、缺項(xiàng)、格式不正確等各種情況,檢測(cè)程序的執(zhí)行結(jié)果。2、 理解安全性算法和銀行家算法的核心機(jī)制:針對(duì)3類(lèi)資源、5個(gè)進(jìn)程的情況,設(shè)計(jì)相應(yīng)的數(shù)據(jù)結(jié)構(gòu),分別表示每個(gè)進(jìn)程占用各類(lèi)資源的情況;編程實(shí)現(xiàn)安全性算法函數(shù),編制主函數(shù),動(dòng)態(tài)輸入資源的占用情況,進(jìn)程的資源申請(qǐng),調(diào)用安全性函數(shù),實(shí)現(xiàn)銀行家算法;輸入可分配和不可分配的請(qǐng)求,測(cè)試系統(tǒng)的正確性。實(shí)驗(yàn)要求:進(jìn)程調(diào)度模擬程序根據(jù)一個(gè)進(jìn)程調(diào)度文件,模擬進(jìn)程的各種調(diào)度過(guò)程,用適合的表達(dá)方式表示出來(lái)。銀行家算法程序提供一個(gè)用戶(hù)界面,可以在上邊發(fā)出資源申請(qǐng)命令,系統(tǒng)應(yīng)能給出是否可以接受申請(qǐng),并且有結(jié)論輸出。思考:1、 終端型進(jìn)程流適合使用哪種調(diào)度算法?長(zhǎng)批處理作業(yè)適合使用哪種調(diào)度算法?2、 動(dòng)態(tài)優(yōu)先級(jí)調(diào)度算法的優(yōu)先級(jí)變化率應(yīng)該如何設(shè)置?實(shí)驗(yàn)結(jié)果:一、短作業(yè)優(yōu)先調(diào)度算法。短作業(yè)優(yōu)先算法(SJF)就是從就緒隊(duì)列中選出一估計(jì)運(yùn)行時(shí)間最短的進(jìn)程,將處理機(jī)分配給它,使它立即執(zhí)行并一直執(zhí)行到完成。算法實(shí)現(xiàn)過(guò)程:先定義一個(gè)結(jié)構(gòu)體,里面定義了進(jìn)程編號(hào)、進(jìn)程名稱(chēng)、到達(dá)時(shí)間、運(yùn)行時(shí)間、周轉(zhuǎn)時(shí)間等等的內(nèi)容,然后給進(jìn)程編號(hào)和名稱(chēng)、到達(dá)時(shí)間、運(yùn)行時(shí)間等賦上初值。接下來(lái)設(shè)置時(shí)間標(biāo)志,一個(gè)一步一步對(duì)每到達(dá)的一個(gè)進(jìn)程進(jìn)行處理,并記錄下結(jié)束運(yùn)行時(shí)間等數(shù)據(jù)。最后把所有數(shù)據(jù)記錄到結(jié)構(gòu)體后,就可以輸出結(jié)果。SJF()關(guān)鍵代碼:inttemptime=0;〃當(dāng)期時(shí)間inti=0,j;intnumberschedul,tempcounter;doubleruntime;runtime=Process[i].WholeTime*1.0;j=l;while((j<N)&&(Process[i].ArrivalTime==Process[j].ArrivalTime)){〃判斷是否有兩個(gè)進(jìn)程同時(shí)到達(dá)if(Process[j].WholeTime<Process[i].WholeTime){runtime=Process[i].WholeTime;i=j;}j++;}〃查找下一個(gè)被調(diào)度的進(jìn)程numberschedul=i;Process[numberschedul].ServiceTime=Process[numberschedul].ArrivalTime;Process[numberschedul].FinishTime=Process[numberschedul].ServiceTime+Process[numberschedul].WholeTime;Process[numberschedul].runflag=1;temptime=Process[numberschedul].FinishTime;Process[numberschedul].order=1;tempcounter=1;while(tempcounter<N){for(j=0;j<N;j++){if((Process[j].ArrivalTime<=temptime)&&(!Process[j].runflag)){runtime=Process[j].WholeTime;numberschedul=j;break;}}for(j=0;j<N;j++){if((Process[j].ArrivalTime<=temptime)&&(!Process[j].runflag))if(Process[j].WholeTime<runtime)runtime=Process[j].WholeTime;numberschedul=j;}}Process[numberschedul].ServiceTime=temptime;Process[numberschedul].FinishTime=Process[numberschedul].ServiceTime+Process[numberschedul].WholeTime;Process[numberschedul].runflag=1;temptime=Process[numberschedul].FinishTime;tempcounter++;Process[numberschedul].order=tempcounter;}程序結(jié)果截圖:進(jìn)程名彩:=Lb10IE50continue:10c:15d周轉(zhuǎn)時(shí)間=1T.sanykeyto0E[1進(jìn)程名彩:=Lb10IE50continue:10c:15d周轉(zhuǎn)時(shí)間=1T.sanykeyto0E[1■F!\vc6.O\VC6.O\flies\D&bug\SJF.?£e" 一口X10 025 255 1010 15菇束ID5015■25周轉(zhuǎn)10.UG45.00S001&.0D執(zhí)行順序142O52Bf二、銀行家算法(網(wǎng)上借鑒)銀行家算法,當(dāng)進(jìn)程提出資源申請(qǐng)時(shí),系統(tǒng)首先檢查該進(jìn)程對(duì)資源的申請(qǐng)量是否超過(guò)其最大需求量及系統(tǒng)現(xiàn)有的資源能否滿(mǎn)足進(jìn)程需要。若超過(guò),則報(bào)錯(cuò),若不能滿(mǎn)足,則讓該進(jìn)程等待;否則進(jìn)一步檢查把資源分給該進(jìn)程后系統(tǒng)能否出于安全狀態(tài),若安全,則分配,否則置該進(jìn)程為等待資源狀態(tài)。算法實(shí)現(xiàn)過(guò)程:設(shè)進(jìn)程i提出請(qǐng)求REQUEST[j],則銀行家算法按如下規(guī)則進(jìn)行判斷。如果REQUEST[i][j]<=NEED[i][j],則轉(zhuǎn)(2);否則,出錯(cuò)。如果REQUEST[i][j]<=AVAILABLE[i][j],則轉(zhuǎn)(3);否則,出錯(cuò)。系統(tǒng)試探分配資源,修改相關(guān)數(shù)據(jù):AVAILABLE[j]-=REQUEST[i][j];ALLOCATION[i][j]+=REQUEST[i][j];NEED[i][j]-=REQUEST[i][j];系統(tǒng)執(zhí)行安全性檢查,如安全,則分配成立;否則試探險(xiǎn)性分配作廢,系統(tǒng)恢復(fù)原狀,進(jìn)程等待。Check()關(guān)鍵代碼:{intk,f,no=0;intwork[M],a[M];printf("處于安全狀態(tài).");charfinish[M];printf("安全序列號(hào):");anquan=1;for(i=0;i<n;i++)printf("%d",a[i]);for(i=0;i<n;i++)finish[i]='F';printf("\n");for(j=0;j<m;j++)work[j]=available[j];printf("進(jìn)程");k=n;printf("");doprintf("Max");{for(i=0;i<n;i++)rintf("");{if(finish[i]=='F')rintf("allocation");{f=1;printf("");for(j=0;j<m;j++)printf("need");if(need[i][j]>work[j])printf("");

f=0;printf("available");if(f==1)printf("\n");〃找到還沒(méi)完成的且需求數(shù)小于可提供for(i=0;i<n;i++)進(jìn)程繼續(xù)運(yùn)行的{printf("%2d",i);{finish[i]='T';printf(" ");a[no++]=i;for(j=0;j<m;j++)〃記錄安全序列號(hào)printf("%2d",max[i][j]);for(j=0;j<m;j++)printf(" ");work[j]=work[j]+allocation[i][j];for(j=0;j<m;j++)〃釋放該進(jìn)程已分配的資源available。]=work[j];}}}printf("%2d",allocation[i][j]);k--;}while(k>0);f=1;printf("");for(i=0;i<n;i++)for(j=0;j<m;j++)〃判斷有沒(méi)有進(jìn)程沒(méi)完成{if(finish[i]=='F'){printf("%2d",need[i][j]);f=0;printf("");break; }for(j=0;j<m;j++){}if(f==0) {if(i>0)printf("不安全狀態(tài)!\n");break;anquan=0;printf("%2d",available[j]);}}else{printf("\n");}}}■1"F:\vc6.0\VC&.CAflie&\Debug\blank.exe'程序結(jié)果截圖:a.vai1品1e33Z■ITtLl1品1C2jLI口XDri列L序OL勵(lì)—ILJ_rKW普皇J14a.vai1品1e33Z■ITtLl1品1C2jLI口XDri列L序OL勵(lì)—ILJ_rKW普皇J14的一45^不&1至董J和渝叉和.」.-..」oOZOOO33口236口.--UO_■..」22□〔...」.I'.』。4^-b^Is-.」..」這次上機(jī)模擬了進(jìn)程調(diào)度過(guò)程和解決了死鎖問(wèn)題,讓我對(duì)短作業(yè)優(yōu)先調(diào)度算法和銀行家算法有了比在課堂上更深刻的認(rèn)識(shí)。紙上得來(lái)終覺(jué)淺,絕知此事要躬行。這句話(huà)說(shuō)的很有道理,本以為自己在課堂上已經(jīng)對(duì)算法的調(diào)度過(guò)程掌握得一清二楚,但在實(shí)踐編程的時(shí)候,總是遇到系統(tǒng)不按短作業(yè)次序執(zhí)行,或者周轉(zhuǎn)時(shí)間計(jì)算結(jié)果錯(cuò)誤等邏輯錯(cuò)誤,只有當(dāng)自己把程序執(zhí)行過(guò)程和老師ppt上的過(guò)程一一對(duì)照認(rèn)真理解,才最終把短作業(yè)優(yōu)先調(diào)度算法編寫(xiě)出來(lái)。銀行家算法大部分內(nèi)容是在我上網(wǎng)搜到的代碼,之后對(duì)照ppt上銀行家算法的過(guò)程后改動(dòng)了一些內(nèi)容得以順利運(yùn)行,這加深了我對(duì)銀行家算法避免死鎖檢查步驟的理解。以上就是我對(duì)這兩個(gè)程序編寫(xiě)大致情況,總的來(lái)說(shuō),這次上機(jī)使我受益匪淺。成績(jī)?cè)u(píng)定:該生對(duì)待本次實(shí)驗(yàn)的態(tài)度口認(rèn)真口良好口一般口比較差。本次實(shí)驗(yàn)的過(guò)程情況口很好口較好口一般口比較差對(duì)實(shí)驗(yàn)結(jié)果的分析口很好口良好口一般口比較差文檔書(shū)寫(xiě)符合規(guī)范程度口很好口良好口一般口比較差綜合意見(jiàn):成績(jī)指導(dǎo)教師簽名日期12.2《操作系統(tǒng)》課程實(shí)驗(yàn)第二次實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)內(nèi)容及基本要求:實(shí)驗(yàn)項(xiàng)目名稱(chēng):內(nèi)存分配算法模擬實(shí)現(xiàn)實(shí)驗(yàn)類(lèi)型:操作每組人數(shù):1實(shí)驗(yàn)內(nèi)容及要求:實(shí)驗(yàn)內(nèi)容:本實(shí)驗(yàn)的主要內(nèi)容是實(shí)現(xiàn)存儲(chǔ)管理系統(tǒng)中的內(nèi)存分配、地址變換和虛擬存儲(chǔ)管理中的頁(yè)面置換。具體內(nèi)容包括三個(gè)方面:1、 掌握動(dòng)態(tài)分區(qū)分配的基本原理,設(shè)計(jì)動(dòng)態(tài)分區(qū)分配系統(tǒng),可以實(shí)現(xiàn)首次適應(yīng)算法、最壞適應(yīng)算法和最佳適應(yīng)算法進(jìn)行分區(qū)分配。2、 理解虛擬存儲(chǔ)器的地址變換過(guò)程,設(shè)計(jì)用于模擬快表、頁(yè)表、地址變換所用的寄存器的數(shù)據(jù)結(jié)構(gòu)。編制頁(yè)表的初始信息文件,舉例說(shuō)明文件中具有的信息:共有5塊,每塊的狀態(tài)、在內(nèi)存和外存的起始地址等。編程實(shí)現(xiàn)虛擬存儲(chǔ)器地址變換算法程序,動(dòng)態(tài)輸入所要訪(fǎng)問(wèn)的邏輯地址,變換過(guò)程文字描述以及變換后的物理地址;檢查輸入有效、無(wú)效地址,測(cè)試程序的正確性和錯(cuò)誤處理能力。(字符串表示二進(jìn)制)3、 編程實(shí)現(xiàn)LRU算法或CLOCK/改進(jìn)算法等置換算法(二選一),模擬實(shí)現(xiàn)虛擬存儲(chǔ)器的地址變換過(guò)程。理解LRU或CLOCK改進(jìn)算法等置換算法;設(shè)計(jì)與算法相關(guān)的數(shù)據(jù)結(jié)構(gòu),如:LRU的堆?;駽LOCK改進(jìn)算法中的循環(huán)結(jié)構(gòu);按照最多5塊的內(nèi)存分配情況,編程實(shí)現(xiàn)所選算法,動(dòng)態(tài)輸入訪(fǎng)問(wèn)內(nèi)存的塊號(hào)序列,輸出置換結(jié)果;輸入合法、非法的訪(fǎng)問(wèn)序列數(shù)據(jù),檢查程序的正確性和健壯性。實(shí)驗(yàn)要求:虛擬地址變換程序提供邏輯地址輸入界面,形象地表示出變換成物理地址的過(guò)程與最后變換成的物理地址。置換算法程序提供內(nèi)存訪(fǎng)問(wèn)序列的輸入界面,輸出正確的置換過(guò)程描述和置換結(jié)果。思考:1、 地址變換產(chǎn)生錯(cuò)誤的原因有哪些?2、 在頁(yè)面置換過(guò)程中,為什么會(huì)出現(xiàn)抖動(dòng)的情況?實(shí)驗(yàn)結(jié)果:1、首次適應(yīng)算法首次適應(yīng)算法(firstfit)就是在搜索儲(chǔ)存空間時(shí),選擇所碰到的第一個(gè)滿(mǎn)足作業(yè)儲(chǔ)存量要求的塊分配給用戶(hù)算法實(shí)現(xiàn)過(guò)程:首次適應(yīng)算法(firstfit),定義了一個(gè)二維數(shù)組space,第一列存放空余內(nèi)存空間,第二列存放空余空間首地址,存放時(shí)與之比較,首次匹配則終止比較,插入作業(yè)?;厥账惴ǎ╮ecycle),就是讓要?jiǎng)h除的作業(yè)的首尾地址值被后一個(gè)作業(yè)替換,然后在show()中重新排序,對(duì)space數(shù)組里的數(shù)據(jù)重新賦值,然后展示出來(lái)。voidfirstfit(int主要代碼:for(i=0;i<=cout;i++){ //找到首次匹配的空間并插入if(space[i][0]>=inserttask){if(i==0){ram[n][0]=space[0][1];ram[n][1]=ram[n][0]+inserttask;space[0][0]=ram[0][0]-ram[n][1];space[0][1]=ram[n][1];}elseif(i==cout){ram[n][0]=space[cout][1];ram[n][1]=ram[n][0]+inserttask;space[cout][0]=200-ram[n][1];pace[cout][1]=ram[n][1];}else{ram[n][0]=space[i][1];ram[n][1]=ram[n][0]+inserttask;space[i][0]=ram[i][0]-ram[n][1];space[i][1]=ram[n][1];}ram[n][2]=inserttask;printf("插入地址位置為:%d——%d\n”,ram[n][0],ram[n][1]);n++;flag=0;break;}}

if(flag!=0)printf("插入失敗!\n");}voidrecycleE?要代碼:inti,number,flag;〃回收操作,把要?jiǎng)h除的作業(yè)信息用后一個(gè)覆蓋flag=1;while(flag){ printf(-請(qǐng)輸入要回收的作業(yè)號(hào):,scanf("%d”,&number);if(number>0&&number-1<n){for(i=number-1;i<=n;i++){ram[i][0]=ram[i+1][0];ram[i][1]=ram[i+1][1];}n--;flag=0;}else{printf("無(wú)此作業(yè)號(hào)!\n");}}printf("注意,刪除后作業(yè)號(hào)會(huì)改變!\n");程序結(jié)果截圖:]■z:\uc6.fl\VC6.&;niei\Debug\F;rsLFTt.ese,亍轎K已日用作業(yè)總數(shù)(作業(yè)空間最大為1昕:卬接血序機(jī)!k枷盤(pán)L個(gè)作業(yè)起伯內(nèi)存地址卻未民構(gòu)存地址徵認(rèn)總內(nèi)存太小為E,翰心km作業(yè)起始內(nèi)律址址卻本尾內(nèi)存地址(跋認(rèn)總內(nèi)存太小為女山)?:i6D命掙蘇玲作業(yè)起始內(nèi)律地址布豐尾內(nèi)存地址(新認(rèn)總內(nèi)存大小為女山)Ki]ffl31位位位存存存A4J_31位位位存存存A4J_KI.U如O劇O22:,■普,'R^e6.0\UC6.0\flies\Debug\F;ritFil^it-口布恒芳:如一質(zhì)白,習(xí)空卒即.田件位蚩:面,'R^e6.0\UC6.0\flies\Debug\F;ritFil^it-口布恒芳:如一質(zhì)白,習(xí)空卒即.田件位蚩:面——1時(shí)占后臣面:BC G圣章目化臀空案內(nèi)存:網(wǎng)隅髀理嚼黨贏(yíng)頃鄴H1 '輸恩:無(wú)代的作也的空回太小;■A——印bo:叵嵌,誦出)?Wi]信輅入期缺的作盼空iti尢?。築O盹——1如5回?fù)Q,退出)?fc/Vt]膈^麴缺的作明窒問(wèn)太小,虧-St膈^麴缺的作明窒問(wèn)太小,虧-St宓:國(guó)麟型甯'?;品詛出;?(c/Vt)a"R\vc5.0\VC6Aflie£\Debdg\Frr&tRt?ex&'甘ftfl1 1F F*ittlt1 富* *小Bfl*Mfl*a"R\vc5.0\VC6Aflie£\Debdg\Frr&tRt?ex&'甘ftfl1 1F F*ittlt1 富* *小Bfl*Mfl*業(yè)Mfl*可i7錄撻占尋有骸TR[斗n^LF睬履0——040 60C:ij—160;0 3D占用空間口160——19U占用空|S]:30I知中H韋豐菲市H書(shū)豐寸注H*菲FFHW幫菲FHTHIFFH杵宇主甜THIF書(shū)HI捧書(shū)時(shí)擄*主FFH審*書(shū)郵瞽小帝忡符主FFHW*FFH審Ira^a前占用情只下:is「| □2U——3J40——? ,—.】匠 190占用空間:ia展.;_牙作業(yè)瑋作;:10Z:f:-j/7:Juu2、LRU算法最近最久未使用置換算法就是當(dāng)需要置換一頁(yè)時(shí),選擇在最近一段時(shí)間內(nèi)最久不用的頁(yè)予以淘汰。算法實(shí)現(xiàn)過(guò)程:定義了一個(gè)存放頁(yè)面的數(shù)組page和一個(gè)記錄頁(yè)面使用情況的數(shù)組p,兩個(gè)數(shù)組長(zhǎng)度都為3。每當(dāng)置換一個(gè)頁(yè)面或因頁(yè)面存在而未置換時(shí),與頁(yè)面對(duì)應(yīng)的數(shù)組p位置的數(shù)就會(huì)加1;當(dāng)要置換一個(gè)頁(yè)面時(shí),比較數(shù)組p3個(gè)數(shù)的大小,值最小的就是最久未使用的頁(yè)面。LRU算法關(guān)鍵代碼:for(i=0;i<N;i++){printf("%5d",input[i]);num=compare(i,input);//比較頁(yè)面是否存在if(flag)p[num]=i+1;else{longtime=findmin(p);//找到下標(biāo)最小的頁(yè)面的位置page[longtime]=input[i];p[longtime]=i+1;sum++;}printf("%12d%5d%5d\n”,page[0],page[1],page[2]);}printf("\n");change=sum-3;change_rate=float(change)/N;lost_rate=float(sum)/N;程序結(jié)果截圖:

CB,,R\ui:6.O\VC6.0i\Fli&s,ilDebug\LRU?e!isB,:」?L21ZOI7D1HJr_頁(yè)畫(huà)引用憎;eF-1-1FD-1r□12D1li□12D3j:□34DZ4□Z432032032032L32L32L02L□2L0.■L□7L0r:」?L21ZOI7D1HJr_3、虛擬存儲(chǔ)器的地址變換先將一個(gè)進(jìn)程的邏輯地址空間分成若干個(gè)大小相等的片稱(chēng)為頁(yè)面或頁(yè),并為各頁(yè)加以編號(hào),從0開(kāi)始,每個(gè)頁(yè)面后有頁(yè)面號(hào),當(dāng)有請(qǐng)求時(shí),把邏輯地址前幾位提出來(lái)與頁(yè)號(hào)比較,成功后返回頁(yè)面號(hào),與有效地址形成物理地址。算法實(shí)現(xiàn)過(guò)程:設(shè)定一個(gè)二維字符串?dāng)?shù)組數(shù)組存儲(chǔ)頁(yè)面信息,兩個(gè)一維字符串?dāng)?shù)組存放輸入和輸出地址。假設(shè)頁(yè)號(hào)為3位,頁(yè)面號(hào)和有效地址都為4位,把輸入數(shù)組的前三位與每個(gè)頁(yè)號(hào)相比較,成功后返回下標(biāo),然后拼接輸出。intcompare(charinput關(guān)鍵代碼:for(i=0;i<8;i++){cout=0;for(j=0;j<3;j++)if(input[j]==page[i][j])cout++;if(cout==3) 〃若3位的頁(yè)號(hào)匹配成功cout=3{flag=1;p=i;break;}拼接字符串關(guān)鍵代碼:printf("對(duì)應(yīng)的物理地址如下:\n");for(i=0;i<4;i++)temp[i]=page[p][i+3];temp[4]='\0'; 〃避免亂碼strcpy(output,temp);//頁(yè)面號(hào)的復(fù)制for

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論