【操作系统】I/O系统
1 I/O硬件组成
1.1 设备接口——控制器的作用
操作系统将命令写入控制器的接口寄存器(或接口缓冲区)中,以实现输入/输出,并从接口寄存器读取状态信息或结果信息。
控制器的任务:把串行的位流转换为字节块,并进行必要的错误修正。
首先,控制器按位进行组装,然后存入控制器内部的缓冲区中形成以字节为单位的块;在对块验证检查和并证明无错误时,再将它复制到内存中。
1.2 I/O端口地址
定义:接口电路中每个寄存器具有的、唯一的地址,是个整数。
I/O指令形式与I/O地址是相互关联的,主要有两种形式:
I/O指令形式 | 定义 | 优点 | 缺点 |
---|---|---|---|
I/O独立编址(I/O专用指令) | 分配给系统中所有端口的地址完全独立 | 外设不占用内存的地址空间;易于区分是对内存操作还是I/O操作 | I/O端口操作指令类型少,不灵活 |
内存映像编址(内存映像I/O模式) | 分配给系统中所有的地址空间与内存的地址空间统一编址 | 凡是可对内存操作的指令都可对I/O端口操作,不需要专门的I/O指令 | 占用内存空间 |
2 I/O控制方式
I/O控制方式 | 定义 |
---|---|
可编程I/O(轮询/查询) | 由CPU代表进程给I/O模块发送I/O命令,进程进入忙等待状态直到操作完成 |
中断驱动I/O | 为了减少设备驱动程序不断询问控制器状态寄存器的开销,I/O操作结束后由设备控制器主动通知设备驱动程序 |
DMA | 直接的内存存取,由专门的控制器完成 |
2.1 轮询方式流程
2.2 中断驱动I/O方式流程
3 缓冲技术
为了解决CPU与I/O设备之间速度不匹配的问题。凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。
3.1 缓冲技术的实现
1 分类
缓冲区分类 | 实现机制 |
---|---|
硬缓冲 | 由硬件寄存器实现 |
软缓冲 | 在内存开辟一个空间用作缓冲区 |
2 缓冲区管理
分类 | 实现 |
---|---|
单缓冲 | |
双缓冲 | |
缓冲池 | 统一管理多个缓冲区,采用有界缓冲区的生产者/消费者模型对缓冲池中的缓冲区进行循环使用 |
3 Unix的System V缓冲技术
设计理念
采用缓冲池技术:
- 缓冲区结合提前读和延迟写技术对就有重复性及阵发性I/O进程很有帮助
- 可以充分利用之前从磁盘读入、虽已传入用户区但仍在缓冲区的数据。
数据结构
缓冲池:由200个缓冲区组成,每个缓冲区包括两个部分:缓冲首部+缓冲数据区。
缓冲区由两种队列构成:
1、空闲缓冲区队列(av链):队列头部为bfreelist
2、设备缓冲队列(b链):链接所有分配给各类设备使用的缓冲区,按照散列的方式组织
每个缓冲区可以同时在av链和b链存在。开始时当缓冲区未被使用时在空闲av链。当开始I/O请求时,有缓冲区会被分配给I/O请求,此时这些缓冲区就会出现在设备I/O请求队列和设备b链。当I/O完成后,设备I/O请求队列中的缓冲区就会还给av链,此时缓冲区在av链和设备b链中都存在。
实现机制
当进程想从指定的盘读取数据时:
- 系统根据盘块号从设备b链中查找,如果找到,则将该缓冲区状态标记为“忙”,并从空闲av队列中取下,再完成从缓冲区到内存用户区的数据传送;
- 如果在设备b链中没有找到,则从空闲av链队首摘取一个缓冲区,插入设备I/O请求队列,并从原设备b链取下,插入到新的设备b链中(该新链由读入信息盘块号确定);
- 当系统完成从缓冲区到内存用户区的数据传送后,要把缓冲区释放,链入空闲av链队尾;
- 当数据从磁盘块读入到缓冲区并传送到内存用户区之后,该缓冲区一直保留在原设备b链中,即它的数据一直有效。若又要使用它,则从空闲av链中取下,使用完后插入到空闲av链队尾。若一直未使用则该缓冲区从空闲av链慢慢升到队首,最后被重新分配。
4 I/O性能问题
- 减少或缓解速度差距—>缓冲技术
- 使CPU不等待I/O—>异步I/O
- 让CPU摆脱I/O操作—>DMA、通道
4.1 同步传输I/O流程
在I/O处理过程中,CPU处于空闲等待状态,而在处理数据的过程中,不能同时进行I/O操作。
4.2 异步传输I/O的基本思想
将访问控制分成两段进行;
发出读取指令后继续做其他操作;
当需要用读入的数据的时候,再使用wait命令等待其完成;
不引入线程切换,减少上下文开销的消耗。
【操作系统】I/O系统相关推荐
- Java 获取操作系统名字、系统版本、cpu信息
Java 获取操作系统名字.系统版本.cpu信息 System.getProperty("os.name");//得到操作系统名字 System.getProperty(" ...
- 以下哪些不是Linux操作系统特点,Linux系统都有哪些特点?很多人不知道!
提及Linux可能很多人都不太了解,其实Linux跟大家熟知的Windows一样,都属于操作系统,对比Windows系统,Linux更适合应用在服务器领域,为什么呢?Linux系统都有哪些特点?跟小编 ...
- 操作系统笔记——Linux系统实例分析、Windows系统实例分析
文章目录 传送门 Linux进程管理 Linux进程组成 Linux进程链表 Linux进程控制 用户进程创建与撤销 0,1,2号进程 Linux进程切换 Linux进程调度 内核同步 Linux储存 ...
- 旧电脑 存储服务器 系统,爷爷级PC,用白菜价内存搭建内存硬盘操作系统,老系统飞起来。...
认识众多玩家高手/拆客/DIY爱好者,查阅更多资源,一起学习技术知识 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 爷爷级PC,用白菜价内存搭建内存硬盘操作系统,老系统飞起来. 系统配置: ...
- 华为云服务器是什么操作系统,云服务器操作系统是什么系统
云服务器操作系统是什么系统 内容精选 换一换 ISO是一种光盘映像文件,通过特定的压缩方式,将大量的数据文件统一为一个后缀名为iso的映像文件.ISO文件可以理解为从光盘中复制出来的数据文件,所以IS ...
- 操作系统19———IO系统之与设备无关的I/O软件用户层的I/O软件
操作系统19---IO系统之与设备无关的I/O软件&用户层的I/O软件 一.目录 二.与设备无关软件的基本概念 设备独立性(设备无关性)的含义:应用程序中所用的设备,不局限于使用某个具体的物理 ...
- 操作系统18———IO系统之中断机构和设备驱动程序
操作系统18---IO系统之中断机构和设备驱动程序 一.目录 文章目录 操作系统18---IO系统之中断机构和设备驱动程序 一.目录 二.中断简介 1.中断和陷入 2.中断限量表和中断优先级 3.对多 ...
- zabbix日志监控:操作系统、业务系统、文件大小、多行日志
zabbix日志监控:操作系统.业务系统.文件大小.多行日志 目录 1 监控操作系统日志 2 监控业务系统日志 具体要求: 分析: 操作: 3 监控日志文件大小 (1)在被管主机当中安装agent ( ...
- win7和linux系统的区别,Linux操作系统 和WIN7系统 的特点
Linux操作系统 和WIN7系统 的特点 今天下载了Linux 系统 现在用的是WIN7 想换成Linux 他门2个系统的特点 更新时间:2019-03-14 18:42 最满意答案 L ...
- linux操作系统原理_Linux系统从新手到运维老鸟学习指南
Linux是在1990年底到1991年由芬兰大学的学生LinusTorvalds利用Minix操作系统作为开发平台编写了内核,目前由世界各地的爱好者共同开发和维护的与UNIX兼容的操作系统,也是自由和 ...
最新文章
- AI矢量绘图软件技能学习视频教程
- C#面向对象设计模式纵横谈——6.Prototype 原型模式(创建型模式)
- influxdb数据过期_Influxdb Cluster下的数据写入
- “劣质”的PHP代码简化
- 采购光纤收发器时应该注意哪些事项?
- 虚拟机中ubuntu可以使用显卡吗_在KVM下使用ubuntu19.10安装Anbox
- select, poll, epoll
- RabbitMQ学习之messageconver插件实现(Gson)
- iQOO Neo6双色官方图公布:云阶三摄 辨识度十足
- 如何通过 Apple Watch 解锁 Mac
- java quartz配置
- 【android】网络定位服务NetworkLocationProvider
- 单龙芯3A3000-7A1000PMON研究学习-(10)撸起袖子干-pmoncfg Bonito 干了什么?(这是make cfg的部分)
- python求积分面积的几个方法
- java合并果子_合并果子(经典优先队列)
- Linux系统学习环境搭建 - 跟小智一起学网络(3)
- Quorum企业以太坊搭建区块链记录系列
- word中如果出现某一行突然文字突然间距增大,两种解决方案
- 女神节送什么比较好?适合女生用的蓝牙耳机推荐
- 百度APP“看听模式”:“AI主播”借道信息流全面落地?
热门文章
- java志愿者活动招募申请报名系统springbootboot
- for-in 中的 index 类型
- Android Audio混音实践篇
- 扔硬币先手获胜概率问题
- sqlsever回滚操作_sqlserver事务与回滚
- sqlserver 人名_SQLserver运维必备:T-SQL语句练习
- 手机wps怎么改html文件后缀名,手机WPS如何制作个人简历 WPS一键修改文档重命名方法分享...
- 2021-2025年中国物理疗法电子病历和计费软件行业市场供需与战略研究报告
- csgo跑图文件_CSGO:萌新入坑如何快速优化游戏设置?这个跑图指令也是十分实用...
- 安装VMware Tools显示灰色正确解决办法