1实验目的
(1)了解动态分区分配方式中使用的数据结构和分配算法
(2)加深对动态分区存储管理方式及其实现过程的理解。
2实验内容
(1)分别实现采用首次适应算法和最佳适应算法的动态分区分配过程alloc()和回收过程free()。其中,空闲分区通过空闲分区链来管理:在进行内存分配时,系统优先使用空闲区低端的空间。
(2)假设初始状态下,可用的内存空间为1280KB,并有下列的请求序列:
•作业1申请130KB。
•作业2申请60KB。
•作业3申请100KB。
•作业2释放60KB。
•作业4申请200KB。
•作业3释放100KB。
•作业1释放130KB。
•作业5申请140KB。
•作业6申请60KB。
•作业7申请50KB。
•作业6释放60KB。
分别采用首次适应算法和最佳适应算法,对内存块进行分配和回收,要求每次分配和回收后显示出空闲分区链的情况。
*网上的大多数是c语言实现的,最近在学python,于是就用python实现
#!/usr/bin/env python
#coding=utf-8
import copy
class node(object):
def __init__(self,start,end,length,state=1,ID=0):
self.start=start
self.end=end
self.length=length
self.state=state ##state为1:内存未分配
self.Id=ID ##ID为0是未分配,其余为任务编号
def showList(list):
print ("空闲分区如下").decode('utf-8').encode('