缓冲池
缓冲池由系统中共用的缓冲区组成。这些缓冲区按使用状况可以分为:空缓冲队列、装满输入数据的缓冲队列(输入队列)、装满输出数据的缓冲队列(输出队列)。
另外,根据一个缓冲区在实际运算中扮演的功能不同,又设置了四种工作缓冲区:用于收容输入数据的工作缓冲区(hin)、用于提取输入数据的工作缓冲区(sin)、用于收容输出数据的工作缓冲区(hout)、用于提取输出数据的工作缓冲区(sout)。

- 工作流程:
- 输入进程请求输入数据。从空缓冲队列中取出一块作为收容输入数据的工作缓冲区(hin)。冲满数据后将该缓冲区挂到输入队列队尾;
- 计算进程想要取得一块输入数据。从输入队列中(队首)取得一块冲满数据的缓冲区作为 sin。缓冲区读空后挂到空缓冲区队列中;
- 计算进程想要将准备好的数据冲入缓冲区。从空缓冲队列中取出一块作为 hout。数据冲满后将缓冲区挂到输出队列队尾;
- 输出进程请求输出数据。从输出队列中取得一块冲满输出数据的缓冲区作为 sout。缓冲区读空后挂到空缓冲队列;