版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
甘肅政法學(xué)院本科生實(shí)驗(yàn)報告(四)姓名:學(xué)院:公安技術(shù)學(xué)院專業(yè):班級:實(shí)驗(yàn)課程名稱:計算機(jī)操作系統(tǒng)實(shí)驗(yàn)日期:2016年11月17日開課時間:2016-2017學(xué)年第一學(xué)期甘肅政法學(xué)院實(shí)驗(yàn)管理中心印制實(shí)驗(yàn)題目主存空間分配與回收小組合作姓名 班級一、實(shí)驗(yàn)?zāi)康?、掌握操作系統(tǒng)的主存空間分配與回收2、了解其工作原理。學(xué)號二.實(shí)驗(yàn)環(huán)境Windows系統(tǒng)下的VC++6.0三、實(shí)驗(yàn)內(nèi)容與步驟1、模擬在可變分區(qū)管理方式下采用最先適應(yīng)算法實(shí)現(xiàn)主存分配和回收。2、在VC++6.0的操作軟件上建一個名字為liyongqian的工程名。3、用代碼模擬實(shí)現(xiàn)主存空間的分配與回收。(1)可變分區(qū)方式是按作業(yè)需要的主存空間大小來分割分區(qū)的。當(dāng)要裝入一個作業(yè)時,根據(jù)作業(yè)需要的主存量查看是否有足夠的空閑空間,若有,則按需要量分割一個分區(qū)分配給該作業(yè);若無,則作業(yè)不能裝入。隨著作業(yè)的裝入、撤離,主存空間被分成許多個分區(qū),有的分區(qū)被作業(yè)占用,而有的分區(qū)是空閑的為了說明哪些區(qū)是空閑的,可以用來裝入新作業(yè),必須要有一張空閑區(qū)說明表,格式如下:起址長度狀 態(tài)第一欄14"K12^K未分配第二欄32K96K未分配::::其中,起址一一指出一個空閑區(qū)的主存起始地址。長度一一指出從起始地址開始的一個連續(xù)空閑的長度。狀態(tài)一一有兩種狀態(tài),一種是“未分配”狀態(tài),指出對應(yīng)的由起址指出的某個長度的區(qū)域是空閑區(qū)。(2)當(dāng)有一個新作業(yè)要求裝入主存時,必須查空閑區(qū)說明表,從中找出一個足夠大的空閑區(qū)。有時找到的空閑區(qū)可能大于作業(yè)需要量,這時應(yīng)把原來的空閑區(qū)變成兩部分:一部分分給作業(yè)占用;另一部分又成為一個較小的空閑區(qū)。為了盡量減少由于分割造成的空閑區(qū),而盡量保存高地址部分有較大的連續(xù)空閑區(qū)域,以利于大型作業(yè)的裝入。為此,在空閑區(qū)說明表中,把每個空閑區(qū)按其地址順序登記,即每個后繼的空閑區(qū)其起始地址總是比前者大。(3)采用最先適應(yīng)算法(順序分配算法)分配主存空間。按照作業(yè)的需要量,查空閑區(qū)說明表,順序查看登記欄,找到第一個能滿足要求的空閑區(qū)。當(dāng)空閑區(qū)大于需要量時,一部分用來裝入作業(yè),另一部分仍為空閑區(qū)登記在空閑區(qū)說明表中。由于本實(shí)驗(yàn)是模擬主存的分配,所以把主存區(qū)分配給作業(yè)后并不實(shí)際啟動裝入程序裝入作業(yè),而用輸出“分配情況”來代替。(4)當(dāng)一個作業(yè)執(zhí)行結(jié)束撤離時,作業(yè)所占的區(qū)域應(yīng)該歸還,歸還的區(qū)域如果與其它空閑區(qū)相鄰,則應(yīng)合成一個較大的空閑區(qū),登記在空閑區(qū)說明表中。(5)請按最先適應(yīng)算法設(shè)計主存分配和回收的程序。假設(shè)初始時主存中沒有作業(yè),現(xiàn)按下面序列進(jìn)行內(nèi)存的申請與釋放:作業(yè)1申請300K,作業(yè)2申請100K,作業(yè)1釋放300K,作業(yè)3申請150K,作業(yè)4申請30K,作業(yè)5申請40K,作業(yè)6申請60K,作業(yè)4釋放30K。四、實(shí)驗(yàn)過程與分析程序代碼如下:#include<stdio.h>#include<math.h>#defineCOUNT512typedefstructNODE{charname;//名稱floatStart;//起始位置floatend;//大小intflag;〃是否分配的標(biāo)志}NODE;NODEOS[COUNT];//數(shù)組intcount;//被分成的塊數(shù)統(tǒng)計intapplyfree;floatnumb;charc;//先對數(shù)組進(jìn)行初始化,使沒有分配的名稱為Pvoidinit(){count=1;OS[0].name='P';OS[0].start=0;OS[0].end=COUNT;OS[0].flag=1;}//對數(shù)組的插入操作voidinsert(intm,floatst,floaten){inti;count++;for(i=count;i>m+1;i--){OS[i]=OS[i-1];}OS[m].start=st;OS[m].end=en;}//移動操作,即對數(shù)組的刪除操作voidmove(intm){inti;for(i=m;i<count-1;i++){OS[i]=OS[i+1];}count--;}//如果相鄰塊都沒有分配,則要合并到一起voidrremove(intm,floatst,floaten){if(!OS[m-1].flag&&!OS[m+1].flag){OS[m].name='P';OS[m].flag=1;}if(OS[m-1].flag){OS[m-1].end=OS[m-1].end+en;move(m);}if(OS[m+1].flag){OS[m].end=OS[m].end+OS[m+1].end;OS[m].name='P';OS[m].flag=1;move(m+1);}}//打印輸出voidshow(){inti;Printf("名稱 標(biāo)識起址長度狀態(tài)\n");fOr(i=0;i<count;i++){if(OS[i].flag)Printf("P ");elsePrintf("%c",OS[i].name);Printf("%d%1.0f %1.0f",i,OS[i].start,OS[i].end);if(OS[i].flag)Printf("未分配\n");elseprintf("已分配\n");}}//從鍵盤輸入數(shù)據(jù)voidputin(){Pnntf("請輸入申請或者釋放的進(jìn)程名稱及資源數(shù)量:\n");rewind(stdin);SCanf("%c",&c);SCanf("%d",&applyfree);SCanf("%f",&numb);}intapply(){inti=0;intapplyflag=0;intfreeflag=0;if(apPIyfree)//提出申請資源{while(!applyflag&&i<count){if(OS[i].end>=numb&&OS[i].flag){if(OS[i].end==numb){OS[i].name=c;OS[i].flag=0;}else{insert(i+1,OS[i].start+numb,OS[i].end-numb);OS[i+1].flag=1;OS[i+1].name='P';OS[i].start=OS[i].start;OS[i].name=c;OS[i].end=numb;OS[i].flag=0;}applyflag=1;}i++;}if(applyflag)^「加£("申請成功!\n");return1;}else{printfC^請失??!沒有足夠大的空閑空間。\n");return0;while(!freeflag&&i<count)if(OS[i].name==c)if(OS[i].end==numb)rremove(i,OS[i].start,OS[i].end);elseif(OS[i].end>numb){insert(i+1,OS[i].start+numb,OS[i].end-numb);OS[i+1].name='P';OS[i+1].flag=0;OS[i].end=numb;OS[i].flag=1;if(OS[i-1].flag){rremove(i,OS[i].start,OS[i].end);else{pnntf("釋放失敗,因?yàn)檎褂玫臄?shù)量小于要求釋放的數(shù)量。\n");return0;}freeflag=1;} }++;if(freeflag){printf("釋放成功!\n");return1;else{printf("釋放失??!未找到匹配的進(jìn)程名稱。\n");return0;}voidmain()init();show();while(1)putin();apply();show();}測試結(jié)果如下圖所示:SSllrpmgciBn■M??5∏ft?F,juhIC++??F∣M∣E∣B?∣V∣WjU二Hj?泡吃②=Λ∣T∣登口的R-?∣H)3M面沖?a。?H面百?'INDfitFlμ?GabBEHm?uπs]引惴口irnKr*-Cι?aLtQC?4h?πιb工|3F濟(jì)0'!Xle?l?lφZ?K,∣W∏Ui∣3∏≡1S罩IFytnWHnSIH年國g∣<A也.>cpp用□?adf∣?∣E9-_jRt的?C?RIeBHF?-Ady?.bdl{3lrl->2f∣gq∣A^βp旌li^QΓ∣f?lM.cp*: tht?ntryp?£ntFarth*<=qmq1*叩MlNtlX.Slnclnde"9MflFκ.tι"*SnQk?d?^sc?Lq.k?4U∏GlQde?wU∣xh>XHfjIPWJHI512t∕pe*fstru?tNnE?ar*3∏tt∕y?filFloatstart-//??dIFloatrM7∕∕-?-?τ.?t0碼"f且者方配的標(biāo)志)HΠD∣3Htl)E?≤lC?UHI]E∕??ai“EUnlMF?慮的塊處沆什Iac-ρlyFtj5t;fIojLnu*mCtar麟;門先計均擔(dān)進(jìn)行切方汨匕使役有優(yōu)的告將對fvtidLnitDC4U∏t-1≡R∣0],∏W-bP,;?£[?]-≡tw*t-B:?”和uE∏4-C*UI∏bκ∣?l-fi*gTsJ正金I叫T>ιV?13∏g!?ft?f∣Pi?ugV?τi∏g?ft<?e-t,£1?=ΓΓffl-l∏眄甌?i僚作?41dLr∣5*vjc{Ei∏τAτfl*acftpfloatOnjIjmIg
c?unt?+;Jj-Q^Krθr?-E]ιl,CMkrnl*ff-s3∣"Dι?liy□πg(shù)q!3π?Dc-bug?liyoπg(shù)qi∣3∏∣cxe'亙I旦叵測試運(yùn)行如圖所示:1、開始有512K的空間,未分配。用名稱P來表示。進(jìn)程A申請200K的空間,(申請用1表示,釋放用0表示),其結(jié)果顯示如下。情瑜人申請或者將y聲進(jìn)程名稱及資青輸入申請京者釋我的進(jìn)程名稱及資3■iDι?li^ongq∣an?Debug?liyαπg(shù)qian.e?e"2、進(jìn)程B申請150K的空間,??'IraDsMiyoπg(shù)qisπXDebugXliyoπg(shù)qian.e?θβ.進(jìn)程A釋放200K的空間,請輸入申請或者釋放的進(jìn)程名稱及笠纖Ξ3EI353長度312長度
2001501G2帝輸入臼詩或者釋放的迸程名稱及資*
B1 150雪捻成3%識起址..0 0標(biāo)識起址Ω1 205害霖成功東識起址力 0 日Lg稱 標(biāo)識 起址 長度 狀.p β H 512 未分配腦摘久申請翦者釋放的逑程名稱及貢源城q回TS-"D:\liyongqiaπ?D,eιbug?liyoπg(shù)qiaπ.eκe"睛輸入申請或者釋放的進(jìn)程名稱及資源數(shù)量;E130E130弛?成功L恪稱標(biāo)識C S起址200長度10β欲配D 1E 2P 33003504SSIZjiθ四.12已第己未否配睛輸入申請或者釋放的進(jìn)程名稱及資源數(shù)量:F1 50里度成功L恪稱標(biāo)識C QD 1起址3Θ0jI長度.eei0Il配配E 235gIiβ已分;配F 3 400 50 已分配P 4 450 62 未分配青輸入申請或者釋放的進(jìn)程名稱及資源數(shù)量:五、實(shí)驗(yàn)總結(jié)本次實(shí)驗(yàn)即主存空間分配與回收,通過實(shí)驗(yàn)得出:一個好的計算機(jī)系統(tǒng)不僅要有一個足夠容量的、存取速度高的、穩(wěn)定可靠的主存儲器,而且要能合
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人與公司之間的委托代理合同(2024版)3篇
- 二零二五年度注塑設(shè)備售后服務(wù)合同樣本4篇
- 2025年度新能源汽車充電站建設(shè)與維護(hù)管理合同4篇
- 二零二五年度智能電網(wǎng)10KV線路及變臺安裝與升級合同3篇
- 2025年度智能配電變壓器租賃與物聯(lián)網(wǎng)技術(shù)應(yīng)用合同4篇
- 二零二五年度南京市租賃房屋租賃合同爭議解決合同范本
- 二零二五年度兼職軟件開發(fā)合同范本:智慧家居系統(tǒng)開發(fā)合作協(xié)議4篇
- 類金融模式對美的集團(tuán)財務(wù)績效的影響研究
- 基于注意力機(jī)制的無線通信信號接收研究
- 二零二四年度新型環(huán)保材料土石方工程運(yùn)輸服務(wù)合同模板3篇
- 勞務(wù)派遣勞務(wù)外包服務(wù)方案(技術(shù)方案)
- GB/T 43391-2023市場、民意和社會調(diào)查調(diào)查報告編制指南
- 拔罐技術(shù)操作考核評分標(biāo)準(zhǔn)
- 戒賭法律協(xié)議書范本
- 競選市級三好學(xué)生PPT
- 2024屆甘肅省蘭州市五十一中生物高一上期末檢測模擬試題含解析
- 高標(biāo)準(zhǔn)農(nóng)田建設(shè)上圖入庫(技術(shù)培訓(xùn))
- 火災(zāi)隱患整改登記表
- 天津華寧KTC101說明書
- 【智慧校園】-智慧校園系統(tǒng)方案
- 外研版高中新教材英語單詞表(必修一)
評論
0/150
提交評論