第五章 输入输出管理(IO)

第五章 输入输出管理(IO)

5.1 输入输出管理(IO)

5.1.1 IO设备的基本概念和分类

“I/O”就是“输入/输出”(Input/Output)I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部件

按使用特性分类
人机交互的外部设备

用于与计算机用户之间交互设备(打印机,鼠标,键盘)

交换速度相对较,以字节为单位进行数据交换

存储设备

用于存储程序和数据的设备(磁盘、磁带、光盘),用于数据交换

交换速度较,以多字节组成的为基本单位交换

网络通信设备

用于远程设备通信的设备(网络接口、调制解调器)

速度介于前两类之间

传输速率分类

低速设备:传输设备每秒几个字节到数百字节(鼠标、键盘)

中速设备∶传输速率为每秒数千字节至数万字节(行式打印机、激光打印机)

高速设备:传输速率在数百兆字节至千兆字节的一类设备(磁带机、磁盘机、光盘机)

信息交换单位分类

块设备:信息存取总是以数据块为基本单位,存储信息的设备称为块设备(磁盘)。它属于有结构设备。传输速率高,可寻址,可以任意读写某块

字符设备:用于数据输入输出的设备为字符设备,传输的基本单位是字符(交互式终端机,打印机)。属于无结构类型。传输速率低,不可寻址,输入输出时常采用中断驱动方式

5.1.2 IO控制器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T9mZGAbi-1641264638481)(E:/txy/大三上/操作系统/img/image-20210819100627472.png)]

5.1.3 IO控制方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hwYqyj3q-1641264638483)(E:/txy/大三上/操作系统/img/image-20210819100942898.png)]

程序直接控制方式

计算机从外部设备读取数据到存储器,每次读一个字的数据,对读入的每个字,CPU都要对外设状态进行循环检查,直到确定该字已经在I/O设备控制器的数据寄存器中。

读写单位:

优点:容易实现,操作简单

缺陷∶CPU高速性和IO设备的低速性的矛盾(降低了CPU的利用率),使得CPU需要等待I/O设备完成数据I/O的循环测试中,CPU和IO设备只能串行工作

具体方式:

① 给 I/O模块发出读命令:CPU → \to I/O

② 读 I/O模块的状态:I/O → \to CPU

③ 检查状态:如果状态为为0,则返回②继续检查。如果错误退出。

④ 准备好后,从I/O模块中读取字 I/O → \to CPU

⑤ 往存储器中写入字 CPU → \to 存储器

⑥ 判断是否完成

中断驱动方式

允许I/O设备主动打断CPU的运行并请求服务,进而解放CPU,使其向I/O控制器发送读命令后可以继续做其他有用的工作

读写单位∶

优点∶比程序直接控制方式有效

缺点:数据的传输必须要经过CPU,仍然后消耗CPU的时间

具体方式:

① 给 I/O模块发出读命令:CPU → \to I/O (此时CPU做其他事情)

② 读 I/O模块的状态:I/O → \to CPU (进行中断)。

③ 检查状态:如果错误退出。

④ 准备好后,从I/O模块中读取字 I/O → \to CPU

⑤ 往存储器中写入字 CPU → \to 存储器

⑥ 判断是否完成

I/O控制器的角度:到状态为为1的时候,给CPU发送一个中断信号,表示数据已准备好,然后等待CPU请求该数据。I/O控制器收到CPU发出的取数据请求后,将数据放到数据总线上,传到CPU的寄存器中。

CPU角度:CPU发出读命令,然后保存当前运行程序的上下文。转去执行其他程序,在每个指令周期的末尾,CPU检查中断。当有来自I/O控制器的中断时,CPU保存当前正在运行程序的上下文,转去执行中断处理程序已处理该中断。

DMA方式

在IO设备和内存之间开辟直接的数据交换通路,彻底解放CPU

读写单位:一个数据块

所传送的数据,是设备直接送入内存

只有当一个或多个数据块开始和结束的时候,CPU才会进行干预。整块数据的传送是在DMA控制器的控制下完成的。

命令/状态寄存器(CR):用于接收CPU发送的IO命令和有关控制信息或者设备状态

