设先由进程 A 释放物理块 181#、135#、192#,再由进程 B 申请 4 个物理块,请分别 画图说明进程 A 释放物理块后和进程 B 申请物理块后的空闲盘块链接情况。
时间: 2024-03-03 19:50:00 浏览: 176
好的,我来解答你的问题。根据你的描述,假设初始情况下,物理块的空闲链表如下所示:
```
1 -> 2 -> 3 -> ... -> 180 -> 181 -> 182 -> ... -> 191 -> 192 -> 193 -> ... -> 255
```
接下来,进程 A 释放了物理块 181#、135#、192#,释放后的空闲链表如下所示:
```
1 -> 2 -> 3 -> ... -> 134 -> 135 -> 136 -> ... -> 180 -> 181 -> 182 -> ... -> 191 -> 192 -> 193 -> ... -> 255
```
然后,进程 B 申请 4 个物理块,假设分配给它的物理块号为 200#、201#、202#、203#,分配后的空闲链表如下所示:
```
1 -> 2 -> 3 -> ... -> 134 -> 135 -> 136 -> ... -> 180 -> 200 -> 201 -> 202 -> 203 -> 181 -> 182 -> ... -> 191 -> 192 -> 193 -> ... -> 255
```
以上就是进程 A 释放物理块后和进程 B 申请物理块后的空闲盘块链接情况。希望能帮到你!
相关问题
在请求分页系统中,某用户的编程空间为16个页面,每页1K,分配的内存空间为8K。假定某时刻该用户的页表为{(0,3),(1,7),(2,4),(3,1),(4,12),(5,9),(6,61),(7,20)},试问: (1)画图说明地址变换过程。 (2)逻辑地址104B(H)对应的物理地址是多少?(用十六进制表示) (3)逻辑地址6000(十进制)对应的物理地址是多少?(用十进制表示) (4)当该用户进程欲访问2DDB(H)单元时,会出现什么现象?
好的,我明白了。针对你的问题,我的回答如下:
(1)根据页表可以得到以下地址变换过程:
逻辑地址 = 页号 × 页长 + 页内偏移量
其中,页号就是页表中的第一列,页长为1K,页内偏移量为逻辑地址除以页长的余数。
以逻辑地址104B(H)为例,首先需要确定其所在的页号,即104B(H)÷1K=1,因此页号为1。然后,计算页内偏移量,即104B(H)÷1=104B(H)。由此可知,逻辑地址104B(H)对应的物理地址为:
物理地址 = 基址 + 页内偏移量
其中,基址即为页表中的第二列,对应的值为7,因此:
物理地址 = 7 × 1K + 104B(H) = 2008B(H)
以逻辑地址6000(十进制)为例,首先需要确定其所在的页号,即6000÷1K=5,因此页号为5。然后,计算页内偏移量,即6000÷1=174B(H)。由此可知,逻辑地址6000(十进制)对应的物理地址为:
物理地址 = 基址 + 页内偏移量
其中,基址即为页表中的第五列,对应的值为9,因此:
物理地址 = 9 × 1K + 174B(H) = 237E(H)
(4)当该用户进程欲访问2DDB(H)单元时,会出现缺页中断的情况,因为在页表中没有找到对应的页号。此时,操作系统会将该页从磁盘中调入内存,并更新页表,然后再次执行地址变换过程,找到对应的物理地址。如果内存空间已满,则需要进行页面置换。
阅读全文