IO系统管理
2021-05-07 07:11:55 10 举报
AI智能生成
操作系统之IO
作者其他创作
大纲/内容
IO系统管理
I/O设备的基本概念和分类
什么是I/O设备
将 数据Input/Output(输入/输出)计算机的外部设备
按使用特性分类
存储设备
外存、辅存,用以存储信息的主要设备
I/O设备
输入设备
键盘、鼠标、扫描仪、视频摄像
输出设备
打印机、绘图仪
交互式设备
显示器
网络通信设备
按传输速率分类
低速设备
键盘、鼠标
中速设备
行式打印机、激光打印机
高速设备
磁带机、磁盘机、光盘机
按信息交换的单位分类
块设备(传输块,可寻址)
字符设备(传输慢,不可寻址,常采用中断驱动方式)
I/O系统管理
主要对象
I/O设备相应的设备控制器
最主要的任务
完成用户提出的I/O请求,提高I/O速率,以及提高设备的利用率,并能为更高层的进程方便地使用这些设备提供手段
基本功能
方便用户使用I/O设备
提高CPU和I/O 设备的利用率
为用户在共享设备时提供方便,以保证系统能有条不紊的运行,当系统发生错误时能及时发现错误,甚至于能自动修正错误
1、隐藏物理设备的细节
2、与设备的无关性
3、提高处理机和I/O设备的利用率
1、要求处理机能快速响应用户的I/O请求,使I/O设备尽快地运行起来
2、尽量减少在每个I/O设备运行时处理机的干预时间
4、对I/O设备进行控制
1、采用轮询的可编程I/O方式
2、采用中断的可编程I/O方式
3、直接存储器访问方式
4、I/O通道方式
5、确保对设备的正确共享
6、错误处理
临时性错误
重试操作来纠正
持久性错误
向上层报告
I/O软件层次结构
层级结构
用户层软件
实现与用户交互的接口
设备独立性软件
实现用户程序与设备驱动器的统一接口、设备命令、设备保护以及设备分配与释放
设备驱动程序
与硬件直接相关,负责具体实现系统对设备发出的操作指令
中断处理程序
用于处理中断相关事宜
硬件设备
包括一个机械部件(设备本身)和一个电子部件(控制器)
I/O系统接口
块设备接口
块设备是指数据的存取和传输都是以数据块为单位的设备。如磁盘。属于有结构设备
基本特征
传输速率较高
可寻址,即能指定数据的输入源地址及输出的目标地址,可随机地读/写磁盘中的任一块
隐藏了磁盘的二维结构
将抽象命令映射为低层操作
磁盘设备的I/O常用DMA方式
流设备接口(字符设备接口)
字符设备,是指数据的存取和传输是以字符为单位的设备,如键盘、打印机等。属于无结构设备
传输速率较低
不可寻址
字符设备在输入/输出时,常采用中断驱动方式
大多数流设备属于独占设备,必须采取互斥方式实现共享,为此,流设备接口提供了打开和关闭操作
网络接口
I/O设备与设备控制器
I/O设备一般是由执行I/O操作的机械部分和执行控制I/O的电子部件组成。执行I/O操作的机械部分就是一般的I/O设备,而执行控制I/O的电子部件则成为设备控制器或适配器
设备与控制器之间的接口
数据信号线
双向:设备<->设备控制器
状态信号线
单向:设备->设备控制器
控制信号线
单向:设备控制器->设备
设备控制器
主要功能:控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换
分类
用于控制字符设备的控制器
用于控制块设备的控制器
1、接收和识别命令
控制寄存器、命令译码器和多个寄存器
2、数据交换
数据寄存器
3、标识和报告设备的状态
状态寄存器
4、地址识别
地址译码器
5、数据缓冲区
6、差错控制
组成
1、设备控制器与处理机的接口
2、设备控制器与设备的接口
3、I/O逻辑
实现对设备的控制,处理机利用该逻辑向控制器发送I/O命令
I/O通道
引入
位置:CPU和设备控制器之间
主要目的:使一些原来由CPU处理的I/O任务转由通道来承担,从而把CPU从繁杂的I/O任务中解脱出来
通道
在引入通道后,CPU只需向通道发送一条I/O指令。通道在收到该指令后,便从内存中取出本次要执行的通道程序,然后执行该通道程序,仅当通道完成了规定的I/O任务后,才向CPU发出中断信号
是一种特殊的处理机。它具有执行I/O指令的能力,并通过执行通道(I/O)程序来控制I/O操作
和一般处理机不同
1、指令类型单一,主要局限于与I/O操作有关的指令
2、没有自己的内存,通道与CPU共享内存
字节多路通道
字节交叉工作方式
含有许多非分配型子通道
子通道按时间片轮转方式共享主通道
不适于连接高速设备
数组选择通道
数组方式进行数据传送
只含有一个分配型子通道,可连接多台高速设备
每次只允许一个设备传输数据,利用率低
数组多路选择通道
按数组方式进行数据传送
含有多台非分配型子通道
两者结合:具有较高的传输速率及令人满意的通道利用率
中断机构和中断处理程序
信号的来源:是CPU内部还是CPU外部
中断和陷入
中断
外部设备引起
陷入
CPU内部事件引起
上溢和下溢、程序出错(地址越界、非法指令)、电源故障
中断向量表
存放中断处理程序的入口地址
对多中断源的处理方式
屏蔽(禁止)中断
嵌套中断
1、测定是否有未响应的中断信号
2、保护被中断进程的CPU环境
3、转入相应的中断处理程序
4、中断处理
5、恢复CPU的现场并退出中断
概念
是I/O系统的高层与设备控制器之间的通信程序。
主要任务
接收上层软件发来的抽象I/O要求,再把它转换为具体要求后,发送给设备控制器,启动设备去执行;反之,它也将由设备控制器发来的信号传送给上层软件
功能
1、接收由与设备无关的软件发来的命令和参数,并将命令中的抽象要求转换为与设备相关的低层操作序列
2、检查用户I/O请求的合法性,了解I/O设备的工作状态,传递与I/O设备操作有关的参数,设置设备的工作方式
3、发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作;如果设备忙碌,则将请求者的请求块挂在设备队列上等待
4、及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理
特点
属于低级的系统例程
与一般应用程序及系统程序的区别
1、驱动程序是实现在与设备无关的软件和设备控制器之间通信和转换的程序
2、驱动程序与设备控制器以及I/O设备的硬件特性紧密相关
3、驱动程序与I/O设备所采用的I/O控制方式紧密相关,常用的I/O控制方式是中断驱动和DMA方式
4、由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写
5、驱动程序应允许可重入
驱动程序处理过程
1、将抽象要求转换为具体要求
2、对服务请求进行校验
3、检查设备状态
4、传送必要的参数
5、启动I/O设备
对I/O设备的控制方式
使用轮询的可编程I/O方式
CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中饭,造成了CPU的极大浪费
使用中断的可编程I/O方式
CPU和I/O设备并行操作
以字节为单位进行I/O
直接存储器方式
1、数据传输的基本单位是数据块
2、所传送的数据是从设备直接送入内存的,或者相反
3、仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。
DMA控制器的组成
主机与DMA控制器的接口
DMA控制器与块设备的接口
I/O控制逻辑
寄存器
命令/状态寄存器CR
内存地址寄存器MAR
数据寄存器DR
数据计数器DC
工作过程
I/O通道控制方式
把对一个数据块的读写为单位的干预,减少为对一组数据块的读写及有关控制和管理为单位的干预
实现CPU、通道和I/O设备三者的并行操作
通道是通过执行通道程序并与设备控制器共同实现对I/O设备的控制的
通道指令:操作码、内存地址、计数、通道程序结束位P、记录结束标志R
与设备无关的软件
功能层次
设备驱动程序统一接口
执行所有设备的公有操作
独立于设备的逻辑数据块
差错控制
缓冲管理
缓和CPU和I/O设备之间的矛盾,提高CPU利用率
对独立设备的分配与回收
使用逻辑设备名的好处
1、增加设备分配的灵活性
2、易于实现I/O重定向
假脱机技术/SPOOLing技术
脱机技术
外围控制机+更高速的设备--磁带
作用:缓解设备与CPU的速度矛盾,实现预输入、缓输出
假脱机技术
又叫SPOOLing技术,用软件的方式模拟脱机技术
输入井和输出井--模拟脱机输入/输出时的磁带
输入进程和输出进程--模拟脱机输入/输出时的外围控制机
输入缓冲区和输出缓冲区--内存中的缓冲区,输入、输出时的“中赚站”
共享打印机
用SPOOLing技术将独占式的打印机“虚拟”成共享打印机
1、提高了I/O速度
2、将独占设备改造为共享设备
3、实现了虚拟设备功能
守护进程
凡是需要将独占设备改造为可供多个进程共享的设备时,都要为该设备配置一个守护进程和一个假脱机文件队列(目录)。
守护进程是允许使用该设备的唯一进程,所有其他进程都不能直接使用该设备,只能将对该设备的使用要求写入一份文件中,放在假脱机目录中。
设备的分配与回收
应考虑的因素
固有属性
独占设备、共享设备、虚拟设备(SPOOLing)
分配算法
先来先服务、优先级高者优先、短任务优先等
安全性
安全分配方式、不安全分配方式
分配原则:即要充分发挥设备的利用效率,又要避免造成进程死锁,还要将用户程序和具体设备隔离开
静态分配与动态分配
静态分配:进程运行前为其分配全部所需资源,运行结束后归还资源
主要用于独占设备的分配
不会出现死锁
动态分配:进程运行过程中动态申请设备资源
共享设备
分配的安全性
安全分配方式
每当进程发出I/O请求后便进入阻塞态,世道其I/O操作完成时才被唤醒
优缺点
设备分配安全
CPU和I/O设备是串行工作的(对同一进程而言)
不安全分配方式
进程在发出I/O请求后继续运行,需要时又发出第二个、第三个I/O请求等。仅当进程所请求的设备已被另一进程占用时,才进入阻塞态。
一个进程可同时操作多个设备,从而迅速推进进程;
这种设备分配有可能会产生死锁
设备分配管理中的数据结构
设备控制控制表(DCT)
每个设备对应一张DCT,关键字段:类型/标识符/状态/指向COCT的指针/等待队列指针
控制器控制表(COCT)
每个控制器对应一张COCT,关键字段:状态/指向CHCT的指针/等待队列指针
通道控制表(CHCT)
每个通道对应一张CHCT,关键字段:状态/等待队列指针
系统设备标配(SDT)
记录整个系统中所有设备的情况,每个设备对应一个表目,关键字段:设备类型/标识符/DCT/驱动程序入口
一一对应关系
CHCT与COCT是一对多的关系
设备分配的步骤
步骤
1、根据进程请求的物理设备名查找SDT
2、根据SDT找到DCT并分配设备
3、根据DCT找到COCT并分配控制器
4、根据COCT找到CHCT并分配通道
注:只有设备、控制器、通道三者都分配成功时,这次设备分配才算成功,之后便可启动I/O设备进行数据传送
缺点
用户编程时必须使用“物理设备名:,若换了一个物理设备,则程序无法运行,若进程请求的物理设备正在忙碌,即时系统中还有同类型的设备,进程也必须阻塞等待
设备分配步骤的改进
用户编程时使用逻辑设备名申请设备,操作系统负责实现从逻辑设备名到物理设备名的映射(通过LUT)
逻辑设备表的设置问题
整个系统只有一张LUT:各用户使用的逻辑设备名不允许重复
每个用户一张LUT:各个用户的逻辑设备名允许重复
缓冲区管理
引入原因
1、缓和CPU与I/O设备间速度不匹配的矛盾
2、减少对CPU的中断频率,放宽对CPU中断响应时间的限制
3、解决数据粒度不匹配的问题
4、提高CPU和I/O设备之间的并行性
磁盘高速缓存
1、在内存中开辟一个单独的存储空间作为磁盘高速缓存
2、把未利用的内存空间作为一个缓冲池,供请求分页系统和磁盘I/O分时共享
缓冲区
单缓冲
双缓冲
循环缓冲
缓冲池
缓冲区仅仅是一组内存块的链表,而缓冲池则包含了一个管理的数据结构及一组操作函数的管理机制,用于管理多个缓冲区
工作方式
收容输入
提取输入
收容输出
提取输出
0 条评论
回复 删除
下一页