写在前面
操作系统内存管理的页面置换算法,因为懒得看老师给的代码(太长了而且据说好像还有错误)就自己写了一个python版本的,因为比较菜,所以写的一般般,仅供大伙参考一下Orz
python版本的
代码如下:
import random
#生成n个页面请求
def Page_Request(n):
pagerequest_list = []
for i in range(n):
tmp = random.randint(0,20)
pagerequest_list.append(tmp)
return pagerequest_list
def OPT(pagerequest_list,m):# m为分得的空闲页框数
missnum = 0 #缺页次数
page_memory = [] #存放当前内存页面分布情况
print(pagerequest_list)
for i in range(0,len(pagerequest_list)):
if len(page_memory)< m:#内存页面有空闲时直接放入
page_memory.append(pagerequest_list[i])
missnum = missnum+1
print("第%d次内存页面分布情况"%int(i+1),page_memory)
else:#内存页面满的情况下
if pagerequest_list[i] in page_memory:#如果下一个请求页面已经在内存页面中了
print("第%d次内存页面分布情况"%int(i+1),page_memory)
else:
stack_list = {
} # 存放后面找到的页面
for j