OS lab4实验报告

一、实验要求

1.符合局部访问特性的随机生成算法

  1. 确定虚拟内存的尺寸N,工作集的起始位置p,工作集中包含的页数e,工作集移动率m(每处理m个页面访问则将起始位置p +1),以及一个范围在0和1之间的值t;
  2. 生成m个取值范围在p和p + e间的随机数,并记录到页面访问序列串中;
  3. 生成一个随机数r,0 ≤ r ≤ 1;
  4. 如果r < t,则为p生成一个新值,否则p = (p + 1) mod N;
  5. 如果想继续加大页面访问序列串的长度,请返回第2步,否则结束。

2.算法流程图

符合局部访问特性的随机生成算法流程图

3.算法实现

'''
函数名称:Random_Sequence_String
功能:生成符合局部访问特性的随机序列
参数:
    start       序列的开始 p
    page_num    序列包含页数 p + e
    length      生成序列长度
    mobility    工作集移动率
    N           虚拟内存的尺寸
返回值:
    Sequence_String 随机生成的序列

'''

def Random_Sequence_String(start, page_num, length, mobility, N):  # To create a sequence string with random numbers
    start1, page_num1 = (int(start), int(page_num)) if start <= int(page_num) else (int(page_num), int(start))
    length = int(abs(int(length))) if length else 0
    Sequence_String = []
    temp = 0
    print(start)
    print(page_num)
    for i in range(length):
        if temp == mobility:
            start1 = start1 + 1
            page_num1 = page_num1 + 1
            temp = 0
        temp = temp + 1
        if page_num1 == N:
            page_num1 = page_num
            start1 = start
        Sequence_String.append(random.randint(start, page_num))
    return Sequence_String

二、实验设计

1.最佳置换算法

1.1 基本思想

选择永不使用或是在最长时间内不再被访问(即距现在最长时间才会被访问)的页面淘汰出内存

1.2 算法流程图

在这里插入图片描述

1.3 算法实现

'''
函数名称:Optimal_page_replacement_algorithm
功能:最佳置换算法
参数:
    Sequence_String 随机序列
    Memory_Length   内存大小
返回值:
    Missing_Page    缺页量
'''

def Optimal_page_replacement_algorithm(Sequence_String, Memory_Length):
    temp = 0
    temp1 = 0
    Missing_Page = 0
    mem = []
    Memory = []
    flag = 99
    for i in Sequence_String:
        if len(Memory) < Memory_Length:
            Memory.append(i)
            temp = temp + 1
        else
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值