固定分区存储管理.doc
文本预览下载声明
昆明理工大学信息工程与自动化学院学生实验报告
( 2013 —2014 学年第 一 学期 )
课程名称:操作系统 开课实验室:信自楼444 2013年 11月28 日
年级、专业、班 物联网2011级 学号 姓名 成绩 实验项目名称 固定分区存储管理 指导教师 教师评语
该同学是否了解实验内容与要求:A.了解□ B.基本了解□ C.不了解□
设计思想或流程图是否正确: A.正确□ B.基本正确□ C.较差 □
该同学的实验能力: A.强 □ B.中等 □ C.差 □
该同学的实验是否达到要求: A.达到□ B.基本达到□ C.未达到□
实验报告是否规范: A.规范□ B.基本规范□ C.不规范□
是否有运行结果与分析: A.详细□ B.一般 □ C.没有 □
是否有总结与体会: A.详细□ B.一般 □ C.没有 □
教师签名:
年 月 日 注:报告内容按下列的要求进行。
实验目的
通过编写固定分区存储管理的模拟程序,加深对操作系统存储管理功能中的固定分区管理方式、主存分配表等相应知识的理解。
通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解熟悉管理的设计一个分区分配的存储管理方案。并模拟实现分区的分配和回收过程。 m_No用来表示该内存空间的序号。属性m_Addr用来表示内存分区的起始地址。属性m_Size用来表示内存空间的大小。属性m_State表示内存空间的是否已分配的状态标志。若该内存空间已分配,m_TaskNo表示占有该内存空间的任务序号。否则没有实际意义。
在用户申请任务的内存空间时,提示用户输入任务号和其需要的内存空间大小。
流程图
主程序:
Y
N
Y
N
Y
N
分配内存空间算法:
Y
Y
Y
N Y
释放内存空间算法
四、算法设计的实现
1、类设计
本程序设计了两个比较简单的类:Node类和MManage类。Node类主要是存放每个固定分区的一些信息。而MManage类则主要是对Node类的容器ListNode进行一些操作来实现要求的内存空间的的分配和释放。
类设计的数据成员和接口如下:
Node.h
#ifndef NODE_H
#define NODE_H
class Node
{
public:
Node(int No, int Addr, int Size);
int getSize() const
{
return m_Size;
}
bool getState() const
{
return m_State;
}
int getTaskNo() const
{
return m_TaskNo;
}
void setState(bool State);
void setTaskNo(int TaskNo);
void print();
private:
int m_No;
int m_Addr;
int m_Size;
bool m_State;
int m_TaskNo;
};
#endif //NODE_H
MManage.h
#ifndef MMANAGE_H
#define MMANAGE_H
#include vector
class Node;
class MManage
{
public:
//MManage();
MManage(int MLength);
MManage(std::vectorNode No
显示全部