什么是缓冲池?设计一个数据结构来管理缓冲池
答:缓冲池由多个缓冲区组成,这些缓冲区可供多个进程共享,且既能用于输入又能用于输出。缓冲池中至少应包含3个缓冲队列和4类工作缓冲区,如下图。 缓冲池中的3个缓冲队列如下: (1) 空缓冲队列:由系统中的空闲缓冲区组成; (2) 输入队列:由装满输入数据的缓冲区组成队列,输入设备已将这些缓冲区中装满了输入数据等待CPU处理; (3) 输出队列:由装满输出数据的缓冲区组成,这些数据等待输出设备输出。 缓冲池中的4类工作缓冲区如下: (1) 收容输入工作缓冲区:用于收容来自输入设备的数据; (2) 提取输入工作缓冲区:供CPU从中提取输入数据进行计算; (3) 收容输出工作缓冲区:用于收容CPU要输出的计算结果; (4) 提取输出工作缓冲区:供输出设备从中提取数据进行输出。 当输入设备欲输入数据时,便从空缓冲区队列的队首摘下一个空缓冲区,作为收容输入工作缓冲区,然后把数据输入其中,装满后再将它挂到输入队列队尾。 当CPU需要数据处理时,便从输入队列取得一个缓冲区作为提取输入工作缓冲区,CPU从中提取数据,数据用完后再将它挂到空缓冲队列尾。 当CPU欲输出结果时,便从空缓冲队列的队首取得一个空缓冲,作为收容输出工作缓冲区,当其中装满输出数据后,再将它挂到输出队列尾。 当输出设备欲输出结果时,由输出进程从输出队列中取得一个装满输出数据的缓冲区,作为提取输出工作缓冲区,当数据提取完后,再将它挂到空缓冲队列的末尾。 如此周而复始不停地工作,任何进程都可使用缓冲池中的缓冲区。【解析】第六章 难易度:中
继续答题:下一题

