下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)二主存儲(chǔ)器空間的分配和回收、實(shí)驗(yàn)題目模擬在分頁(yè)式管理方式下采用位示圖來(lái)表示主存分配情況,實(shí)現(xiàn)主存空間的 分配和回收。提示:(1)、分頁(yè)式存儲(chǔ)器把主存分成大小相等的若干塊,作業(yè)的信息也按塊的大 小分頁(yè),作業(yè)裝入主存時(shí)可把作業(yè)的信息按頁(yè)分散存放在主存的空閑塊中, 為了 說(shuō)明主存中哪些塊已經(jīng)被占用,哪些塊是尚未分配的空閑塊,可用一張位示圖來(lái) 指出。位示圖可由若干存儲(chǔ)單元來(lái)構(gòu)成,其中每一位與一個(gè)物理塊對(duì)應(yīng),用 0/1 表示對(duì)應(yīng)塊為空閑/已占用。(2)、假設(shè)某系統(tǒng)的主存被分成大小相等的 64塊,則位示圖可用8個(gè)字節(jié)來(lái) 構(gòu)成,另用一單元記錄當(dāng)前空閑塊數(shù)。如果已有第 0, 1, 4, 5, 6, 9,
2、11, 13, 24, 31,共10個(gè)主存塊被占用了,那么位示圖情況如下:01234567數(shù)號(hào)011001110101010100200000000310000001400000000500000000600000000700000000(3)、當(dāng)要裝入一個(gè)作業(yè)時(shí),根據(jù)作業(yè)對(duì)主存的需要量,先查當(dāng)前空閑塊數(shù) 是否能滿足作業(yè)要求,若不能滿足則輸出分配不成功。若能滿足,則查位示圖, 找出為“0”的一些位,置上占用標(biāo)志“ 1”,從“當(dāng)前空閑塊數(shù)”中減去本次占 用塊數(shù)。按找到的計(jì)算出對(duì)應(yīng)的塊號(hào),其計(jì)算公式為:塊號(hào)=j-8+i其中,j表示找到的是第n個(gè)字節(jié),I表示對(duì)應(yīng)的是第n位。根據(jù)分配給作業(yè)的塊號(hào),為作
3、業(yè)建立一張頁(yè)表,頁(yè)表格式:頁(yè)號(hào)塊號(hào)0121 -(4)、當(dāng)一個(gè)作業(yè)執(zhí)行結(jié)束,歸還主存時(shí),根據(jù)該作業(yè)的頁(yè)表可以知道應(yīng)歸 還的塊號(hào),由塊號(hào)可計(jì)算出在位示圖中的對(duì)應(yīng)位置,把對(duì)應(yīng)位的占用標(biāo)志清成“0”,表示對(duì)應(yīng)的塊已成為空閑塊。歸還的塊數(shù)加入到當(dāng)前空閑塊數(shù)中。 由塊號(hào) 計(jì)算在位示圖中的位置的公式如下:字節(jié)號(hào)j=塊號(hào)/8(表示取整)位數(shù)i=塊號(hào)/8( 表示取余)(5)設(shè)計(jì)實(shí)現(xiàn)主存分配和回收的程序。假定位示圖的初始狀態(tài)如(2)所述,現(xiàn)有一信息量為5頁(yè)的作業(yè)要裝入,運(yùn)行你所設(shè)計(jì)的分配程序,為作業(yè)分配主存 且建立頁(yè)表(格式如(3)所述)。然后假定有另一作業(yè)執(zhí)行結(jié)束,它占用的塊號(hào) 為第4, 5, 6和31塊,運(yùn)行
4、你所設(shè)計(jì)的回收程序,收回作業(yè)歸還的主存塊。要求能顯示和打印分配或回收前后的位示圖和當(dāng)前空閑塊數(shù),對(duì)完成一次分配后還要顯示或打印為作業(yè)建立的頁(yè)表。、程序中使用的數(shù)據(jù)結(jié)構(gòu)及符號(hào)說(shuō)明1、數(shù)據(jù)結(jié)構(gòu):本程序中使用的是:一維數(shù)組和二維數(shù)組2、函數(shù)說(shuō)明:void menu():顯示菜單選項(xiàng)huawei():調(diào)用menu()函數(shù)顯示菜單,并且根據(jù)允許輸入調(diào)用相應(yīng)函數(shù),執(zhí) 行操作。void Initvalue():根據(jù)輸入開(kāi)辟相應(yīng)的塊號(hào)空間,并且按照題目要求初始化 已占用塊號(hào)void kongxiankuai():將空閑塊號(hào)保存在kuai數(shù)組中,并記錄數(shù)組中元素個(gè)void printkongxiankuaish
5、u():打印空閑塊號(hào)void caozuo():根據(jù)作業(yè)所需塊數(shù)修改位示圖void yebiao():打印頁(yè)表void weishitu():打印位示圖void guihuan():按照需要釋放內(nèi)存三、流程圖四、打印一份源程序并附上注釋Cpp文件:#include#include#include#includestdlib.h#includelin1402.h”int main()huawei();return 0;頭文件:int *table;int m,n;int b=0;int *kuai;int changdu10;int k;int v=0;int kuaihao1064;/*根據(jù)輸
6、入開(kāi)辟相應(yīng)的塊號(hào)空間,并且按照題目要求初始化已占用塊號(hào)*/void Initvalue()int i,j;printf(”請(qǐng)輸入被分成主存塊的總字節(jié)數(shù)和位數(shù):);scanf(%d,&n);scanf(%d,&m);table=(int *)malloc(sizeof(int)*n);/使用指針動(dòng)態(tài)建立一個(gè)位視圖的數(shù)組 for(i=0;in;i+)tablei=(int *)malloc(sizeof(int)*m);kuai=(int *)malloc(sizeof(int)*(m*n);for(i=0;in;i+)for(j=0;jm;j+)table皿=0;table00=1,table0
7、1=1,table04=1,table05=1,table06=1;table11=1,table13=1,table15=1,table30=1,table37=1;/按照題目要求把第0 1 4 5 6 9 11 13 24 31塊置為占用/*將空閑塊號(hào)保存在kuai口數(shù)組中,并記錄數(shù)組中元素個(gè)數(shù)*/void kongxiankuai()int i,j,sum=0;k=0;for(i=0;in;i+)for(j=0;jm;j+)if(tableij=0)kuaik=i*8+j;k+;/記錄空閑塊數(shù)/*打印空閑塊號(hào)*/void printkongxiankuaishu()int i;print
8、f(當(dāng)前空閑的塊數(shù):n);for(i=0;i (64-k)printf(內(nèi)存不足。n);goto beginl;while(need!=0)for(i=0;in;i+)for(j=0;jm;j+)作業(yè)分配存儲(chǔ)/保存作業(yè)塊號(hào)if(tableij=0&need!=0)/tableij=1;kuaihaovg=i*8+j;g+;need=need-1;changduv=g;v+;begin1: kongxiankuai();void yebiao()/ 打印頁(yè)表int i,j;printf(打印頁(yè)表 n);for(j=0;jv;j+)printf(頁(yè)號(hào) 塊號(hào)n);for(i=0;ichangduj;
9、i+)printf(%d%dn,i,kuaihao皿i);void weishitu()打印位示圖int i,j;printf(打印位示圖n);printf( );for(i=0;in;i+)printf(%3d,i);printf(n);for(i=0;in;i+)printf(%3d,i);for(j=0;jm;j+)printf(%3d,tableij);printf(n);void guihuan() 按照需要釋放內(nèi)存int i,q,p,j; /p表示數(shù)組長(zhǎng)度printf(請(qǐng)輸入歸還的進(jìn)程號(hào):);scanf(%d,&p);for(q=0;qchangdup-1;q+)i=kuaihao
10、pq/8;j=kuaihaopq%8;tableij=0;/找到對(duì)應(yīng)得位置,然后置為0;kongxiankuai();void menu()/顯示操作列表printf(存儲(chǔ)器管理:n);printf(1.初始化 n);printf(2.打印位視圖n);printf(3.打印頁(yè)表 n);printf(4.進(jìn)程操作 n);printf(5.歸還 n);printf(6.打印空閑塊號(hào)n);printf(7.退出 n);void huawei()/根據(jù)輸入執(zhí)行相應(yīng)操作begin:menu();/f俞出菜單歹!J表int q;scanf(%d,&q);switch(q)case 1:Initvalue();goto begin;break;case 2:weishitu();goto begin;break;case 3:yebiao();goto begin;break;case 4:caozuo();goto begin;break;case 5:guihuan();goto begin;break;case 6:printkongxiankuaishu();goto begin;break;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)教師教學(xué)能力提升制度
- 企業(yè)員工培訓(xùn)與素質(zhì)發(fā)展目標(biāo)路徑技能制度
- 2026年可持續(xù)發(fā)展視角下的綠色交通建設(shè)與策略題庫(kù)
- 合成生物學(xué)“細(xì)胞工廠”生產(chǎn)過(guò)程的實(shí)時(shí)代謝流分析與優(yōu)化軟件服務(wù)合同
- 會(huì)員客戶分級(jí)權(quán)益管理制度
- 2025年山西省運(yùn)城市單招職業(yè)適應(yīng)性測(cè)試題庫(kù)附答案解析
- 2025年浙江工商大學(xué)馬克思主義基本原理概論期末考試模擬題含答案解析(奪冠)
- 2025年蘇州工業(yè)職業(yè)技術(shù)學(xué)院馬克思主義基本原理概論期末考試模擬題及答案解析(奪冠)
- 2025年臨汾職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)帶答案解析
- 2025年山東省淄博市單招職業(yè)適應(yīng)性考試題庫(kù)附答案解析
- 《心源性暈厥》課件
- 2025-2030中國(guó)硝酸銨行業(yè)市場(chǎng)全景調(diào)研及投資價(jià)值評(píng)估咨詢(xún)報(bào)告
- 個(gè)人IP打造運(yùn)營(yíng)方案【新媒體運(yùn)營(yíng)】【個(gè)人自媒體IP】
- 2024-2025學(xué)年七年級(jí)語(yǔ)文上學(xué)期期末專(zhuān)題復(fù)習(xí):基礎(chǔ)知識(shí)運(yùn)用(含答案)
- 高溫熔融金屬企業(yè)安全知識(shí)培訓(xùn)
- 航天禁(限)用工藝目錄(2021版)-發(fā)文稿(公開(kāi))
- 鄰近鐵路營(yíng)業(yè)線施工監(jiān)測(cè)技術(shù)規(guī)程編制說(shuō)明
- 教育科學(xué)研究方法智慧樹(shù)知到期末考試答案章節(jié)答案2024年浙江師范大學(xué)
- 民辦高中辦學(xué)方案
- 樹(shù)脂鏡片制作課件
- 企業(yè)對(duì)賬函模板11
評(píng)論
0/150
提交評(píng)論