【南邮操作系统实验】页面置换算法 (FIFO、LRU、OPTP)

写在前面

操作系统内存管理的页面置换算法,因为懒得看老师给的代码(太长了而且据说好像还有错误)就自己写了一个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 = {
   } 

你可能感兴趣的:(python,内存管理,算法)