操作系统——8.I/O管理


JAVA后端开发知识总结(持续更新…)


I/O管理


参考文档

B站:《王道考研 操作系统》
《现代操作系统》



一、I/O设备的基本概念

  • I/O

 就是输入/输出,I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备。在UNIX操作系统中将外部设备抽象为一种特殊的文件,使用ReadWrite对外部设备进行操作。

  • I/O设备
  • I/O 设备大致可以分为两类:块设备字符设备
  • 块设备把信息存储在固定大小的块上,每个块有自己独立的地址,块的大小在512~65536 字节之间。块设备的基本特征在于每个块都能够独立于其它块进行读写。
  • 硬盘、蓝光光盘和 USB 是最常见的块设备。磁盘是公认的可寻址的设备,因为无论磁盘臂处于什么位置,它总能够寻址到其它柱面并且等待所需要的磁盘块旋转到磁头下面。
  • 字符设备字符为单位发送或者接收一个字符流,不考虑任何块结构。字符设备是不可寻址的,也没有任何寻道操作。鼠标、键盘等和磁盘不同的设备大都是字符设备。

二、I/O控制器

  I/O设备的电子部件用于实现CPU对I/O设备的控制,被称为I/O控制器,CPU就是通过控制它来控制I/O设备的机械部件。有以下功能:

  • 接受和识别CPU发出的命令:I/O控制器中的控制寄存器来存放CPU发来的Read/Write指令。
  • 向CPU报告设备状态:I/O控制器中的状态寄存器记录I/O设备的当前状态。
  • 数据交换:I/O控制器中设置相应的数据寄存器,类似于数据缓冲区与CPU交互,暂存各项数据。
  • 地址识别(由I/O逻辑实现):类似于内存的地址,为各个寄存器设置一个特定的地址,区分各个寄存器。

I/O控制器的组成

在这里插入图片描述

三、I/O控制方式

  • 程序直接控制方式

在这里插入图片描述

  CPU轮询(完成一次读/写操作流程)检查I/O控制器的状态,循环处理,直到I/O准备就绪。CPU干预很频繁,需要不断轮询,导致长时间处于忙等状态。CPU与I/O设备串行工作。

在这里插入图片描述

  • 中断驱动方式

在这里插入图片描述

  引入中断机制,CPU在对I/O设备发出读/写指令后,将等待I/O的进程阻塞。当I/O完成后,控制器向CPU发出一个中断信号,CPU 检测到中断信号后,会转去执行相应的中断处理程序。CPU从I/O控制器读取一个字的数据传送到CPU寄存器,再写入内存。最后,CPU恢复等待I/O的进程运行环境,并继续执行。CPU和I/O设备可并行工作,但频繁的中断处理影响性能。

在这里插入图片描述

  • DMA方式

  直接存储器存取(DMA):主要用于块设备的I/O控制方式,数据的传送单位是。数据流向不再需要经过CPU,直接是设备和内存交互。需要DMA控制器来提供控制:

在这里插入图片描述

  DMA方式的数据传输以块为单位,CPU干预频率低,数据直接由设备写入内存,其传输效率进一步增加。但是CPU每发出一条I/O指令,只能读/写一个或多个连续的块。

  • 通道控制方式

  “通道”是一种硬件,CPU向通道发出通道指令,指明通道程序在内存中的位置和所要操作的I/O设备,之后CPU切换到其它进程。

总结对比

在这里插入图片描述

四、I/O软件层次

在这里插入图片描述

  1. 用户层软件调用库函数,通过系统调用请求操作系统内核服务,例如用户层软件的printf代码在设备独立性软件层被翻译成write系统调用。
  2. 设备独立性软件向用户层提供统一的调用接口(系统调用),并实现设备保护(设备被看作特殊文件)等功能,其基本功能就是对所有设备执行公共的 I/O 功能。
  3. 设备驱动程序主要负责对硬件设备的具体控制,将上层发出的指令转换成一系列设备的操作,比如,设置设备寄存器,检查设备状态等。
  4. 设备驱动程序和中断处理程序是直接和硬件打交道的。
  5. 中断处理程序由硬件中断、软件中断或者是软件异常活动产生的中断组成,用于实现设备驱动程序或者受保护的操作模式(如:系统调用)之间的转换。
  6. 完整的中断处理程序步骤如下图所示:

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值