毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 报告 >> 正文

用分页管理,使用位示图实现主存的分配与回收

更新时间:2009-5-28:  来源:毕业论文

用分页管理,使用位示图实现主存的分配与回收
一、实验目的:
采用分页管理,使用位示图实现主存的分配与回收
二、实验内容:
主存是中央处理机能直接存取指令和数据的存储器。能否合理而有效地使用主存,在很大程度上将影响到整个计算机系统的性能。实现主存空间的分配与回收。
三、试验环境:
    VC++
四、实验原理及试验步骤:
(1)主存的分页管理是把主存分成大小相等的若干块,作业的信息按块的大小分成若干页。作业装入主存时,可把作业的信息按页分散在主存的若干块中。为了标识主存中哪些块空闲,哪些块占用,可用一张位示图指示。位示图是由若干主存单元构成。其中每一位与一个主存块对应。分别用0和1表示对应块是空闲还是占用。
(2)假定某系统的主存被分成大小相等的64块,则位示图可用8个字节构成。再用一个变量记录当前可用的空闲块总数。如果已有第0、1、2、3、4、5、9、11、13、24、31共11块被占用,其位示图描述如图3-3所示。
(3)当要装入一个作业时,根据作业对主存的需求量,先查记录当前空闲块数变量的值是否满足作业的需求量。若不满足,则给出分配不成功的信息,且作业等待;若满足,则查位示图,按作业需求量找出为零的一些位,且置上占用标志1,并从当前空闲块变量中减去本次分配的块数。
按找到的位计算对应的块号。计算公式:块号=J*8+I。其中,J表示找到的字节号,I表示找到的位号。
根据分配给作业的块号,为作业建立一张页表,格式如图3-4所示。
       位号
字节号      0   1   2   3   4   5   6   7
0       1   1   1   1   1   1   0   0
页号 块号



 
1       0   1   0   1   0   1   0   0
2       0   0   0   0   0   0   0   0
3       1   0   0   0   0   0   0   1
4       0   0   0   0   0   0   0   0
5       0   0   0   0   0   0   0   0
6       0   0   0   0   0   0   0   0
7       0   0   0   0   0   0   0   0
     当前空闲块总数:53
图3-3 主存某时刻的位示图
(4)当一个作业执行结束时,释放主存。根据页表可知要释放的块号和块数。由块号计算其在位示图中的位置,将对应位的标志置0,以此表示该块已空闲。之后,再将释放的块数累加到当前空闲块变量中。
由块号计算字节号和位号的公式如下:
字节号=int(块号/8)    位号=mod(块号/8)
(5)设计和实现主存分配和回收的程序
五、实验代码:
 
#include<iostream>
#include<string>
#include<math.h>
using namespace std;
#define N 8     //将主存分为大小相等的NxN块
#define LENGTH 8 //主存每块大小

int MAP[N][N];//位示图
int FREE=0;     //当前空闲的块数
int NUMBER;   //分割后文件的块数
www.lwfree.cn
struct FileTest
{
 string FileName;    //装入的文件名
 int FileSize;       //装入的文件大小
 int FilePageNumber; //页号
 int FileKuaiNumber[40]; //块号
};
struct FileTest file;
void Filecin()//文件输入
{
 
 cout<<"请输入要装入文件的文件名:";
 cin>>file.FileName;
 cout<<"请输入要装入文件的大小:";
 cin>>file.FileSize;
 cout<<"文件名:"<<file.FileName<<" "<<"文件大小:"<<file.FileSize<<endl;

}
void map_state()//输出位示图状态
{
 
 cout<<"当前主存位示图状态如下(1表示占用,0表示空闲):"<<endl;
 cout<<"-----------------------------------"<<endl;
 for(int i=0;i<N;i++)
 {
  for(int j=0;j<N;j++)
  {
   cout<<MAP[i][j]<<"   ";//初始化位示图420

[1] [2] 下一页

用分页管理,使用位示图实现主存的分配与回收下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©lwfree.cn 六维论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。