IO软件层次结构

用户层软件->设备独立性软件->设备驱动软件->中断处理程序->硬件

  • 用户层软件实现与用户交互的接口,用户可直接使用该层提供的,与IO操作相关的库函数对设备进行操作。

  • 用户层软件将用户请求翻译成格式化的IO请求,并通过系统调用请求操作系统内核的服务。

  • 设备独立性软件又称为设备无关性软件。他向用户软件层提供系统调用接口,设备的保护,差错处理,设备的分配与回收,数据缓冲区管理,建立逻辑设备名到物理设备名的映射关系;根据设备类型选择调用相应的驱动程序。(调用相应的驱动程序时需要一个逻辑设备表LUT,这张表中有逻辑设备名,物理设备名,驱动程序入口的地址等属性。)

一般来讲,驱动设备是以一个独立的进程存在。

  • 设备驱动程序是厂家提供给计算机的。不同设备的驱动基本大不相同,设备驱动程序主要负责对硬件设备的具体控制,将上层发出的一些列命令(读写)转化为特定的设备能听懂的语言,例如设置设备寄存器;检查设备处于的状态。

  • 当IO任务完成后,IO控制器会发送一个中断信号,系统会根据中断信号来找到对应的中断处理程序并执行。中断处理程序的处理流程如下。

  • 从控制器读出IO设备的状态,判断一下IO是否正常结束,如果正常结束会从设备中读入一个字的数据并经由CPU放在内存缓冲区中,否则根据异常原因调用响应处理程序。

硬件是最后执行IO操作,有机械部件和电子部件组成。

其中IO核心执行同指的是设备独立性软件,设备驱动程序,中断处理,假脱机技术是在用户软件层实现的

假脱机技术

脱机就是脱离主机的控制然后进行输入和输出。

在早期批处理阶段引入了脱机输入和输出技术(用磁带完成)
早期的计算机输入是靠在只带上打孔实现的,因为计算机只认识二进制,根据纸带上孔的分布来向计算机输入和输出数据,但是这样做的效率太慢,大大浪费了CPU的处理时间,因为处理纸带的时间比实际计算机计算的时间长了很多。这时引入脱机技术,在纸带和计算机之间多加了一个外围控制机,在外围控制机的控制下,慢速的输入设备仙贝送到快速的磁带上,然后计算机再从磁带上取数据,这样两者之间的速度之差就减少了许多。

假脱机技术–输入井和输出井

“假脱机技术”又称为“SpooLing技术”使用软件的方式模拟脱机脱机技术。SpooLing系统的组成如下:

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

输入进程和输出进程

输入进程模拟脱机时的控制机,输出进程模拟脱机输出时的外围控制机。

输入/输出缓冲区

输入缓冲区用于暂存从输入设备输入的数据,之后再转存到输入井中
输出缓冲区用于暂存从输出井输出的数据,之后发送到输出设备上

SpooLing技术可以将独占式的物理机虚拟成共享的设备

