H题目完成
This commit is contained in:
parent
f63c1d9e6f
commit
5676194e14
50
操作系统/题目8.py
Normal file
50
操作系统/题目8.py
Normal file
@ -0,0 +1,50 @@
|
||||
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__":
|
||||
主函数()
|
Loading…
x
Reference in New Issue
Block a user