- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基本分页存储管理
实验目的
连续内存分配方式会形成许多“碎片”,虽然可以通过“紧凑”方法将许多碎片拼接成可用的大块空间,但须为之付出很大开销。如果允许将一个进程直接分散地装入到许多不相邻接的分区中,则无需再进行“紧凑”。基于这一思想而产生了离散分配方式。如果离散分配的基本单位是页,则称为分页存储管理方式;如果离散分配的基本单位是段,则称为分段存储管理方式。
在分页存储管理方式中,如果不具备页面兑换功能,则称为基本的分页存储管理方式,或称为纯分页存储管理方式,它不具备支持虚拟存储器的功能,它要求把每个作业全部装入内存后方能运行。
本实验通过程序模拟操作系统的基本分页存储管理方式,进一步理解这一内存分配方式的原理和特点,加深对理论知识的掌握。
实验要求
1、用C语言或Java语言编写程序模拟操作系统对内存的基本分页存储管理方式
2、程序要能正确对“内存”进行“分配”和“回收”,能接受用户的输入,显示内存的分配情况,并有一定的容错能力。
3、每个人独立按时完成实验内容。
实验内容
本实验假定内存空间已经按块划分,目标程序无需关心内存块大小等底层细节,只需按算法对内存块进行分配即可。程序应该实现以下功能:
1、内存初始化。假定内存块共有N个,初始化后的内存空间应该有一部分已经被使用,这可以用随机数或程序内部的其他算法完成。
2、程序应该能接受用户输入的进程信息,并为之分配内存,返回分配结果(成功或失败),注意,此处应该考虑到不合法的输入并进行相应处理。
3、程序能回收用户指定的进程所占用的内存空间,因此,程序可能需要为每个进程分配一个唯一的进程号并给出详细的提示信息。
4、能直观合理地显示内存分配情况。
5、程序界面友好,便于操作和查看运行结果。
#include stdio.h
#include windows.h
#define N 100 // 共有100个内存块
int process[N][N+1]; // 存放每个进程的页表
int block[N]; // 内存块状态标志数组,0:空闲,1:使用
int blockCount; // 记录当前内存剩余空间
int processCount; // 记录当前进程数
bool flag = true;
void init();
void output();
bool createProcess();
bool endProcess();
void init()
{
int i, j;
// 初始化内存状态标志数组
for (i=0; iN; i++)
block[i] = 0;
for (i=0; i20; i++)
block[rand()%(N-1)] = 1;
blockCount = 0;
for (i=0; iN; i++)
if (block[i] == 0)
blockCount++;
// 初始化存放进程的数组
for (i=0; iN; i++){
process[i][0] = 0;
for (j=1; jN; j++)
process[i][j] = -1;
}
processCount = 0;
printf(初始化结果如下:);
output();
flag = false;
}
void output()
{
printf(\n内存总量:%d 块, 已用空间:%d 块, 剩余空间:%d 块, 进程总数:%d 个\n, N, N-blockCount, blockCount, processCount);
if (flag blockCount N)
{
printf(已使用的内存块(%d):\n, N-blockCount);
for (int k=0,count=0; kN; k++)
{
if (block[k] == 1)
printf(%2d , k, ++count);
if (count == 15)
{
putchar(\n);
count = 0;
}
}
putchar(\n);
}
// 输出各进程占用内存详细情况
if (processCount 0)
{
printf(内存详细使用情况如下:\n);
for (int i=0; iN; i++)
{
if (process[i][0] 0)
{
printf(进程号:%d \n占用内存块(%2d):, i, process[i][0]);
for (int j=1,count=0; j
您可能关注的文档
- 崔庆创—地环学院资源勘查.doc
- 度国家社会科学基金项目课题指南(0000).doc
- m以上主体钢筋技术交底.doc
- VC局域网的聊天室系统.doc
- 级英语专业限选课教学计划.doc
- 法律人个月一次性通过CPA门的苦与乐来源.doc
- 北京市东城区高届一模语文.doc
- 届“移动校讯通杯”全国教师论文大赛指南.doc
- 落料凸模零件课设模板.doc
- 防止人员误操作管理办法(大唐集团制〔〕号).doc
- 2025年嵌入式系统设计师考试嵌入式系统农业自动化应用优化试卷.docx
- 2025年特种设备作业人员考试特种设备操作人员安全操作能力试题试卷.docx
- 2025年软件设计师考试-软件设计与开发实践案例试卷.docx
- 2025年天津市事业单位招聘考试综合类专业能力测试试卷(新闻类)备考技巧.docx
- 湖南洞口县石江话语音的深度剖析与文化溯源.docx
- 2025年西式烹调师(高级)西餐烹饪安全知识技能鉴定试卷.docx
- 2025年钳工(中级)考试试卷:金属切削加工原理与工艺.docx
- 2025年小学英语毕业考试模拟卷:写作思路拓展与英语作文写作习惯培养试题.docx
- 2025年小学语文毕业升学考试全真模拟卷(语文知识趣味竞赛)试题解析与备考策略.docx
- 2025年安全教育培训考试通用题库(进阶提升版)-安全教育培训内容创新试题.docx
最近下载
- 基于产业闭环的废旧纺织品回收再利用价值研究-北京服装学院.PDF VIP
- 医院医学装备发展规划、计划的实施方案.docx VIP
- 2025年全国宗教工作会议提出的14项内容 .pdf VIP
- 抖音本地生活服务酒店酒旅类主播直播进阶培训教程.pptx
- 一年级道德与法治教案(全套).pdf VIP
- QGDW 11425-2018 省、地、县电网继电保护一体化整定计算技术规范.pdf VIP
- 公路治理工程施工方案(3篇).docx VIP
- 信息安全、网络安全和隐私保护——信息安全控制风险识别操作指导手册(雷泽佳编制2024A0).pdf VIP
- 《网络安全技术 人工智能生成合成内容标识方法》知识培训.pptx VIP
- 取暖器相关知识培训课件.pptx
文档评论(0)