沈阳工程学院
学生实验报告
实验室名称:计算机实验室
实验课程名称:操作系统
实验项目名称:存储管理(1)实验日期:2年月9日
班级:
姓名:
学号:2
指导教师:批阅教师:
成绩:
一.实验目的
通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解,熟悉可变分区存储管理的内存分配和回收。
二.实验设备
PC机一台,WINTC软件。
三.实验项目
编写程序实现采用可变分区方法管理内存。
1、在该实验中,采用可变分区方式完成对存储空间的管理(即存储空间的分配与回收工作)。
2、设计用来记录主存使用情况的数据结构:已分区表和空闲分区表或链表。
3、在设计好的数据结构上设计一个主存分配算法。
4、在设计好的数据结构上设计一个主存回收算法。其中,若回收的分区有上邻空闲分区和(或)下邻空闲
分区,要求合并为一个空闲分区登记在空闲分区表的一个表项里。
5、(附加)若需要可以实现程序的浮动,对内存空间进行紧凑。
四.实验代码(附页)
i
cludestdiohi
cludestdlibhdefi
eOK1完成defi
eERROR0出错typedefi
tStatustypedefstructfree_table定义一个空闲区说明表结构i
t
um分区序号lo
gaddress起始地址lo
gle
gth分区大小i
tstate分区状态ElemTypetypedefstructNode线性表的双向链表存储结构ElemTypedatastructNodeprior前趋指针
1
fstructNode
ext后继指针NodeLi
kListLi
kListfirst头结点Li
kListe
d尾结点i
tflag记录要删除的分区序号
StatusI
itblock开创带头结点的内存空间链表firstLi
kListmallocsizeofNodee
dLi
kListmallocsizeofNodefirstpriorNULLfirst
exte
de
dpriorfirste
d
extNULLe
ddata
um1e
ddataaddress40e
ddatale
gth600e
ddatastate0retur
OK
voidsort分区序号重新排序Nodepfirst
extqqp
ext
forpNULLpp
extforqp
extqqq
ext
ifpdata
umqdata
umqdata
um1
显示主存分配情况voidshowi
tflag0用来记录分区序号Nodepfirst
pdata
um0pdataaddress0pdatale
gth40pdatastate1sort
pri
tf