逻辑地址推算物理地址(摆烂)

"""
若在一分页存储管理系统中,某作业的页表如下所示。已知页面大小为1024字节,试将作业中的逻辑地址X转化为相应的物理地址(如果地址不在内存中,回答None)。

X=2761, 3714, 3188, 4999

页号	块号
0     1
1     8
2     6
3     3

答案:
6857, 3714, 3188, None

摆烂!!!
"""
li = (2,6,3,3)
data = (4752, 3097, 1306, 2968)
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)
"""
某段式存储管理系统中,有一作业的段表(SMT)如下表所示,求逻辑地址X

X=[(0, 65), (1, 55), (2, 90), (3, 20)]

对应的主存地址(按十进制)。(其中方括号中的第一个元素为段号,第二个元素为段内地址)

段号	主存起始地址    段长(容量)		状态
0    100          400        1
1    350          200        1
2    500          100        1
3    900          350        1

参考答案:
165, 405, 590, 920

摆烂!!!!!

"""


x = ((0, 65), (1, 55), (2, 90), (3, 20))
li = (
    (0,     100,    400,   1),
    (1,     700,    550,   1),
    (2,     1050,   300,   1),
    (3,     1300,   200,   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)

你可能感兴趣的:(操作系统)