1.一个计算机操作系统采用段式存储管理方法,一个程序被分成5个段(编号为0段、1段、2段、3段和4段),分别加载在主存不同物理段,段表如下图所示:
段号 | 0 | 1 | 2 | 3 | 4 |
内存段基址 | 110 | 2350 | 100 | 1350 | 1958 |
段长 | 500 | 20 | 90 | 590 | 90 |
分别重定位如下5个逻辑地址 (格式为“段号:段偏移”,十进制 )的物理内存地址。(1)0:220 (2分)(2)1:15 (2分)(3)3:555 (2分)(4)4:200 (2分)(5)6:150 (2分)
x = ((0, 220), (1, 15), (3, 555), (4, 200),(6,150))
li = (
(0, 110, 500, 1),
(1, 2350, 20, 1),
(2, 100, 90, 1),
(3, 1350, 590, 1),
(4,1958,90,1)
)
ans = []
for i in range(len(x)):
if x[i][1] > li[i][2]:
ans.append('none')
else:
a = li[i][1] + x[i][1]
ans.append(a)
print(ans)
2.一个计算机操作系统采用页式存储管理方法对内存进行管理,页大小为1024B。一个程序的逻辑地址空间被划分成4页(编号为0页、1页、2页、3页),分别装入内存的2页框、3页框、1页框、6页框,页表如下表所示:
页号 | 0 | 1 | 2 | 3 |
对应页框号 | 2 | 3 | 1 | 6 |
将下列程序逻辑地址(十进制)转换为相应的内存物理地址(十进制)。(1)400 (2分)(2)1011 (2分)(3)2500 (2分)(4)3000 (2分)(5)4000 (2分)
li = (2,3,1,6)
data = (400, 1011, 2500, 3000,4000)
size = 1024
ans = []
for i in data:
p = int(i / size)
w = i % 1024
if (p > len(data) - 1):
ans.append('none')
else:
a = li[p] * size + w
ans.append(a)
print(ans)
计算出none就是此地址不在内存中。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容