资源简介
计算机操作系统的动态分区分配与回收实验的Python实现代码。
代码片段和文件信息
from random import randint
class storage(object):
def __init__(selfsize):
self.memory_size = size
#首次适应算法
class OS_1(object):
storageUnit = storage(12)
temp = storageUnit.memory_size
memory_list = [0 for i in range(temp)] #物理存储单元,初始化为0
memory_addr = [0 for i in range(temp)] #记录每个单元是否使用初始化为0
memory_block = []
#分配内存部分
def allocate_unit(selfneed_size):
size_count = 0
record = 0
flag = True
memory_list = []
for addr in range(self.storageUnit.memory_size):
if self.memory_addr[addr] == 0:
if flag:
record = addr #记录开始地址来便储存某物
flag = False
size_count += 1
if size_count == need_size:#当前存储块满足所需大小时,进行存储
for i in range(size_count):
self.memory_list[size_count+i] = chr(1111)
self.memory_addr[record+i] = 1 #标记
memory_list.append(record+i) #块内空间
self.memory_block.append(memory_list)#记录块
break
else:#不满足时,重新寻找新的内存块,last_count重置为0
size_count = 0
flag = True
if size_count < need_size:
print(‘!!分配内存失败!!没有足够内存分配给该作业!‘)
#回收部分
def reclaim_unit(selfidentifier):
if identifier > len(self.memory_block):
print(‘error input‘)
exit(1)
for addr in self.memory_block[identifier]:
self.memory_addr[addr] = 0
self.memory_block.remove(self.memory_block[identifier])
#存储显示部分
def memoryView(self):
print(‘当前的内存存储情况为:‘)
for count in range(len(self.memory_block)):
start = self.memory_block[count][0]
end = self.memory_block[count][len(self.memory_block[count])-1]
lenth = len(self.memory_block[count])
print(‘分区:‘count‘\t‘‘大小:‘lenth‘\t‘‘地址:‘start‘~‘end)
#循环首次适应算法
class OS_2(object):
storageUnit = storage(12)
temp = storageUnit.memory_size
memory_list = [0 for i in range(temp)] #物理存储单元,初始化为0
memory_addr = [0 for i in range(temp)] #记录每个单元是否使用初始化为0
memory_block = []
memory = 0#标记上次分配地址块的位置
def allocate_unit(selfneed_size):
size_count = 0
record = 0
flag = True
memory_list = []
for addr in range(self.storageUnit.memory_size):
location = (self.memory + addr) % self.storageUnit.memory_size
if self.memory_addr[location] == 0:
if flag:
record = location #记录开始地址来便储存某物
相关资源
- CpuMemSets在Linux操作系统中的实现
- python实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
- python+labview+No1.vi
- 老男孩python项目实战
- python源码制作whl文件.rar
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- 计算机科学导论-python.pdf
- python模拟鼠标点击屏幕
- windows鼠标自动点击py脚本
- 鱼c小甲鱼零基础学python全套课后题和
- Python 练习题100道
- Practical Programming 2nd Edition
- wxPython Application Development Cookbook
- python 3.6
- Python 3.5.2 中文文档 互联网唯一CHM版本
评论
共有 条评论