赞
踩
I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部分。
I/O设备按使用特性可以分为以下类型:
按传输速率分类:
按信息交换的单位分类:
设备管理的主要任务之一是控制设备和内存或处理机之间的数据传送。外围设备和内存之间的输入/输出控制方式有如下4种。
计算机从外部设备读取数据到存储器,每次读一个字的数据。对读入的每个字,CPU需要对外设状态进行循环检查,直到确定该字已经在I/O控制器的数据寄存器中。
CPU的绝大部分时间处于等待I/O设备完成数据I/O的循环测试中,造成了CPU资源的极大浪费。
数据传送的单位:每次读写一个字
数据的流向:
读操作(数据输入):I/O设备->CPU->内存
写操作(数据输出):内存->CPU->I/O设备
优点:简单且易于实现
缺点:CPU利用率极低
允许I/O设备主动打断CPU的运行并请求服务,从而“解放”CPU,使得其向I/O控制器发送读命令后可以继续做其他工作。
数据传送的单位:每次读写一个字
数据的流向:
读操作(数据输入):I/O设备->CPU->内存
写操作(数据输出):内存->CPU->I/O设备
优点:CPU不再需要不停地查询,CPU和I/O设备可并行工作,CPU利用率明显提高。
缺点:数据中的每个字在存储器与I/O控制器之间的传输都必须经过CPU,这就导致了中断驱动方式仍然后消耗较多的CPU时间。
DMA(直接存储器存取)方式的基本思想是在I/O设备和内存之间开辟直接的数据交换通路,彻底解放CPU。
DMA方式的特点如下:
DMA控制器的组成如下图所示:
DMA方式的流程如下图所示:
数据传送的单位:每次读或写一个或多个块
数据的流向:
读操作(数据输入):I/O设备->内存
写操作(数据输出):内存->I/O设备
优点:数据传输以“块”为单位,CPU介入频率进一步降低。数据的传输不再需要先经过CPU再写入内存,数据传输效率进一步增加。CPU和I/O设备的并行性得到提升。
缺点:CPU每发出一条I/O指令,只能读/写一个或多个连续的数据块。
通道:一种硬件,可以识别并执行一系列通道指令。
与CPU相比,通道的指令类型单一,没有自己的内存,通道所执行的通道程序是放在主机的内存中的,也就是说通道与CPU共享内存。
四种控制方式总结如下:
整个I/O系统可以视为具有4个层次的系统结构,如下图所示。
I/O核心子系统提供的服务主要有I/O调度、缓冲与高速缓存、设备分配与回收、假脱机、设备保护和差错处理等。
I/O调度就是确定一个好的顺序来执行这些I/O请求。
磁盘高速缓存用来提高磁盘I/O的速度,对高速缓存复制的访问要比原始数据访问更为高效。
磁盘高速缓存逻辑上属于磁盘,物理上则是驻留在内存中的盘块。
高速缓存在内存中分为两种形式:一种是在内存中开辟一个单独的存储空间作为磁盘高速缓存,大小固定;另一种是把未利用地内存空间作为一个缓冲池,供请求分页系统和磁盘I/O时共享。
缓冲区地数据非空时,不能往缓冲区冲入数据,只能从缓冲区把数据传出;当缓冲区为空时,可以往缓冲区冲入数据,但是必须把缓冲区充满时,才能从缓冲区把数据传出。
根据系统设置缓冲器的个数,缓冲技术可以分为如下几种:
单缓存。在设备和处理机之间设置一个缓冲区。
假定从磁盘把一块数据输入缓冲区的时间为T,操作系统将该缓冲区中的数据传送到用户区的时间为M,CPU对这一块数据的处理时间为C。则单缓冲区处理每块数据的用时为max(C,T) + M。
双缓冲。根据单缓冲的特点,CPU在传送时间M内处于空闲状态,由此引入双缓冲。双缓冲机制提高了处理机和双缓冲设备的并行操作程度。
I/O设备数入数据时先装填到缓冲区1,在缓冲区1填满后才开始装填缓冲区2,与此同时处理机可以从缓冲区1中取出数据放入用户进程处理,当缓冲区1 中的数据处理完后,若缓冲区2已填满,则处理及又从缓冲区2取出数据放入用户进程处理,而I/O设备又可以装填缓冲区1。
采用双缓冲策略处理一块数据的用时为max(C + M,T)。
循环缓冲
包含多个大小相等的缓冲区,每个缓冲区中有一个链接指针指向下一个缓冲区,最后一个缓冲区指针指向第一个缓冲区,多个缓冲区构成一个环形。
in指针指向可以输入数据的第一个缓冲区,out指针指向可以提取数据的第一个满缓冲区。
缓冲池
由多个系统公用的缓冲区组成。
高速缓存与缓冲区的对比如下:
设备分配是指根据用户的I/O请求所分配的设备。设备的固有属性可分为三种:独占设备、共享设备和虚拟设备。
对于独占设备,既可以采用动态分配方式,又可以采用静态分配方式,但往往采用静态分配方式,即在作业执行前,将作业所要用的这一类设备分配给它。共享设备可被多个进程所共享,一般采用动态分配方式,但在每个IO 传输的单位时间内只被一个进程所占有,通常采用先请求先分配和优先级高者优先的分配算法。
设备分配的安全性是指设备分配中应防止进程死锁。
为了缓和CPU的高速性和I/O设备的低速性之间的矛盾,引入了脱机输入/输出技术。引入SPOOLing技术提高I/O设备的使用效率。把一个物理设备虚拟成逻辑上的多台设备,将独占设备改造成共享设备。
SPOOLing系统的组成如下图所示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。