【操作系统导论】第22章课后习题解答

前言

内容仅作记录,解答有参考别人的地方,请谨慎参考

22.1

题目描述

在这里插入图片描述

分析及解答

FIFO

输入命令:
./paging-policy.py -s 0 -n 10 -p FIFO
进行程序模拟,追踪策略为:FIFO
在这里插入图片描述
在FIFO策略决定替换哪个页面时将选择第一个进入的页进行替换
访问顺序为:8、7、4、2、5、4、7、3、4、5,cache能容纳3个页
具体访问过程如下:
在这里插入图片描述

输入命令:
./paging-policy.py -s 0 -n 10 -p FIFO -c查看模拟程序的结果
在这里插入图片描述
可以看到模拟结果与分析结果一致。

输入另外两个FIFO策略命令:
./paging-policy.py -s 1 -n 10 -p FIFO -c
./paging-policy.py -s 2 -n 10 -p FIFO -c
在这里插入图片描述
在这里插入图片描述

LRU

输入命令:
./paging-policy.py -s 0 -n 10 -p LRU
进行程序模拟,追踪策略为:LRU
在这里插入图片描述
LRU策略决定替换哪个页将基于“局部性原则”,根据历史近期访问决定替换哪个页
访问顺序为:8、7、4、2、5、4、7、3、4、5
具体访问过程如下:
在这里插入图片描述

输入命令:
./paging-policy.py -s 0 -n 10 -p LRU -c查看模拟程序的结果
在这里插入图片描述
可以看到模拟结果与分析结果一致。

输入另外两个LRU策略命令:
./paging-policy.py -s 1 -n 10 -p LRU -c
./paging-policy.py -s 2 -n 10 -p LRU -c
在这里插入图片描述
在这里插入图片描述

OPT

输入命令:
./paging-policy.py -s 0 -n 10 -p OPT
进行程序模拟,追踪策略为:OPT
在这里插入图片描述
OPT最优策略决定替换哪个页将基于未来的访问情况,将未来最远访问的页替换掉
访问顺序为:8、7、4、2、5、4、7、3、4、5
具体访问过程如下:
在这里插入图片描述

输入命令:
./paging-policy.py -s 0 -n 10 -p OPT -c查看模拟程序的结果
在这里插入图片描述
可以看到模拟结果与分析结果一致。

输入另外两个OPT策略命令:
./paging-policy.py -s 1 -n 10 -p OPT -c
./paging-policy.py -s 2 -n 10 -p OPT -c
在这里插入图片描述
在这里插入图片描述

22.2

题目描述

在这里插入图片描述

分析及解答

最差情况的地址引用序列为:1、2、3、4、5、6这样的序列,要访问的页各不相同,且高速缓存大小不够大,每次访问都会导致未命中,要提高性能则需要将缓存大小增加到与序列的个数一样才行

22.3

题目描述

在这里插入图片描述

分析及解答

该题需要编写python程序生成一个随机的序列并写入1.txt文件中
如何在linux下写python:
1、首先使用touch Random.py创建py文件
2、使用编辑器编写代码,比如:vim Random.py
[注意:第一行加上:#!/usr/bin/env python,再开始写代码]
3、写完并保存后修改Random.py的权限:chmod 777 Random.py
4、输入命令./Random.py就可以运行代码了

编写模拟程序如下:
在这里插入图片描述
随机生成10个从0到9的数
运行程序:
在这里插入图片描述
预期:OPT策略下的命中率最高,FIFO策略和LRU策略的命中率相对低一些
使用如下命令:
./paging-policy.py -f 1.txt -p FIFO -c
./paging-policy.py -f 1.txt -p LRU -c
./paging-policy.py -f 1.txt -p OPT -c
对不同的策略进行测试:
FIFO策略
在这里插入图片描述
LRU策略
在这里插入图片描述
OPT策略
在这里插入图片描述

可以看到模拟的结果与预期结果基本一致,测试数据量更大的情况下,这一结果将更加明显,三种策略的命中率差距将更大。

22.4

题目描述

在这里插入图片描述

分析及解答

编写能够生成具有一定局部性序列的程序:
在这里插入图片描述
[注意代码缩进一致:IndentationError: unexpected indent这个错误就是缩进不一致导致]

修改程序的权限:chmod 777 Random.py
运行程序生成随机序列:
在这里插入图片描述
分别使用不同的策略进行测试:
./paging-policy.py -f 1.txt -p LRU -c
./paging-policy.py -f 1.txt -p RAND -c
./paging-policy.py -f 1.txt -p CLOCK -c
模拟程序运行结果如下:
LRU多次测试:
在这里插入图片描述
RAND多次测试:
在这里插入图片描述
CLOCK多次测试:
在这里插入图片描述
从多次的测试结果可以看出,LRU的表现是比RAND略好一些的。

使用命令:
./paging-policy.py -f 1.txt -b x -p CLOCK -c测试不同时钟位的表现:
[其中x为时钟位数量]
时钟位为1:
在这里插入图片描述
时钟位为2:
在这里插入图片描述
时钟位为3:
在这里插入图片描述
从模拟结果可以看出,时钟位为1时CLOCK表现最差,提高时钟位,CLOCK的表现好于RAND。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼树C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值