UNIX系统的缓冲区管理中,设备队列和自由队列各采用什么算法?

admin2016-05-12  15

问题 UNIX系统的缓冲区管理中,设备队列和自由队列各采用什么算法?

选项

答案自由buf队列管理空闲缓冲,以实现对有限的缓冲资源共享。对自由buf队列采用了LRU淘汰算法。为了使释放的缓冲区尽可能长地保留原来的数据信息,每次释放缓冲区时总是将对应的buf插入到自由队列的队尾。分配缓冲区时,总是从自由队列队首抽出一个空闲的buf。当一个buf在自由队列内移动时,只要有按原状使用的需要时,就立即从自由buf队列中抽出,使用完毕后释放该缓冲区,又将该buf插入到自由buf队列队尾。这就保证了在所有自由缓冲区中被重新分配的是最久未使用的,即精确地实现了LRU算法。由于根据设备队列重复使用的buf,该buf有从自由队列中间删除的需要,为了提高删除操作的速度,要求自由队列采用双向链接表。 设备队列管理所有使用过的缓冲区,以尽量重复使用已读入缓冲的数据,从而减少了对设备的I/O。设备队列本身不实现任何特定的应用算法,如淘汰算法等。不论该buf位于设备队列中的什么位置,只要重复使用,总能在设备队列中找到它。只有当一个buf在自由队列被淘汰时,才在相应的设备队列中被删除,故为了提高删除操作的速度,同样要求设备队列采用双向链接表。当一个buf要插到新的设备队列时(包括从设备队列淘汰后,又插回同一设备队列),只是最简单地插到设备队列的首部,这还能使新插入的buf在以后的相继访问过程中尽快地被找到。

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

最新回复(0)