美文网首页
第六章 I/O管理

第六章 I/O管理

作者: 喜忧参半 | 来源:发表于2021-08-29 21:00 被阅读0次

I/O管理

引入缓冲区的原因

降低设备速率低的一种策略
提高效率 磁盘调度、RAID
分层设计

两大架构:①效率 ②通用性


假定:一个用户进程将从磁带上读入若干抉数据(每块100字节);数据块装入用户进程地址空间中的一个数据区,其虚拟地址为1000~1099 ( 100字节)
请问:如果从磁带上读进一块数据并直接把它送入用户进程的工作区,会有什么问题?


由于磁带机的速率很慢,因此当进程申请I/O数据读入时,该进程会阻塞,以等待该数据的载入,如果此该存储该数据的内存地址空间,由于进程被挂起,而分配给其他进程,那么当磁带机读入的数据就可能会丢失,此时那个被阻塞的进程永远等不到自己需要的数据,而陷入了无限等待。所以没有缓冲区时,可能会发生单进程死锁!

I/O Buffering

核心思想:在内存中建立I/O缓冲区

  • 缓存从输入设备流入内存的数据
  • 缓存从内存流向输出设备的数据

Single Buffer (单缓冲区)

  • 可见,相对于没有使用I/O缓冲区的情形,引入单I/0缓冲区后,用户进程的运行效率得到了提高。
  • 然而,如果用户进程在对有关数据进行加工处理时并不释放I/0缓冲区,那么用户进程的性能并不能得到改善。

Doublie Buffer(双缓冲区)

  • 使用双I/0缓冲区,即使用户进程在对有关数据进行加工处理时不释放相关的I/0缓冲区,用户进程的性能也能得到改善。
  • 与单I/0缓冲区类似,如果T远远大于C,即外部设备的I/0速度比用户进程的计算速度慢得多,那么即使引入双I/0缓冲区,用户进程的性能也几乎没有得到改善。
  • 缓和外部设备的I/0速度与用户进程的计算速度不匹配的一种有效的办法是,在外部设备和用户进程之间设立多个I/0缓冲区。
Circular Buffer(循环缓冲区)

Disk Cache(磁盘缓存)

不是一种硬件设施,是内存中设置的一种缓冲区。

工作原理

  • 当用户进程请求从磁盘读入一个扇区时,系统首先在disk cache中寻找该扇区的副本。
    ① 如果能够找到,那么系统将从disk cache中取出该扇区的副本并返给用户进程;
    ②否则,系统首先从磁盘上读入该扇区并在disk cache中为其建立一个副本,然后将该副本返给用户进程。
  • 当用户进程请求向磁盘上写出一个扇区时,系统同样首先在disk cache中寻找该扇区的副本
    ①如果能够找到,那么系统将根据用户进程的请求修改该扇区的副本;
    ②否则,系统同样首先从磁盘上读入该扇区并在disk cache中为其建立一个副本,然后根据用户进程的请求修改该副本。

Wirte through (写穿透技术)

设计问答

  • 当用户进程请求从磁盘上读入一个扇区时,如果系统能够在disk cache中找到该扇区的副本,那么系统如何把该副本提交给用户进程?

如果系统不允许用户进程访问disk cache ,那么系统将把用户进程需要的扇区从dlisk cache中复制到用户进程的工作区。

如果系统允许用户进程访问disk cache ,那么系统将把用户进程需要的扇区副本在diskcache中的位置指针传递给用户进程。

  • 当系统需要从磁盘上读入一个扇区并在diskcache中为其建立一个副本时,如果disk cache没有空闲空间,那么系统使用何种策略从diskcache中选择一个被置换扇区?

① LRU置换算法
The block that has been in the cache the longestwith no reference to it is replaced.


The cache consists of a stack of blocks.Most recently referenced block is on thetop of the stack.
缓存由一堆块组成,大多数最近引用的块位于堆栈的顶部。
When a block is referenced or broughtinto the cache, it is placed on the top ofthe stack.
当一个块被引用或显示到缓存中时,它被放置在堆栈的顶部。

②LFU置换算法(频率)
Least Frequently Used (LFU置换算法)-The block that has experienced the fewestreferences is replaced.


A counter is associated with each block.·Counter is incremented each time blockaccessed.
计数器与每个块相关联。·计数器每次访问块时递增。

Block with smallest count is selected forreplacement.
选择具有最小计数的块进行替换。

Some blocks may be referenced manytimes in a short period of time and thennot needed any more.
一些块可能在短时间内被多次引用,因此不再需要。



SPOOLing 技术

相关文章

  • 操作系统之设备管理

    一、I/O管理概述 1.1 计算机I/O系统结构 1.2 I/O管理示意图 1.3 I/O的特点 I/O性能经常称...

  • 16、I/O系统(操作系统笔记)

    一、I/O管理概述 1.1 计算机I/O系统结构 1.2 I/O管理示意图 1.3 I/O的特点 I/O性能经常称...

  • 操作系统(五)输入/输出(I/O)管理

    5.1 I/O管理概述 5.1.1 I/O设备 “I/O”就是“输入/输出”(Input/Output)I/O设备...

  • I/O管理——I/O设备

    前言 本文开始介绍I/O管理。I/O管理的内容如下 本节先了解I/O设备及其分类,前面提到操作系统作为资源的管理者...

  • 操作系统(五)——I/O管理

    I/O管理主要通过对设备状态跟踪对设备存取数据、设备分配、及设备控制进行管理。 (一)I/O管理概述 1. I/O...

  • 第六章 I/O管理

    I/O管理 引入缓冲区的原因 降低设备速率低的一种策略 提高效率 磁盘调度、RAID 分层设计 两大架构:①效率 ...

  • I/O管理

    I/O设备按信息交换的单位分类 块设备信息的存取是以数据块为单位的,有结构设备,如磁盘。基本特征是传输速率高,可寻...

  • 操作系统基础之设备管理

    设备管理 设备管理的主要对象是I/O设备以及设备控制器和I/O通道,主要任务是:完成用户提出的I/O请求,提高I/...

  • io设备控制笔记1

    一,关于设备管理 管理对象: I/O设备和相应的设备控制器(I/O系统组成) 基本任务: 完成用户提出的I/O请求...

  • Chapter-10[设备管理-I/O原理]

    一、I/O的基本知识 1.1 为何要有I/O 前面阐述了操作系统具有进程管理、内存管理、外存管理三大核心功能,但是...

网友评论

      本文标题:第六章 I/O管理

      本文链接:https://www.haomeiwen.com/subject/stugiltx.html