内存地址寄存器(MAR):数据直接在设备与内存之间交互。在输入时,存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。

数据寄存器(DR):用于暂存从设备到内存或者从内存到设备的数据

数据计数器(DC) :存放本次要传送的字(节)数

工作过程

DMA方式的工作过程:CPU接收到I/O设备的DMA请求时,它给I/O控制器发出一条命令,启动DMA控制器,然后继续其他工作。接下来控制操作从CPU转移到了DMA。DMA控制器与存储器直接交互,传送整个数据块,每一次传送一个字,这个过程不用CPU参与

DMA控制方式与中断驱动方式的区别:

中断驱动方式在每个数据需要传输时中断CPU,中断处理是在CPU的控制下完成的。

DMA控制方式则是在所要求传送的一批数据全部传送结束时才中断CPU,是在DMA的控制下完成的。

通道控制方式

设置一个专门负责输入/输出的处理机(DMA方式的发展),实现对一组数块的读写以及相关控制和管理为单位干预

读写单位:一组数据块

优点:实现CPU,通道和I/O设备三者的并行操作,有效的提高了系统资源利用率

缺点:实现较为复杂

实现方式

当CPU要完成一组相关读写操作和有关控制时,只需向I/O通道发送一条I/O指令,以给出其所要执行的通道程序的首地址和要访问的I/O设备,通道接到该指令后,执行通道程序便可完成CPU指定的I/O任务,结束时向CPU发中断请求。

DMA与通道的区别

DMA需要CPU来控制传输的数据块大小、传输的内存位置、而通道方式中这些信息是由通道控制

DMA控制器对应一台设备与内存传递数据,通道可以控制多台设备与内存的数据交换

5.1.4 IO软件层次结构

I/O软件往下与硬件有着密切的联系,往上又与用户直接交互。

普遍采用层次性结构。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IUaD77So-1641264638484)(E:/txy/大三上/操作系统/img/image-20210820091316560.png)]

用户层IO软件

实现与用户交互的接口,用户可以直接调用在用户层提供的,与I/O操作有关的库函数,对设备进行操作

设备独立性软件

用于实现用户程序与设备驱动器的统一接口、设备命令、设备保护、差错控制及设备分配与释放,同时为设备管理与数据传送提供必要的存储空间

设备独立性也称为设备无关性,使得应用程序独立于具体使用的物理设备(使用逻辑设备名)

使用逻辑设备名的好处:增加设备分配的灵活性;易于实现IO重定向

主要功能

执行所有设备的公有操作(设备的分配与回收,逻辑设备名映射为物理设备名,对设备进行保护,禁止用户直接访问设备),屏蔽设备之间数据交换的速度差异等

向用户层(文件层)提供统一接口∶无论哪种设备,他们向用户提供的接口都是相同的

设备驱动程序

与硬件直接相关,负责实现系统对设备发出的操作命令,驱动IO设备工作的驱动程序。

每一类设备配置一个设备驱动程序,是I/O进程与设备控制器之间的通信程序,常以进程的形式存在。

中断处理程序

用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完并恢复被中断进程的现场后,返回被中断进程

硬件设备

IO设备通常包括一个机械部件和一个电子部件

5.1.5 IO核心子系统

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TJjXuBUl-1641264638485)(E:/txy/大三上/操作系统/img/image-20210820092933066.png)]

IO子系统概述

主要提供IO调度,缓冲与高速缓存,设备分配与回收,假脱机,设备保护和差错处理

IO调度概念

I/O调度就是确定一个好的顺序来执行这些I/O请求。

通过IO调度改善系统整体性能,使得进程之间公平共享设备访问,减少IO完成所需要的平均等待时间,改善系统总体效率和应用程序的平均等待时间。

使用主存或者磁盘上的存储空间的技术,如缓冲、高速缓存、假脱机等来改善计算机效率

5.1.6 假脱机技术

目的

缓解CPU高速性与IO的低速性的差异矛盾,引入脱机输入/输出技术,该技术利用专门的外围控制机,将低速的I/O设备上的数据传送到高速磁盘上。

