操作系统实验报告6-页面置换算法模拟

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作系统实验报告6-页面置换算法模拟

实验报告

( 2013 / 2014学年第1学期)

课程名称操作系统原理

实验名称实验6:页面置换算法模拟

实验时间2013 年12 月 10 日

指导单位软件工程系

指导教师杨健

学生姓名班级学号

学院(系) 软件工程系专业计算机软件与服务外包

//本?程ì序ò中D全?局?变?量?名?均ù由?两?个?单蹋?词洙?组哩?成é,?且ò开a头?字?母?大洙?写′int BlockSize = 5;//物?理え?块é大洙?小?

int PageCount = 200;//页?面?总哩?数簓

int PageSize = 1024;//页?面?大洙?小?

int AddrRange = 8*1024;//访?问ê地?址·范?围§

int get_num(int down,int up)//得?到?一?个?down~up之?间?的?整?数簓

{

int num;

char str[111];

while(1){

fgets(str,111*sizeof(int),stdin);

num=atoi(str);//把?字?符?串?中D的?数簓字?转羇换?为a整?数簓

if(num>=down&& num<=up)

break;

printf("输?入?范?围§有瓺误ó,请?重?新?输?入?:");

}//while

return num;

}

void init_block()//构1造ì一?个?空?的?物?理え?块é队ó列

{

Block.rear=Block.front=(BlockNode*)malloc(sizeof(BlockNode));

if(!Block.front){

printf("内ú存?分?配?失骸?败悒?\n");

exit(0);

}

Block.length=0;

Block.miss_count=0;

while(Block.rear=Block.front->next){

Block.front->next=Block.rear->next;

free(Block.rear);

Block.length--;

}

Block.rear=Block.front;

Block.length=0;

Block.miss_count=0;

}

void destroy_block()//销ú毁ù物?理え?块é

{

while(Block.rear=Block.front){

Block.front=Block.front->next;

free(Block.rear);

}

free(page);

}

void init_page()//初?始?化ˉ页?面?系μ列

{

int i,j;

srand(time(NULL));//用?当獭?前°系μ统?时骸?间?来ぁ?初?始?化ˉ随?机ú种?子哩? page=(struct node_page*) malloc(PageCount*sizeof(struct node_page));

for(i=0;i

page[i].address=rand()%AddrRange;

page[i].page_num=page[i].address/PageSize;

}

for(i=0;i

for(j=i+1;j

if(page[i].page_num== page[j].page_num){

page[i].next_order=j;

break;

}//if

}//for

if(j== PageCount)//说μ明÷page[i]以?后ó都?不?会á再ù访?问ê

page[i].next_order= PageCount;

}//for

}

void print_page()//打洙?印?页?面?系μ列

{

int i;

printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("页?面?系μ列为a:阰\n");

for(i=0;i

printf("[%-2d,%-4d]",page[i].page_num,page[i].address%PageSize); if((i+1)%5== 0){

printf("\n");

}//if

}

printf("\n");

}

void FIFO_Replace(int page_index)//FIFO置?换?

{

BlockNode*node;

if(!Block.length){

else if(num == 2) confige();

}

destroy_block(); return 0;

}

截图

用心整理的精品word文档,下载即可编辑!!

精心整理,用心做精品18

相关文档
最新文档