操作系统实验指导书(3)

2018-12-29 22:58

调整内存:

if((str=(char*)realloc(str,20))==NULL) { printf(“Not enough memory to reallocate buffer\\n”); exit(1); }

输出地址:

printf(“String is %s\\n Address is %p\\n”,str,str); 释放内存: free(str);

(2) LRU算法实现参考程序。 #include #include

#define M 4 #define N 17

#define Myprintf printf(\/*表格控制*/

typedef struct page { int num; /*记录页面号*/ int time; /*记录调入内存时间*/ }Page; /* 页面逻辑结构,结构为方便算法实现设计*/

Page b[M]; /*内存单元数*/

int c[M][N]; /*暂保存内存当前的状态:缓冲区*/ int queue[100]; /*记录调入队列*/ int K; /*调入队列计数变量*/

/*初始化内存单元、缓冲区*/ void Init(Page *b,int c[M][N]) { int i,j; for(i=0;i

/*取得在内存中停留最久的页面,默认状态下为最早调入的页面*/ int GetMax(Page *b) { int i; int max=-1; int tag=0; for(i=0;i

/*判断页面是否已在内存中*/ int Equation(int fold,Page *b) { int i; for(i=0;i

/*LRU核心部分*/

void Lru(int fold,Page *b) { int i; int val; val=Equation(fold,b); if (val>=0) {

/* 此部分学生填写(此处可能有一条或多条语句) */ } else {

/* 此部分学生填写(此处可能有一条或多条语句) */ } }

/*主程序*/ void main() { int a[N]={1,0,1,0,2,4,1,0,0,8,7,5,4,3,2,3,4}; int i,j; start:

}

说明:实际系统中往往不直接采用LRU算法作为页面置换算法,因为更新记录页面访问情况的数据项需要较多的开销,因此实际系统常使用LRU的近似算法。

6、实验报告

要求认真书写实验报告,报告的内容包括:实验目的、实验内容、实验步骤、实验结果等。

思考问题:申请得到的内存不释放会有什么结果?

K=-1; Init(b, c);

for(i=0;i

/*结果输出*/

printf(\内存状态为:\\n\ Myprintf;

for(j=0;j

for(i=0;i

Myprintf;

printf(\调入队列为:\ for(i=0;i

printf(\缺页次数为:m\\n缺页率:.6f\ printf(\ if(getche()=='y') goto start;


操作系统实验指导书(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:长春版小学语文古诗词全解(六年级上册)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: