没有合适的资源?快使用搜索试试~ 我知道了~
湖南师大操作系统报告.doc
资源推荐
资源详情
资源评论
湖南师大操作系统报告
- 1 -
湖南师范大学
操作系统实验报告
姓 名:
年 级:
专 业: 计算机科学与技术
学 号:
任课教师:
开课时间:2012~2013 学年第二学期
湖南师大操作系统报告
- 2 -
实验(一)
可变分区存储管理
一、实验目的:(四号黑体)
1、加深对可变分区存储管理的理解;
2、提高用 C 语言编制大型系统程序的能力,特别是掌握 C 语言编的
难点:指针和指针作为函数参数;
3、掌握用指针实现链表和在链表上的基本操作。
二、实验内容:(四号黑体)
参照教材 P123-P125 的内容,编写一个 C 程序,用 char *malloc
(unsigned size)函数向系统申请一次内存空间(如 size=1000,
单位为字节),用循环首次适应算法、最佳适应算法和最坏适应算法,
模拟 UNIX 可变分区存储管理,实现对内存区的分配和释放管理。
三、程序分析与设计:(四号黑体)
1、算法思想和概要设计(四号仿宋,单倍行距)
把空闲表设计成链表结构的循环队列,各空闲区仍按地址从低到
高的次序登记在空闲区的管理队列中,存放空闲区大小和空闲区起始
地址,同时设置一个起始查找指针,指向循环队列中的一个空闲区表
项。另外,开设一个结构数组,用于进程处理,存放进程区的进程大
小和起始地址。
循环首次适应法分配时总是从起始查找指针所指的表项开始查找,第
一次找到满足要求的空闲区时,就分配所需大小的空闲区,修改表项,
并调整起始查找指针,使其指向队列中被分配的后面的那块空闲区,
湖南师大操作系统报告
- 3 -
下次分配时就从新指向的那块空闲区开始查找。同时,将新的进程信
息加入到进程数组中。
2、源程序
#include <vector>
#include <cstdlib>
#include <iostream>
using namespace std;
#define Free 0
#define Busy 1
#define OK 1
#define ERROR 0
#define MAX_length 1000
typedef int Status;
int flag;
typedef struct freearea//定义一个空闲区说明表结构
{
long size;
long address;
int state;
湖南师大操作系统报告
- 4 -
}ElemType;
// 线性表的双向链表存储结构
typedef struct DuLNode
{
ElemType data;
struct DuLNode *prior;
struct DuLNode *next;
}
DuLNode,*DuLinkList;
DuLinkList block_first; //头结点
DuLinkList block_last; //尾结点
Status alloa(int);//内存分配
Status free(int); //内存回收
Status First_fit(int);//循环首次适应算法
Status Best_fit(int); //最佳适应算法
Status Worst_fit(int); //最差适应算法
void show();//查看分配
Status Initblock();//开创空间表
Status Initblock()//开创带头结点的内存空间链表
湖南师大操作系统报告
- 5 -
{
block_first=(DuLinkList)malloc(sizeof(DuLNode));
block_last=(DuLinkList)malloc(sizeof(DuLNode));
block_first->prior=NULL;
block_first->next=block_last;
block_last->prior=block_first;
block_last->next=NULL;
block_last->data.address=0;
block_last->data.size=MAX_length;
block_last->data.state=Free;
return OK;
}
//分配主存
Status alloa(int ch)
{
int request = 0;
cout<<"请输入需要分配的主存大小(单位:KB):";
cin>>request;
if(request<0 ||request==0)
{
cout<<"分配大小不合适!"<<endl;
剩余72页未读,继续阅读
资源评论
是空空呀
- 粉丝: 181
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功