没有合适的资源?快使用搜索试试~ 我知道了~
天津理工大学操作系统存储器的分配与回收算法实现实验报告.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 73 浏览量
2022-06-26
10:05:59
上传
评论
收藏 240KB DOC 举报
温馨提示
试读
14页
天津理工大学操作系统存储器的分配与回收算法实现实验报告.doc
资源推荐
资源详情
资源评论
实验报告
学院(系)名称:计算机与通信工程学院
姓名 nasta 学号 http://nasta.tk 专业 计算机科学与技术
班级 2010 级 2 班 实验项目 实验二:存储器的分配与回收算法实现
课程名称 操作系统 课程代码 0668036
实验时间
2012 年 12 月 13 日 第 7、8 节
2012 年 12 月 17 日 第 3、4 节
2012 年 12 月 20 日 第 7、8 节
实验地点 软件实验室 7-215
批改意见 成绩
教师签字:
实验内容:
1. 模拟操作系统的主存分配,运用可变分区的存储管理算法设计主存分配和回收程序,并不实际启动装
入作业。
2. 采用最先适应法、最佳适应法、最坏适应法分配主存空间。
3. 当一个新作业要求装入主存时,必须查空闲区表,从中找出一个足够大的空闲区。若找到的空闲区大
于作业需要量,这是应把它分成二部分,一部分为占用区,加一部分又成为一个空闲区。
4. 当一个作业撤离时,归还的区域如果与其他空闲区相邻,则应合并成一个较大的空闲区,登在空闲区
表中。
5. 运行所设计的程序,输出有关数据结构表项的变化和内存的当前状态。
实验要求:
1. 详细描述实验设计思想、程序结构及各模块设计思路;
2. 详细描述程序所用数据结构及算法;
3. 明确给出测试用例和实验结果;
4. 为增加程序可读性,在程序中进行适当注释说明;
5. 认真进行实验总结,包括:设计中遇到的问题、解决方法与收获等;
6. 实验报告撰写要求结构清晰、描述准确逻辑性强;
7. 实验过程中,同学之间可以进行讨论互相提高,但绝对禁止抄袭。
【实验过程记录(源程序、测试用例、测试结果及心得体会等)】
源程序:
MemoryBlock.java:
//内存块类,包含各种操作
public class MemoryBlock {
static final int BLOCK_SIZE = 4096;
private int baseBlock; //内存块基地址
private int blockNum; //大小
private boolean inUse; //是否已分配
private MemoryBlock prev, next;
public MemoryBlock(int blockNum) {
this.baseBlock = 0;
this.blockNum = blockNum;
inUse = false;
prev = null;
next = null;
}
public MemoryBlock(int base, int blockNum) {
this.baseBlock = base;
this.blockNum = blockNum;
inUse = false;
prev = null;
next = null;
}
public int getBlockNum() {
return blockNum;
}
public void setBlockNum(int blockNum) {
this.blockNum = blockNum;
}
public MemoryBlock getPrev() {
return prev;
}
public void setPrev(MemoryBlock prev) {
this.prev = prev;
}
public MemoryBlock getNext() {
return next;
}
public void setNext(MemoryBlock next) {
this.next = next;
}
public boolean inUse() {
return inUse;
}
public void setUse() {
inUse = true;
}
public void free() {
inUse = false;
}
public int getBaseBlock() {
return baseBlock;
}
public void setBaseBlock(int baseBlock) {
this.baseBlock = baseBlock;
}
//分配内存块,如果可分配,则返回剩余内存块
public MemoryBlock allocate(int blockNum) {
if(this.blockNum - blockNum>0) {
int newBase = baseBlock + blockNum;
int newBlock = this.blockNum-blockNum;
this.blockNum = blockNum;
setUse();
return new MemoryBlock(newBase, newBlock);
}
else if(this.blockNum - blockNum ==0) {
this.blockNum = 0;
}
return null;
}
剩余13页未读,继续阅读
资源评论
智慧安全方案
- 粉丝: 3650
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功