要实现SPOOLing 技术,必须要有多道程序技术的支持

输入井和输出井

是在磁盘上开辟出的两个缓冲区域。

输入井模拟脱机输入时的磁盘,用来收容IO设备的数据

输出井用来模拟脱机输出时的磁盘,收容用户程序的输出数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ENSjLbXU-1641264638485)(E:/txy/大三上/操作系统/img/image-20210823084723811.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IH8is48T-1641264638486)(E:/txy/大三上/操作系统/img/image-20210823084823869.png)]

输入缓冲区和输出缓冲区

是在内存中开辟的两个缓冲区。

输入缓冲区:暂存由输入设备送来的数据

输出缓冲区:暂存从输出井送来的设备

输入进程和输出进程

输入进程∶模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区送到输入并中,当CPU需要数据,直接将输出井中的数据送入内存

输出进程:模拟脱机输出时的外围控制机,把用户要求输出的数据先从内存送到输出井中,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备

特点

提高了IO速度、独占设备变成了共享设备、实现了虚拟设备功能

通俗一点就是,如果设备被占用,我们就先把数据暂存一下,等到设备空闲了就把这些数据输送到设备中

5.1.7 设备的分配与回收

概述

―根据用户IO请求分配设备,原则:充分发挥设备的使用效率,避免进程死锁

设备类型分类

独占式使用设备设备只能互斥使用(打印机)。若设备空闲,则将其独占,不再允许其他进程申请使用,直到该设备被释放才允许其他进程申请使用。

分时共享使用设备通过分时共享来提高设备的利用率(对磁盘的I/O操作,各进程的每次I/O请求可以通过分时来交替进行)

SPOOLing方式使用设备使用空间换时间,对IO设备进行批处理

设备分配的数据结构
  • 设备控制表(DCT)

一个设备控制表表征一个设备,控制表中是设备的各项属性

如:设备类型(type),设备标识符(deviced),设备状态:等待/不等待 (忙/闲),指向控制器表的指针,重复执行次数或时间,设备队列的队首指针

  • 控制器控制表(COCT)

COCT与DCT——对应关系,DCT需要一个表项来表示控制器,即一个指向控制器控制表的指针

设备控制器控制设备与内存交换数据,而设备控制器又需要请求通道为它服务,因此每一个COCT必定有一个表项存放指向相应通道控制表(CHCT)的指针。

具体属性如:控制器标识符:controllerid,控制器状态(忙/闲),与控制器连接的通道表指针,控制器队列的队首指针,控制器队列的队尾指针。

  • 通道控制表(CHCT)

一个通道可以为多个设备控制器服务,因此CHCT中必定有一个指针指向一个表,这个表上的信息表达的是CHCT提供服务的那几个设备控制器

COCT与CHCT是一对多的关系。

具体属性:通道标识符:channelid , 通道状态:忙/闲,与通道连接的控制器变首址,通道队列的队首指针,通道队列的队尾指针。

  • 系统设备表(SDT)

整个系统只有一张SDT,记录已经连接到系统中的所有物理设备的情况,每个物理设备只占一个表目。

具体属性:设备类,设备标识符,DCT,驱动程序入口。

设备分配的策略

分配原则:充分发挥设备效率,避免进程死锁,将具体的用户程序和具体设备分隔开。

分配方式
  • 静态:系统—次性的把设备分配给相应作业,直到作业结束(独占式设备)

    优点∶没有死锁问题

    缺点:降低了设备使用率

  • 动态:进程执行过程中根据执行需要进行分配。进程需要设备,提出请求;一旦用完,立即释放。

    优点:提高了设备利用率

    缺点∶分配算法不当可能导致死锁

设备分配算法

先请求先分配类似于先来先服务

优先级高者优先

独占设备一般使用静态分配,共享设备一般使用动态分配

设备分配的安全性

  • 安全分配方式:当进程发出I/O请求后便进入阻塞态,直到其I/O操作完成时才被唤醒。

    • 优点:设备分配安全
    • 缺点:CPU和I/O设备串行工作
  • 不安全分配方式:进程在发出I/O请求后继续运行,需要时又发出第二个,第三个。仅当进程所请求的设备被另一进程占用时,才进入阻塞态。

    • 优点:一个进程可以同时操作多个设备
    • 缺点,可能产生死锁

