IO缓冲区

目的

解决CPU与设备之间速度不匹配的矛盾,协调逻辑记录大小和物理记录大小不一致的问题,提高CPU和设备的并行性,减少I/O操作对CPU的中断次数,防空对CPU中断响应时间的要求。

缓冲区

在内存中开辟的存储区,专门用于临时存放I/O操作的数据。

操作

写操作

将数据送至缓冲区,直到装满,进程继续计算,同时系统将缓冲区的内容写到设备上。

读操作

系统将设备上的物理记录读至缓冲区,根据要求将当前所需要的数据从缓冲区中读出并传送给进程。

单缓冲

操作系统在主存的系统区中开设一个缓冲区

  • 输入

    • 将数据读至缓冲区,系统将缓冲区数据送至用户区,应用程序对数据进行处理,同时系统读入接下来的数据。

  • 输出

    • 把数据从用户区复制到缓冲区,系统将数据输出后,应用程序继续请求输出。

双缓冲

  • 输入

    • 设备先将数据输入缓冲区1,系统从缓冲区1把数据传到用户区,供应用程序处理,同时设备将数据传送到缓冲区2。

  • 输出

    • 应用程序将数据从用户区传送到缓冲区1,系统将数据传送到设备,同时应用程序将数据传送到缓冲区2.

循环缓冲

操作系统分配一组缓冲区,每个缓冲区都有指向下一个缓冲区的链接指针,构成循环缓冲。

  • 解决设别和进程速度不匹配的问题

  • 为系统公共资源,供进程共享并由系统统一分配和管理

Last updated