问题 问答题

在UNIX操作系统中,盘块缓冲区分配的getblk (dev,blkno)的执行过程(其中dev为设备号,blkno为块号)是什么

答案

参考答案:

解析:getblk(dev,blkno)首先检查散列队列,看该盘块是否已在某个缓冲区中。若在散列队列,则不须分配缓冲区,否则分配一个空闲缓冲区。处理过程如下: ①根据设备号和盘块号检查散列队列(设备缓冲区队列)。 ②若在散列队列,则检查该缓冲区是否空闲。若空闲,则先上锁,然后从空闲链上取下,置该缓冲区忙;否则,等待该缓冲区空闲。 ③若缓冲区不在散列队列,便从空闲链分配一个缓冲区,调整散列队列,置该缓冲区为忙状态。

单项选择题 A1/A2型题
多项选择题 共用题干题