出现的问题:
处理器执行指令的速度远远大于外围设备传输信息的速度,这样会导致处理器很快完成了任务然后就会久久等待外围设备输入新的信息。那么我们如何来减少处理器等待的时间呢?
解决方案:
单缓冲
结构:在主存储器的系统区只设立一个缓冲区。
运行机制:假如一个用户进程要处理磁盘上的某个文件。操作系统就先从磁盘上找到该文件,再把该文件的第一块信息放到缓 冲区,接着把缓冲区中内容传送到用户工作区。如果这是缓冲区以腾空,则趁用户正在处理信息就可把磁盘文件的 下一块信息预读到缓冲区。这样,当用户进程需要后继信息时就直接从缓冲区传送给它。依次循环,直到文件处理 结束。
双缓冲
结构:利用两个缓冲区
运行机制1:两个都作为输入缓冲。
基本上都跟单缓冲相同,知识缓冲1的数据传给用户工作区的同时,磁盘内容可以输入到缓冲区2。 依次循环处理。
运行机制2:实现输入和输出并行工作。
输入时使用缓冲区1,缓冲区1填满数据之后。此时,缓冲区1作为输出缓冲区,缓冲区2作为输入缓冲。完成一次 后,输入和输出交换使用缓冲区。
缓冲池
结构:缓冲区链接成缓冲区队列
运行机制:
磁盘信息读入缓冲区并且交给用户工作区处理后,仍要在缓冲区保留该磁盘原始信息,以备再次使用。
修改文件信息后,仅把修改后的文件保留在缓冲区,直到该缓冲区被系统收回时,才真正写到磁盘里。
优点:减少了对磁盘的访问次数。