说明在什么样的情况下一个缓存控制块能同时处于某两个队列中和一个缓存控制块只处于一个队列中。

admin2016-05-14  10

问题 说明在什么样的情况下一个缓存控制块能同时处于某两个队列中和一个缓存控制块只处于一个队列中。

选项

答案以下情况一个缓存控制块能同时处于某两个队列中。 (1)在自由buf队列和NODEV队列:在系统初启时,所有空闲缓冲区的buf既在自由buf队列,又在NODEV的设备buf队列中。 (2)在自由buf队列和设备队列:当一个读/写操作缓冲区的操作完成后,就要求立即释放所占用的缓冲区,并加入到自由buf队列的队尾,表示它可以被考虑移作他用。这个buf仍留在原设备buf队列中,也就是说一个缓冲区的buf处于空闲状态时,总是同时存在于这两个队列中。 (3)在设备buf队列和I/O请求队列:当要读写的盘块不在设备队列时,就需要进行物理I/O。系统先生成I/O请求块,把它挂在相应设备的I/O请求队列的队尾,同时也位于该设备buf队列中。 (4)在NODEV队列和I/O请求队列中:当需要更新文件系统超级块时,相应的缓存既在NODEV队列中也在I/O请求队列中。 以下情况一个缓存控制块只处于一个队列中。 (1)仅在设备队列中:正在存取设备队列中缓冲区的数据时,缓冲的b_flags标志位被置为“忙”,它一定位于相应的设备buf队列中,而不在自由buf队列中。 (2)仅在NODEV队列:系统正在使用缓冲向程序传递参数时,缓冲的b_flags标志位被置为“忙”,它一定位于NODEV队列中,而不在自由buf队列中。

解析
转载请注明原文地址:https://kaotiyun.com/show/vKNx777K
本试题收录于: 操作系统题库理工类分类
0

最新回复(0)