IO软件层次结构与假脱机技术的更多相关文章

  1. Manual | BSD手册| Linux手册 | 数据库手册 | 编程开发手册 | WEB开发手册 | 软件应用手册 | 网络技术手册 | GNU手册

    豆豆手册 □ BSD手册 □ Linux手册 □ 数据库手册 □ 编程开发手册 □ WEB开发手册 □ 软件应用手册 □ 网络技术手册 □ GNU手册 在线手册 首 页 BSD手册   ·FreeBS ...

  2. IO流--字符流缓冲技术

    缓冲技术是为了提高数据的读写效率而提出的. (1)字符流的缓冲读 在字符流的缓冲技术中提供了一个newLine()方法,这个方法是跨平台的 在读数据的时候采用读完直接刷新的方式可以保证断电后数据不会丢 ...

  3. 传统IO拷贝与零拷贝技术比较

    1. 传统IO 由上面图知,传统io需要经过4次copy, 3次状态切换 第一次: 从硬盘 经过 DMA 拷贝 到 kernel buffer (内核buferr) 第二次: 从kernel buff ...

  4. 操作系统-I/O(5)I/O软件的层次结构

    IO软件的设计目标: (1)高效率:改善设备效率,尤其是磁盘I/O操作的效率 (2)通用性:用统一的标准来管理所有设备 IO软件的设计思路: 把软件组织成层次结构,低层软件用来屏蔽硬件细节,高层软件向 ...

  5. FD.io 社区中国行暨未来网络技术沙龙 南京站 参会小结

    FD.io 社区中国行暨未来网络技术沙龙 南京站,2018 年 3 月 17 日. 开场致辞 Ray 介绍了一些有的没的 ⁃ (Future Event)DPDK summit, FD.io summ ...

  6. CPU纯软件全虚拟化技术

    我们在前面的文章中提到了虚拟化技术的大致分类情况,即分为全虚拟化.半虚拟化和硬件辅助虚拟化3大类.而我们虚拟化技术最主要的虚拟主体就是我们的硬件CPU.内存和IO,那么我们的CPU在全虚拟化模式下如何 ...

  7. EOS.IO技术学习

    如今很火的项目EOS的学习,以下主要的内容是基于白皮书 参考: http://chainx.org/paper/index/index/id/20.html EOS.IO软件引入了一种新的块链架构,旨 ...

  8. 虚拟化技术原理(CPU、内存、IO)

    本文来自:http://www.ywnds.com/?p=5856 虚拟化 云计算现在已经非常成熟了,而虚拟化是构建云计算基础架构不可或缺的关键技术之一. 云计算的云端系统, 其实质上就是一个大型的分 ...

  9. 10、技术经理要阅读的书籍 - IT软件人员书籍系列文章

    技术经理是项目组中的重要角色.他需要负责软件项目中的重要部分,如果项目组没有架构师的话,技术经理还需要担负起架构师的职责.同时,技术经理要对项目中的所有重要的技术问题进行处理. 但是,在项目组内部,软 ...

随机推荐

  1. 【UIautomator2 安卓自动化】教程

    一.环境准备: [安装] 安装uiautomator2 pip install --pre uiautomator2 pip install pillow [初始化] 部署相关的守护进程. 电脑连接上 ...

  2. 云图说 | 云上资源管控有神器!关于IAM,你想知道的都在这里!

    摘要:统一身份认证(Identity and Access Management,简称IAM)是华为云上帮助您安全控制华为云资源访问权限的基础服务.通过本期云图说,您可以初步了解IAM的基本功能. 从 ...

  3. windows10 64位下安装oracle 11g和PL/SQL Developer

    一.材料准备: oracle11g安装包(64位) oracle11g客户端(32位) PL\SQL Developer安装包(32位) 1.下载Oracle 11g链接:http://www.ora ...

  4. css 06-CSS盒模型详解

    06-CSS盒模型详解 #盒子模型 #前言 盒子模型,英文即box model.无论是div.span.还是a都是盒子. 但是,图片.表单元素一律看作是文本,它们并不是盒子.这个很好理解,比如说,一张 ...

  5. TP学习—第一天:框架的简单学习;创建应用;

    一.框架目录文件的介绍     common  核心函数库目录 conf   框架的核心配置文件 lang   语言包目录 library   核心资源库目录 tpl 不用管,就是几个模板  Thin ...

  6. Redis5.0 主从模式和高可用 搭建和测试报告

    Redis 单机模式很简单,相关测试水文看这里 Redis5 压力测试结果反馈报告 必须的,今天接着写水文,写一写现在redis 支持的三种集群,主从模式,哨兵模式,Cluster模式,今天先搞主从模 ...

  7. kubeadm部署k8s

      Kubernetes技术已经成为了原生云技术的事实标准,它是目前基础软件领域最为热门的分布式调度和管理平台.于是,Kubernetes也几乎成了时下开发工程师和运维工程师必备的技能之一. 官方文档 ...

  8. 5分钟完全掌握Python协程

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 1. 协程相关的概念 1.1 进程和线程 进程(Process)是应用程序启动的实例,拥有代码.数据 ...

  9. [.NET] - OleDb读取CSV文件:使用指定的分隔符号

    今天在用OleDb方式读取一个CSV文件的时候,发现得到的文本不是通常用逗号隔开的.而是用Tab制表符来隔开的. OrderID OrderName 1 1 2 2 3 3 然后去MSND查询了了下发 ...

  10. 简析5G时代的MART流处理

    在当今数字驱动的世界中,实时处理数据流是业务成功的必要条件. 5G网络的引入增加了对数据量和速要求,而这些要求给传统的数据架构带来了压力.对吸收数据流量的需求空前增长,同时还要通过跨多个数据流,做出智 ...