赞
踩
设备控制器的结构
设备控制器的I/O端口
一个I/O控制器会拥有多个端口。系统中I/O端口的编址方式可以有以下两种方式
设备控制器的基本功能
轮询方式也称为程序直接控制方式,该方式采用用户程序直接控制主机与外部设备之间进行输入输出操作。CPU必须不停地循环测试I/O设备的状态接口,当发现设备处于准备好状态时,CPU就可以与I/O设备进行数据存取操作、
中断控制方式的基本思想是:引入中断处理机构,将轮询方式中的CPU最大限地解放出来,使得CPU向I/O控制器发出I/O命令后能够调度其他进程执行,无需空转轮询,提升CPU和外设之间的并发执行能力
DMA的英文拼写是“Direct Memory Access”直接内存访问,是一种不经过CPU而直接从内存存取数据数据传输模式,中断模式下硬盘和内存之间的数据传输是由CPU来控制的;然而在DMA模式下CPU只需要向DMA控制此下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就会很大程序上减轻了CPU资源占有率。
①CPU将命令块地址写入DMA控制器
②DMA请求传送
③传送数据到内存
④发送应答信号
⑤结束I/O向CPU发送中断信号
通道本质上是一个简单的处理器,专门负责输入,输出控制,具有执行I/O指令的能力,并通过执行通道I/O程序来控制I/O操作。
缓解设备之间速度差异的矛盾
缓冲区可以缓解设备之间传输数据大小不一致的矛盾
支持应用程序I/O的复制语义
①硬件缓冲
目的是为了协调系统和硬件之间的数据传输速度的差异
②内存缓冲
在内存中规划出一个具有N个单元的缓冲区,以便存放系统输入或输出的数据,这样的缓冲区又称为内存缓冲区。
③软件缓冲
在现代计算机系统中,有很多软件在运行时都会进行信息缓存,特别是网络应用程序需要对一些特殊的数据在客户端进行本地缓存。
缓冲技术
单缓冲:操作系统提供的最简单的一种缓冲技术。在块设备之间进行数据传输时,一般情况下,缓冲区的大小与物理块的大小一样。数据生产者设备与消费者设备之间的速率差别很大的情况下可以采用单缓冲方式传输数据。
双缓冲与多缓冲
双缓冲是针对但缓冲方式的改进,在数据生产者和消费者设备之间的速率相差不大的情况下比较适用。
缓冲池
在多缓冲的基础上,可以构建缓冲池。缓冲池中的缓冲区由操作系统统一进行管理和分配。系统会维护三个队列:
①缓冲池中的空缓冲区链接形成一个空缓冲队列emq
②装满输入数据的缓冲区链接成一个输入缓冲队列inq
③装满输出数据的缓冲区链接成一个输出缓冲队列outq
虚拟设备的实现
通过虚拟技术将一台独占设备虚拟成多台逻辑设备,供多个用户进程同时使用,通常把这种经过虚拟的设备称为虚拟设备
SPOOLing系统是Simultaneous Peripheral Operation On-Line 的缩写,通常称为“假脱机技术”。 SPOOLing技术是对脱机输入、输出系统的模拟。
设计分配策略中,需要考虑许多如下一些相关因素
①设备的固有属性
②系统采用的分配算法
③设备分配的安全性
④设备的无关性
效率
在大多数系统中,I/O操作是系统的瓶颈。与内存和CPU相比较,外设的速度较低,为了解决这个瓶颈问题,其中一种方法是想办法提高CPU与外设的并行执行能力。在我们设计I/O软件是,“效率”是我们需要重点考虑的原则,比如各种缓冲技术就是为了提升“效率”的优化手段。
通用性
为了最大限度地避免错误,我们希望能够使用统一的方式来管理所有的设备。目前我们常用的方法是用一种层次化的、模块化的方法设计I/O先关软件。这种方法隐藏了大部分I/O设备底层中的细节。提供给上层用户统一的结构,如采用相同的读写、打开、关闭等来操作设备
设备驱动程序具有以下功能:
1>接收由于设备无关的软件发来的命令和参数,并将命令中的抽象要求转换为与设备相关的底层操作序列。
2>检查用户I/O请求的合法性
3>发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作及时响应由设备控制器发来的中断请求,并根据中断类型调用响应的中断处理程序进行处理。
“独立”体现于:应用程序独立与具体使用的物理设备
为了实现设备独立性而引入了逻辑设备和物理设备这两个概念
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。