逻辑设备名到物理设备名的映射:LUT

5.1.8 缓冲区管理

磁盘高速缓存

使用磁盘高速缓存技术可以提高磁盘的IO速度,对高速缓存复制的访问要比原始数据访问更高效

磁盘高速缓存技术指利用内存中的存储空间来暂存从磁盘中读出的一系列的盘块信息

磁盘高速缓存,逻辑上属于磁盘,物理上属于驻留在内存中的盘块

在内存中的两种形式

在内存中开辟一个单独的存储空间作为磁盘高速缓存,大小固定

把未利用的内存空间作为一个缓冲池,供请求分页系统和磁盘IO时共享

缓冲区
引入缓冲区的目的

缓和CPU与IO之间的速度差异矛盾

减少对CPU的中断频率,放宽对CPU中断响应时间的限制

解决基本数据单元大小不匹配的问题

提高CPU和IO设备之间的并行性

实现方法

采用硬件缓冲器〔成本过高),除了关键位置,一般不使用硬件缓冲器

采用缓冲区(位于内存区域)

缓冲区的特点

当缓冲区数据非空,不能往缓冲区冲入数据,只能从缓冲区把数据传出。

缓冲区为空时,可以往缓冲区冲入数据,但必须把缓冲区充满之后,才能从缓冲区把数据传出。

分类
  • 单缓冲

    设备和处理机之间设置缓冲区,设备和处理机交换数据的时候,先把被交换的数据写入缓冲区,然后需要数据的设备或处理机从缓冲区中取走数据

    使用时间 m a x ( C , T ) + M max(C,T)+M max(CT)+M

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S1HxfqDY-1641264638486)(E:/txy/大三上/操作系统/img/image-20210823090105764.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i0DeHCGT-1641264638487)(E:/txy/大三上/操作系统/img/image-20210823090126286.png)]

  • 双缓冲

    设置两个缓冲区,当缓冲区1满时,向缓冲区2中注入数据,只有缓冲区满才能取出数据

    提高了处理机和输入设备的并行操作程度

    m a x ( C + M , T ) max(C+M,T) max(C+MT)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SupAmyU5-1641264638488)(E:/txy/大三上/操作系统/img/image-20210823090156485.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HA5ikf7x-1641264638488)(E:/txy/大三上/操作系统/img/image-20210823090211518.png)]

  • 循环缓冲
    包含多个大小相等的缓冲区,每个缓冲区中有一个链接指针指向下一个缓冲区,最后一个缓冲区指针指向第一个缓冲区,多个缓冲区构成一个环形

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-br76qqx1-1641264638489)(E:/txy/大三上/操作系统/img/image-20210823090302422.png)]

  • 缓冲池

    缓冲区分为三个队列,空缓冲队列,装满输入数据的缓冲队列,装满输出数据的缓冲队列

    四种缓冲区:收容输入数据的工作缓冲区,提取输入数据的工作缓冲区,收容输出数据的工作缓冲区,提取输出数据的工作缓冲区

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AkwllTUP-1641264638490)(E:/txy/大三上/操作系统/img/image-20210823090330524.png)]

① 当输入队列需要输入数据时,使从空缓冲队列的队首摘下一个空缓冲区,放入收容输入的工作缓冲区,然后把输入数据输入其中,装满后再将它挂到输入队列队尾。

② 需要输入时,从输入队列中拿一个到提取输入缓冲区中,然后放回空缓冲队列中。

③ 输出队列需要输出时,从输入队列中拿出一个,放到提取输出中,然后提取输出后,再放到空缓冲队列

④ 计算进程需要输出数据时,然后需要从空缓冲队列中拿出一个放入收容输出中,然后装满数据后放入输出队列的队尾。

注意

管道通信中的“管道”其实就是缓冲区。要实现数据的双向传输,必须设置两个管道

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z3RywStA-1641264638490)(E:/txy/大三上/操作系统/img/image-20210820095649299.png)]

