




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗二 主存儲器空間的分配和回收1、 實驗題目模擬在分頁式管理方式下采用位示圖來表示主存分配情況,實現(xiàn)主存空間的分配和回收。 提示: (1)、 分頁式存儲器把主存分成大小相等的若干塊,作業(yè)的信息也按塊的大小分頁,作業(yè)裝入主存時可把作業(yè)的信息按頁分散存放在主存的空閑塊中,為了說明主存中哪些塊已經(jīng)被占用,哪些塊是尚未分配的空閑塊,可用一張位示圖來指出。位示圖可由若干存儲單元來構(gòu)成,其中每一位與一個物理塊對應(yīng),用0/1表示對應(yīng)塊為空閑/已占用。(2)、假設(shè)某系統(tǒng)的主存被分成大小相等的64塊,則位示圖可用8個字節(jié)來構(gòu)成,另用一單元記錄當前空閑塊數(shù)。如果已有第0,1,4,5,6,9,11,13,24,3
2、1,共10個主存塊被占用了,那么位示圖情況如下:字 位 節(jié) 數(shù) 號01234567 011001110 101010100 200000000 310000001 400000000 500000000 600000000 700000000(3)、當要裝入一個作業(yè)時,根據(jù)作業(yè)對主存的需要量,先查當前空閑塊數(shù)是否能滿足作業(yè)要求,若不能滿足則輸出分配不成功。若能滿足,則查位示圖,找出為“0”的一些位,置上占用標志“1”,從“當前空閑塊數(shù)”中減去本次占用塊數(shù)。按找到的計算出對應(yīng)的塊號,其計算公式為: 塊號= j´8+i其中,j表示找到的是第n個字節(jié),I表示對應(yīng)的是第n位。根據(jù)分配給作業(yè)的
3、塊號,為作業(yè)建立一張頁表,頁表格式:頁 號塊 號012MM(4) 、當一個作業(yè)執(zhí)行結(jié)束,歸還主存時,根據(jù)該作業(yè)的頁表可以知道應(yīng)歸還的塊號,由塊號可計算出在位示圖中的對應(yīng)位置,把對應(yīng)位的占用標志清成“0”,表示對應(yīng)的塊已成為空閑塊。歸還的塊數(shù)加入到當前空閑塊數(shù)中。由塊號計算在位示圖中的位置的公式如下:字節(jié)號 j=塊號/8 ( 表示取整)位數(shù) i=塊號/8 ( 表示取余)(5) 設(shè)計實現(xiàn)主存分配和回收的程序。假定位示圖的初始狀態(tài)如(2)所述,現(xiàn)有一信息量為5頁的作業(yè)要裝入,運行你所設(shè)計的分配程序,為作業(yè)分配主存且建立頁表(格式如(3)所述)。然后假定有另一作業(yè)執(zhí)行結(jié)束,它占用的塊號為第4,5,6和
4、31塊,運行你所設(shè)計的回收程序,收回作業(yè)歸還的主存塊。要求能顯示和打印分配或回收前后的位示圖和當前空閑塊數(shù),對完成一次分配后還要顯示或打印為作業(yè)建立的頁表。2、 程序中使用的數(shù)據(jù)結(jié)構(gòu)及符號說明1、數(shù)據(jù)結(jié)構(gòu):本程序中使用的是:一維數(shù)組和二維數(shù)組2、函數(shù)說明:void menu():顯示菜單選項huawei():調(diào)用menu()函數(shù)顯示菜單,并且根據(jù)允許輸入調(diào)用相應(yīng)函數(shù),執(zhí)行操作。void Initvalue():根據(jù)輸入開辟相應(yīng)的塊號空間,并且按照題目要求初始化已占用塊號void kongxiankuai():將空閑塊號保存在kuai數(shù)組中,并記錄數(shù)組中元素個數(shù)void printkongxia
5、nkuaishu():打印空閑塊號void caozuo():根據(jù)作業(yè)所需塊數(shù)修改位示圖void yebiao():打印頁表void weishitu():打印位示圖void guihuan():按照需要釋放內(nèi)存3、 流程圖huawei()Main函數(shù) Initvalue()weishitu()yebiao()kongxiankuai()caozuo()kongxiankuai()guihuan()printkongxiankuaishu()exit(0)4、 打印一份源程序并附上注釋Cpp文件:#include<stdio.h>#include<string.h>#i
6、nclude<malloc.h>#include"stdlib.h"#include"lin1402.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ù)輸入開辟相應(yīng)的塊號空間,并且按照題目要求初始化已占用塊號*/void Initvalue() int i,j;printf("請輸入被分成主存塊的總字節(jié)數(shù)和位數(shù):");scanf(&quo
7、t;%d",&n);scanf("%d",&m);table=(int *)malloc(sizeof(int)*n);/使用指針動態(tài)建立一個位視圖的數(shù)組for(i=0;i<n;i+)tablei=(int *)malloc(sizeof(int)*m);kuai=(int *)malloc(sizeof(int)*(m*n);for(i=0;i<n;i+)for(j=0;j<m;j+)tableij=0;table00=1,table01=1,table04=1,table05=1,table06=1;table11=1,tab
8、le13=1,table15=1,table30=1,table37=1;/按照題目要求把第0 1 4 5 6 9 11 13 24 31塊置為占用/*將空閑塊號保存在kuai數(shù)組中,并記錄數(shù)組中元素個數(shù)*/void kongxiankuai()int i,j,sum=0;k=0;for(i=0;i<n;i+)for(j=0;j<m;j+)if(tableij=0)kuaik=i*8+j;k+; /記錄空閑塊數(shù)/* 打印空閑塊號*/void printkongxiankuaishu()int i;printf("當前空閑的塊數(shù):n");for(i=0;i<
9、k;i+)printf("%d ",kuaii);printf("n");void caozuo()/作業(yè)所需的塊數(shù)int need;int i,j,g=0;printf("請輸入進程的所需塊數(shù)");scanf("%d",&need);if(need>(64-k))printf("內(nèi)存不足。n");goto begin1;while(need!=0)for(i=0;i<n;i+)for(j=0;j<m;j+)if(tableij=0&&need!=0)/
10、作業(yè)分配存儲tableij=1;kuaihaovg=i*8+j; /保存作業(yè)塊號g+;need=need-1;changduv=g;v+;begin1:kongxiankuai();void yebiao()/打印頁表int i,j;printf("打印頁表n");for(j=0;j<v;j+)printf("頁號 塊號n"); for(i=0;i<changduj;i+) printf("%d %dn",i,kuaihaoji);void weishitu()/打印位示圖int i,j;printf("打印位示
11、圖n");printf(" ");for(i=0;i<n;i+)printf("%3d",i); printf("n");for(i=0;i<n;i+)printf("%3d",i);for(j=0;j<m;j+)printf("%3d",tableij);printf("n");void guihuan() /按照需要釋放內(nèi)存int i,q,p,j; /p表示數(shù)組長度printf("請輸入歸還的進程號:");scanf(&qu
12、ot;%d",&p);for(q=0;q<changdup-1;q+)i=kuaihaopq/8;j=kuaihaopq%8;tableij=0;/找到對應(yīng)得位置,然后置為0;kongxiankuai();void menu()/顯示操作列表printf("存儲器管理:n");printf("1.初始化n");printf("2.打印位視圖n");printf("3.打印頁表n");printf("4.進程操作n");printf("5.歸還n");printf("6.打印空閑塊號n");printf("7.退出n");void huawei()/根據(jù)輸入執(zhí)行相應(yīng)操作begin:menu();/輸出菜單列表 int q;scanf("%d",&q);switch(q)case 1:Initvalue();goto begin;break;case 2
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 編曲師崗位面試問題及答案
- 影視特效合成師崗位面試問題及答案
- 系統(tǒng)安全工程師崗位面試問題及答案
- 湖北省武漢市華大新2025年高一下化學期末教學質(zhì)量檢測模擬試題含解析
- 安徽省名校2025屆高一下化學期末監(jiān)測試題含解析
- 2025屆安徽定遠示范高中高二下化學期末統(tǒng)考試題含解析
- 山東省鄒城市第一中學2025年化學高二下期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 檔案收費存放管理辦法
- 軍用專用倉庫管理辦法
- 混合現(xiàn)實教學應(yīng)用-洞察及研究
- 夫妻代理訴訟授權(quán)委托書
- 個人生意入股合同范本
- 靜脈的導(dǎo)管維護新進展課件
- 對房產(chǎn)評估異議申請書
- 2025年度水利工程代建合同模板
- 云南經(jīng)濟管理學院就業(yè)協(xié)議書
- 2025年全球及中國智能艾灸服務(wù)機器人行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 九年級全一冊英語單詞默寫表(人教版)
- DB50T 990-2020 地質(zhì)災(zāi)害治理工程施工質(zhì)量驗收規(guī)范
- 《鐵路電力線路運行與檢修》課件 第五章 電力線路運行與維護
- 2024年交通基礎(chǔ)設(shè)施行業(yè)信用回顧與2025年展望
評論
0/150
提交評論