2021
7
某系统采用页式存储管理方法,主存储器容量为256MB,分成64K个块。
某用户作业有4页,其页号依次为0,1,2,3被分别放在主存块号为2,4,1,6
的块中。要求:
- 写出该作业的页表
- 指出该作业总长度的宇节(Btye)数
- 分别计算相对地址【0,100】和【2,0】对应的绝对地址
(方括号内的第一元素为页号,第二元素为页内地址)
页号 | 页框 |
---|---|
0 | 2 |
1 | 4 |
2 | 1 |
3 | 6 |
存储空间256MB,分块的数量为64K个
块的大小:
256
M
B
64
K
B
=
2
8
M
B
2
6
K
B
=
2
2
⋅
2
10
B
=
4
K
B
\frac{256MB}{64KB}=\frac{2^{8}MB}{2^{6}KB}=2^{2} \cdot 2^{10}B=4KB
64KB256MB=26KB28MB=22⋅210B=4KB
作业一共有四页,页面大小是4KB。作业总长度16KB
3.
计算逻辑地址对应的物理地址
页号是0,对应的物理块号是2,
物理块号x物理块的大小+页内偏移量
2 x 4KB + 100 = 2 x 4 x 1024 + 100 = 8292
在基本分页存储管理方式当中,页面大小等于物理块大小,是4KB
页号是2,对应的物理块号是1
1 x 4KB + 0 = 1 x 4 x 1024 + 0 = 4096
2017
2
假定某计算机系统配置的主存容量为2GB,当采用页式虚拟存储管理时提供给用户使用的逻辑地址空间为4GB,页面大小为4KB。
访问主存的时间为100ns,访问高速缓存的时间为20ns,高速缓存为16个单元时,查快表的命中率为90%,试问:
- 画出该系统的逻辑地址空间结构示意图;
- 用户作业最多可以有多少页?
- 主存空间一共被划分成多少块?
- 计算按相对地址转换成绝对地址进行存取的平均时间是多少?
- 如不使用快表,按相对地址转换成绝对地址进行存取的时间下降的百分比是多少?
配置的主存容量为2GB,也就是实际内存,物理大小是2GB,
2
31
B
2^{31}B
231B
虚拟的地址空间大小是4GB,
2
32
B
2^{32}B
232B
所以逻辑地址一共有32位
页面大小是4KB,也就是
2
12
B
2^{12}B
212B,也就是页内地址
剩下20位给页号
访问主存的时间为100ns,高速缓存的时间为20ns,高速缓存就是Cache,就是快表
高速缓存为16个单元时,查快表的命中率是90%
2.
问页的数量,由于页号是20位
页号反应页面数量,就是有
2
20
B
=
1
M
2^{20}B=1M
220B=1M的页面
3.
总的主存空间2GB,去除以物理块的大小
页式存储管理方式中,物理块大小等于页面大小等于4KB
因此分块数量为
2
31
2
12
B
=
2
19
B
=
512
K
B
\frac{2^{31}}{2^{12}}B=2^{19}B=512KB
212231B=219B=512KB
4.
概率论的01分布问题
命中的概率是90%,需要访问一次高速缓存20ns,再去访问一次目标单元的主存空间100ns
不命中的概率是10%,访问快表20ns,但是没有找到,找内存中的页表100ns,再访问一次目标单元的主存100ns
存取时间的数学期望,概率乘以时间的值
90
100
⋅
(
20
+
100
)
+
10
100
⋅
(
20
+
100
+
100
)
=
130
n
s
\frac{90}{100}\cdot (20+100)+\frac{10}{100}\cdot(20+100+100)=130ns
10090⋅(20+100)+10010⋅(20+100+100)=130ns
5.
如果不使用快表,那么每次都需要访问一次页表,一次目标单元,访问两次主存,时间为200ns
平均下降的时间百分比
下降百分比
=
不使用快表时的访问时间
−
使用快表时的平均访问时间
不使用快表时的访问时间
下降百分比=\frac{不使用快表时的访问时间-使用快表时的平均访问时间}{不使用快表时的访问时间}
下降百分比=不使用快表时的访问时间不使用快表时的访问时间−使用快表时的平均访问时间
=
200
n
s
−
130
n
s
200
n
s
=
70
200
=
36
=\frac{200ns-130ns}{200ns}=\frac{70}{200}=36%
=200ns200ns−130ns=20070=36
例题
某分段存储管理中采用如下段表
段号 | 段的长度 | 内存起始地址 |
---|---|---|
0 | 380 | 95 |
1 | 20 | 525 |
2 | 105 | 3300 |
3 | 660 | 860 |
4 | 50 | 1800 |
将虚地址(0 260),(2 200),(4 42)变换为物理地址 | ||
存取内存中的一条指令或数据至少要访问几次内存 |
第一个段号是0,段内地址260,起始地址是95,物理地址就是95+260=355
第二个段号是2,段内地址是200,200>105,产生越界中断
第三个段号是4,段内地址是42,1800+42=1842
至少要访问2次内存
3
设某计算机的逻辑地址空间和物理地址空间均为64KB,按字节编址。若某进程最多需要6页(Page)数据存储空间,页的大小为1KB,操作系统采用固定分配局部置换策略为此进程分配4个页框(Page Frame)。在时刻260前的该进程访问情况如下表所示(访问位即使用位)
页号 | 页框号 | 装入时间 | 访问位 |
---|---|---|---|
0 | 7 | 130 | 1 |
1 | 4 | 230 | 1 |
2 | 2 | 200 | 1 |
3 | 9 | 160 | 1 |
当进程执行到时刻260时,要访问逻辑地址为17CAH的数据。请回答下列问题: |
- 该逻辑地址的对应的页号是多少?
- 若采用先进先出(FIFO)置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程
- 若采用时钟(CLOCK)置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程(设搜索下一页的指针沿顺时针方向移动,且当前指向2号页框,示意图如下)
页的大小是1KB,
2
10
B
2^{10}B
210B,页面地址就是有10个bit
17CA H
0001 0111 1100 1010 B
进行划分
页号000101 页面地址1111001010
101对应5
2.
需要置换,换出装入时间最短的0号页
把5号页装入,对应的物理块号是7,对应的是0111
000111 1111001010
转为16进制:1FCA H
3.
访问位都是1,当前页面是2,访问位为1,不能淘汰,将访问为置为0,指针指向下一个
页面1访问位也是1,置为0,指向下一个;把0号页的1置为0,指向下一个;把3号页置为0,指向下一个;又回到2号页,发现访问位是0,淘汰2号页
调入5号页,对应的页框是2
000010 1111001010B,转换为16进制,0BCA H
2015
系统为某进程分配了三个物理块,对应的页面引用串如下:
5,0,3,2,1,0,4,3,0,5
试绘出利用FIFO页面置换算法时的置换图
9 10 = 90 % \frac{9}{10}=90\% 109=90%
2014
系统为某进程分配了三个物理块,对应的页面引用串如下:
5,0,3,2,1,0,4,3,0,5
试绘出利用LRU页面置换算法时的置换图
2019
在页式虚拟存储管理系统中,若某进程依次访问的页面为
2,3,2,1,5,2,4,5,3,2,5,2
分配3块主存块,开始三页也算缺页,采用页号队列的方法,分别填写下表,并计算缺页次数和缺页率
FIFO
访问页面 | 2 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | 2 | 2 | 2 | 3 | 1 | 5 | 5 | 2 | 2 | 4 | 3 | |
3 | 3 | 3 | 1 | 5 | 2 | 2 | 4 | 4 | 3 | 5 | ||
1 | 5 | 2 | 4 | 4 | 3 | 3 | 5 | 2 | ||||
是否缺页 | √ | √ | × | √ | √ | √ | √ | × | √ | × | √ | √ |
缺页次数 | ||||||||||||
缺页次数9,缺页率 | ||||||||||||
$$ | ||||||||||||
\frac{9}{12}=75% | ||||||||||||
$$ |
LRU
访问页面 | 2 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | 2 | 3 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 3 | |
3 | 2 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | ||
1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 | ||||
是否缺页 | √ | √ | × | √ | √ | × | √ | × | √ | √ | × | × |
缺页次数 | ||||||||||||
缺页次数7,缺页率 | ||||||||||||
$$ | ||||||||||||
\frac{7}{12}=58.33% | ||||||||||||
$$ |
简述时钟页面置换算法(CLOCK)的基本思想?它有什么特点
时钟页面置换算法是一种近似于LRU(最近最少使用)的页面置换算法。它试图找到最长时间未被访问的页面进行置换。
基本思想:
- 循环链表:所有页面被组织在一个循环链表中。
- 指针:使用一个指针(时钟手)沿着链表移动,每次移动到一个页面时,该页面的访问位被清除。
- 访问位:每个页面有一个访问位,当页面被访问时,访问位被设置。
- 置换条件:当需要置换页面时,指针移动到链表的开始。如果指针指向的页面的访问位为0,则进行置换;如果访问位为1,则清除访问位,并将指针移动到下一个页面。
特点: - 简单高效:算法实现简单,且性能接近LRU。
- 近似LRU:虽然不是精确的LRU,但通常能很好地模拟最近最少使用的原则。
- 低开销:不需要维护完整的访问历史记录,减少了开销。
- 循环扫描:通过循环链表和指针的方式,实现高效的页面扫描。
简述请求分页存储管理技术的基本思想
请求分页存储管理技术是一种内存管理技术,它结合了分页和请求调页的概念。基本思想为:
- 分页:逻辑地址空间被划分为固定大小的页面。
- 请求调页:只有当程序需要访问某个页面时,该页面才被调入内存。
- 页面置换:如果内存中没有足够的空间来装入新页面,操作系统会根据某种页面置换算法选择一个页面调出内存,以便调入新的页面。
- 虚拟内存:通过使用磁盘空间作为虚拟内存,可以使得程序的逻辑地址空间大于实际的物理内存
设某分页存储管理系统中,主存容量为64MB,共有16K个物理块,物理块从0开始编号。主存按字节编址。某进程的逻辑地址空间占8页,页面从0开始编号
其中第1,3,5,7页被分配到主存的第12,24,31,45号物理块。写出这些页面在主存中的起始地址。
某分页存储管理系统中页面在主存中的起始地址
由于主存按字节编址,我们需要计算每个物理块的起始地址。每个物理块的大小等于主存容量除以物理块的数量:
物理块大小=主存容量÷物理块数量
64
⋅
2
20
16
⋅
2
10
=
2
6
⋅
2
20
2
4
⋅
2
10
=
2
12
B
=
2
2
K
=
4
K
\frac{64\cdot 2^{20} }{16 \cdot 2^{10} }=\frac{2^{6} \cdot 2^{20} }{2^{4} \cdot 2^{10} }= 2^{12}B=2^{2}K=4K
16⋅21064⋅220=24⋅21026⋅220=212B=22K=4K
- 第1页被分配到第12号物理块: 起始地址=12×2^12=48KB=0xC0000
- 第3页被分配到第24号物理块:起始地址=24×2^12=96KB=0x180000
- 第5页被分配到第31号物理块: 起始地址=31×2^12=124KB=0x1F8000
- 第7页被分配到第45号物理块: 起始地址=45×2^12=180KB=0x2D0000
2020
解释请求分页系统中的页表项的每个字段
在请求分页系统中,页表项包含了以下字段:
- 页号:表示逻辑地址中的页号。
- 物理块号:表示该页在物理内存中对应的块号。
- 状态位P:表示该页是否在内存中。如果状态位为1,则表示页面在内存中;如果为0,则表示页面不在内存中。
- 访问字段A:用于记录页面最近是否被访问过,通常用于页面置换算法中。
- 修改位M:表示该页自从被调入内存后是否被修改过。如果为1,则表示页面已被修改;如果为0,则表示页面未被修改。
- 外存地址:表示该页在磁盘上的地址,用于页面置换时从磁盘调入或调出页面
7
采用段式存储管理的系统中,若地址用24位表示,其中8位表示段号,则允许每段的最大长度是
24-8=16表示段内地址,每段的最大长度就是段内地址的位数 2 16 2^{16} 216
5
在一请求分布系统中,假如一个作业的页面走向为4、3、2、1、4、3、5、4、 3、2、1、5,当分配给该作业的物理块数为4时(开始时没有装入页面),采用LRU 页面淘汰算法将产生几次缺页中断。
- 装入页面4,缺页中断1次。
- 装入页面3,缺页中断1次。
- 装入页面2,缺页中断1次。
- 装入页面1,缺页中断1次。
- 访问页面4,页面4最近被访问,无需置换。
- 访问页面3,页面3最近被访问,无需置换。
- 装入页面5,淘汰页面2(因为页面2是最近最少被访问的),缺页中断1次。
- 访问页面4,页面4最近被访问,无需置换。
- 装入页面3,淘汰页面1(因为页面1是最近最少被访问的),缺页中断1次。
- 装入页面2,淘汰页面5(因为页面5是最近最少被访问的),缺页中断1次。
- 装入页面1,淘汰页面4(因为页面4是最近最少被访问的),缺页中断1次。
- 装入页面5,淘汰页面3(因为页面3是最近最少被访问的),缺页中断1次。
因此,总共会有7次缺页中断
2013
什么是请求分页存储管理?给出一个请求分页存储管理的主存页面分配和回收的方法
请求分页存储管理是一种内存管理技术,它允许程序在执行时动态地加载和卸载页面到内存中。这种方法结合了分页和请求调页技术,使得程序可以比实际物理内存大。
请求分页存储管理的主要特点:
- 动态分配:系统根据需要动态地将页面加载到内存中。
- 局部性原理:程序倾向于使用最近访问过的页面。
- 页面置换:当内存中没有足够的空间来加载新页面时,系统会替换掉一些页面。
主存页面分配方法: - 分配请求:当程序运行时,如果需要的页面不在内存中,操作系统会发出页面分配请求。
- 查找空闲页面:操作系统查找可用的空闲页面。
- 页面调入:将所需的页面从磁盘调入内存。
页面回收方法: - 页面置换:当内存中没有足够的空间来加载新页面时,操作系统会根据某种页面置换算法选择一个或多个页面进行置换。
- 写回磁盘:被选中的页面会被写回到磁盘的交换区。
- 更新页表:操作系统更新页表,以反映页面的新位置