高速缓存与缓冲区对比
相同点

都介于高速设备和低速设备之间

不同
  • 存放数据

    高速缓存:存放的是低速设备上的某些数据的复制数据

    缓冲区:存放的是低速设备传递给高速设备的数据,这些数据在低速设备上不一定有备份,这些数据再从缓冲区传送到高速设备

  • 目的

    高速缓存∶高速缓存存放的是高速设备经常要访问的数据,如高速缓存中数据不在,高速设备就要访问低速设备

    高速设备和低速设备的通信都要经过缓冲区高速设备永远不会去直接访问低速设备

PPT小题整理

一、I/O系统的功能、模型和接口

​ I/O系统管理的主要对象是I/O设备和相应的设备控制器。其最主要的任务是,完成用户提出的I/O请求,提高I/O速率,以及提高设备的利用率,并能为更高层的进程方便地使用这些设备提供手段。

I/O系统的基本功能
  • 隐藏物理设备的细节
  • 与设备的无关性
  • 提高处理机和I/O设备的利用率
  • 对I/O设备进行控制
  • 确保对设备的正确共享
  • 错误处理
I/O系统层次结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zsrpDV1V-1641264638491)(…/img/06.png)]

I/O设备接口

块设备接口、流设备接口、网络接口

二、I/O设备和设备控制器

I/O设备一般是由执行I/O操作的机械部分执行控制I/O的电子部件组成。通常将这两部分分开,执行I/O操作的机械部分就是一般的I/O设备,而执行控制I/O的电子部件则称为设备控制器或适配器

按使用特性分类:存储设备、输入/输出设备、终端设备、脱机设备

按传输速率分类:低速、 中速、高速

按信息交换的单位分类:块设备、字符设备

按设备的共享属性分类:独占设备、共享设备、虚拟设备

设备与控制器之间的接口
  1. 数据信号线
  2. 控制信号线
  3. 状态信号线

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yw2WbaFE-1641264638491)(…/img/07.png)]

设备控制器的基本功能

对处理机发送给控制器的I/O命令进行译码;对发送给控制器的地址进行译码,根据所译出的命令对所选设备进行控制

  • 接收和识别命令

  • 数据交换

  • 标识和报告设备的状态

  • 地址识别

  • 数据缓冲

  • 差错控制

内存映像I/O:该方式统一了对内存和对控制器的访问的方法,简化了I/O编程。

I/O通道

​ 在CPU和设备控制器之间增设通道,主要是为了建立独立的I/O操作,不仅使得数据的传送能独立于CPU ,而且也希望I/O通道设备的引入:有关对I/O操作的组织、管理及其结束处理也尽量独立

特点:

指令类型单一

通道没有自己的内存

通道类型

字节多路通道(Byte Multiplexor Channel)

数组选择通道(Block Selector Channel)

数组多路通道(Block Multiplexor Channel)

单通路I/O系统:设备连到一个通道上,造成整个系统吞吐量下降

多通路I/O系统:一个设备连接到多个通道上

三、中断机构和中断处理程序

因为进程之间的切换是通过中断来完成的。另一方面,中断也是设备管理的基础

中断处理程序是I/O系统中最低的一层,它是整个I/O系统的基础

中断(Interrupt):是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程

中断源:引起中断发生的事件被称为中断源

中断请求:中断源向CPU发出的请求中断处理信号称为中断请求

中断响应:CPU收到中断请求后转相应的事件处理程序称为中断响应

外中断:指来自处理机外部的中断。

内中断:指在处理机内部产生的中断。

每种设备配以相应的中断处理程序,而中断服务程序的入口地址称为中断向量

把所有的中断向量集中起来,按中断类型号从小到大的顺序存放到存储器的某一区域内,这个存放中断向量的存储区叫做中断向量表

对多中断源的处理方式
  • 屏蔽(禁止)中断
  • 嵌套中断
中断处理程序

​ 当一个进程请求I/O 操作时,该进程将被挂起,直到I/O设备完成I/O操作后,设备控制器便向CPU发送一个中断请求,CPU响应后便转向中断处理程序,中断处理程序执行相应的处理,处理完后解除相应进程的阻塞状态。

