2024-11-07 18:03:57 +08:00

51 lines
1.3 KiB
Python

def 初始化位示图():
bitmap = [0] * 64
已占用 = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
for in 已占用:
bitmap[] = 1
return bitmap
def 分配内存(bitmap, 进程大小):
进程块 = {}
for 进程ID, 大小 in enumerate(进程大小, 1):
if 大小 > 54:
continue
块列表 = []
计数 = 0
for i in range(64):
if len(块列表) == 大小:
break
if bitmap[i] == 0:
块列表.append(i)
bitmap[i] = 1
计数 += 1
if 计数 < 大小:
for in 块列表:
bitmap[] = 0
else:
进程块[进程ID] = 块列表
return 进程块
def 主函数():
进程大小 = list(map(int, input().split()))
查询进程, 查询页面 = map(int, input().split())
bitmap = 初始化位示图()
进程块 = 分配内存(bitmap, 进程大小)
if 查询进程 not in 进程块:
print("wait")
elif 查询页面 >= 进程大小[查询进程-1] or 查询页面 < 0:
print("error")
else:
print(进程块[查询进程][查询页面])
if __name__ == "__main__":
主函数()