操作系统 第八章 作业

知识补充

K是千 M是兆 G是吉咖 T是太拉
8 bit(位) = 1 Byte(字节) 1024 Byte(字节) = 1 KB 1024 KB=1 MB 1024 MB=1 GB
1024 GB=1 TB
时钟算法(书P228):
在这里插入图片描述

单选题

  1. 一个32位地址的计算机使用两级页表。虚拟地址被分成9位的顶级页表域,11位的二级页表域和一个偏移量。下列有关页面大小、地址空间含有的页面数量,说法正确的是( )?
    A. 页面大小为4KB,页面数量有1M个
    B. 页面大小为2KB,页面数量有512个
    C. 页面大小为2KB,页面数量有1M个
    D. 页面大小为4KB,页面数量有512个

段长为 232 = 4 KB;
偏移量为 12 位,页面大小为 12 12
所以页面数量为 232 / 212 = 220 = 1 M;

  1. 系统为某进程分配了4个页框,该进程已访问的页号序列为2,0,2,9,3,4,2,8,2,4,8,4,5。若进程要访问的下一页的页号为7,依据LRU算法,应淘汰页的页号是( )?
    A. 4
    B. 5
    C. 8
    D. 2

知识补充(P225):
LRU(Least Recently Used):最近最少使用置换算法;

过程:
这里是引用

  1. 在改进型CLOCK置换算法中,如果页表项中字段A为访问位,M为修改位。A=0表示页最近没有被访问,A=1表示页最近被访问过。M=0表示页没有被修改过,M=1表示页被修改过。按(A,M)所有可能的取值,将页分为四类:(0,0)、(1,0)、(0,1)和(1,1),则该算法淘汰页的次序为( )?
    A. (0,0),(1,1),(0,1),(1,0)
    B. (0,0),(0,1),(1,1),(1,0)
    C. (0,0),(0,1),(1,0),(1,1)
    D. (0,0),(1,0),(0,1),(1,1)

根据课本P229:
具有2个附加位的物理块中的页有4种情况:
(1)最近未访问过,也未被修改过(u=0,w=0);
(2)最近未访问过,但被修改过(u=0,w=1);
(3)最近访问过,但没有被修改过(u=1,w=0);
(4)最近访问过,也修改过(u=1,w=1);
其中第1种情况是最理想的能被置换出去的页,最后一种情况就是最不该置换出去的页。
根据这个分类,改进型时钟算法如下:
(1)从指针当前位置开始扫描,在这次扫描过程中对使用位的值不做任何修改,找到一个 u=0,w=0 的物理块,进行置换;
(2)如果第(1)步失败,则查找 u=0,w=1 的块,把遇到的第1个这样的物理块中的页置换出去,同时把扫描过程中遇到的 u=1 的块设为 u=0;
(3)如果前两步都失败,在重新执行第1步、第2步,这样一定会找到一个合适的页替换出去。
该算法同简单的 Clock 算法相比,减少了磁盘输入输出的次数。但是,为了找到一个合适的置换页,最多要经过4次扫描。

主观题

有一请求分页存储管理系统,页面大小为每页200字节,有一个50×50的整型数组按行连续存放,每个整数占2个字节,将数组初始化为0的程序描述如下:

int a[50][50]

int i,j;

for(i=0;i<50;i++)

	for(j=0;j<50;j++)

		a[i][j]=0;

若在程序执行时,内存中只有一个存储块用来存放数组信息,试问该程序执行时产生多少次缺页中断?(请写出具体分析过程)

由题目可知,该数组中有2500个整数,每个整数占2个字节,共需存储空间5000个字节;而页面大小为200个字节,数组占用25页。即
a[0][0],a[0][1],…,a[0][49],a[1][0],a[1][1],…,a[1][49] 占用一页
a[2][0],a[2][1],…,a[2][49],a[3][0],a[3][1],…,a[3][49] 占用一页

a[48][0],a[48][1],…,a[48][49],a[49][0],a[49][1],…,a[49][49] 占用一页
初始化数组是按行进行的,即第一页初始化完成进行第二页,一直到最后一页,共计25页。
所以产生25次缺页中断。

猜你喜欢

转载自blog.csdn.net/Jessieeeeeee/article/details/109454699