四、设备驱动程序

由于驱动程序与硬件密切相关,故通常应为每一类设备配置一种驱动程序。

  • 将命令中的抽象要求转换为与设备相关的低层操作序列
  • 检查用户I/O请求的合法性
  • 发出I/O命令
  • 及时响应由设备控制器发来的中断请求

设备驱动程序的主要任务是启动指定设备。

  • 程序I/O方式

  • 中断驱动I/O控制方式

  • 直接存储器访问DMA I/O控制方式

  • I/O通道控制方式

原则:尽量减少主机对I/O控制的干预

五、与设备无关的I/O软件

设备独立性也称设备无关性。其基本含义是:应用程序独立于具体使用的物理设备,使用逻辑设备名来请求某类设备,系统在执行时,则使用该类设备的物理设备名

引入了逻辑设备名。逻辑设备名称到物理设备名称的转换。

设备控制表DCT(为每台设备配置一张)

控制器控制表COCT:系统为每一个控制器都设置了用于记录控制器情况的控制器控制表

通道控制表CHCT:每个通道都有一张通道控制表

系统设备表SDT:这是系统范围的数据结构,记录了系统中全部设备的情况

六、用户层的I/O软件

系统调用:应用程序通过系统调用,间接调用OS中的I/O过程,对I/O设备进行操作

库函数:用户程序通过调用对应的库函数来使用系统调用

SPOOLing技术(假脱机技术):将一台独占的物理设备虚拟为多台逻辑设备,从而允许多个用户(进程)共享

七、缓冲区管理

缓和CPU与I/O设备间速度不匹配的矛盾

减少对CPU的中断频率, 放宽对CPU中断响应时间的限制

解决数据粒度不匹配的问题

提高CPU和I/O设备之间的并行性

I/O设备输入缓冲区时间为(T),缓冲区传送到工作区时间(M),工作区处理时间(M)

单缓冲: m a x ( c , t ) + M max(c,t)+M max(c,t)+M

双缓冲: m a x ( c + m , t ) max(c+m,t) max(c+m,t)

循环缓冲:空缓冲队列,输入队列,输出队列

缓冲池:收容输入,提取输入,收容输出,提取输出

O方式

  • 中断驱动I/O控制方式

  • 直接存储器访问DMA I/O控制方式

  • I/O通道控制方式

原则:尽量减少主机对I/O控制的干预

五、与设备无关的I/O软件

设备独立性也称设备无关性。其基本含义是:应用程序独立于具体使用的物理设备,使用逻辑设备名来请求某类设备,系统在执行时,则使用该类设备的物理设备名

引入了逻辑设备名。逻辑设备名称到物理设备名称的转换。

设备控制表DCT(为每台设备配置一张)

控制器控制表COCT:系统为每一个控制器都设置了用于记录控制器情况的控制器控制表

通道控制表CHCT:每个通道都有一张通道控制表

系统设备表SDT:这是系统范围的数据结构,记录了系统中全部设备的情况

六、用户层的I/O软件

系统调用:应用程序通过系统调用,间接调用OS中的I/O过程,对I/O设备进行操作

库函数:用户程序通过调用对应的库函数来使用系统调用

SPOOLing技术(假脱机技术):将一台独占的物理设备虚拟为多台逻辑设备,从而允许多个用户(进程)共享

七、缓冲区管理

缓和CPU与I/O设备间速度不匹配的矛盾

减少对CPU的中断频率, 放宽对CPU中断响应时间的限制

解决数据粒度不匹配的问题

提高CPU和I/O设备之间的并行性

I/O设备输入缓冲区时间为(T),缓冲区传送到工作区时间(M),工作区处理时间(M)

单缓冲: m a x ( c , t ) + M max(c,t)+M max(c,t)+M

双缓冲: m a x ( c + m , t ) max(c+m,t) max(c+m,t)

循环缓冲:空缓冲队列,输入队列,输出队列

缓冲池:收容输入,提取输入,收容输出,提取输出

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值