第一范文网 - 专业文章范例文档资料分享平台

分页式管理实验报告

来源:用户分享 时间:2025/5/24 10:04:11 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

#include #include #include #include #include

#define n 11 //模拟实验中允许的最大进程数为n #define m 11 //模拟实验中允许的最大分区个数为m #define M_SIZE 2000 struct {

float address; //分配给进程的起始地址

float length; //分配给进程的空闲区长度,单位为字节 int flag; //分配区表标志,用\已分配,用\表示未分配 }Used_Table[m]; //分配分区表 struct {

float address; float length; int flag;

}Free_table[m];

float stand_length(int k)//随机产生一个分区大小的函数 {

float st_length[20];

srand((unsigned)time(NULL));//srand()函数产生一个当前时间开始的随机种子

for (int i=0;i<20;i++)

st_length[i]=float (rand()00); return st_length[k]; }

float process_length(int k)//随机产生一个进程大小的函数 {

float pt_length[20];

srand((unsigned)time(NULL));//srand()函数产生一个当前时间开始的随机种子

for (int i=0;i<20;i++)

pt_length[i]= float (rand()P0); return pt_length[k]; }

int process_num()//随机产生一个进程个数的函数 { int num;

int A[10]={1,2,3,4,5,6,7,8,9,10}; srand((unsigned)time(NULL)); num=rand(); return A[num]; }

char srand_name(int k)//随机产生一个进程的名字 {

char A[26]={'A','B','C','D','E','F','G','H','I',

'J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}; return A[k]; }

void allocate(char PRS_NAME,float X_K) //采用最优分配算法为进程PRS_NAME分配X_K大小的空间 {

int i,k; float ad; k=-1;

for(i=0;i=X_K&&Free_table[i].flag==1) if(k==-1||Free_table[i].length

if(k==-1)//未找到可用空闲分区,返回 {

printf(\无可用空闲区\\n\return; }

//找到可用空闲区,开始分配:

if(Free_table[k].length-X_K<=M_SIZE) {

Free_table[k].flag=0; ad=Free_table[k].address; X_K=Free_table[k].length; } else {

Free_table[k].length=Free_table[k].length-X_K;

搜索更多关于: 分页式管理实验报告 的文档
分页式管理实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9u3en5po8c0daes3z42i_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top