Skip to content

Latest commit

 

History

History
172 lines (89 loc) · 3.04 KB

IO管理.md

File metadata and controls

172 lines (89 loc) · 3.04 KB

IO管理

从软件角度:

应用程序

应用编程接口

文件管理

I/O设备管理(逻辑I/O(设备分配/回收),设备驱动程序/中断服务程序)

硬件接口

设备控制器(控制寄存器/状态寄存器/数据寄存器)

I/O端口地址:

(1)内存映像编址

​ 不允许高速缓冲

(2)I/O独立编址

设备分类

按数组组织分类:

按用途:存储/传输/人机交互

按资源分配:独占设备/共享设备/虚设备

I/O控制技术

程序控制I/O

忙等

轮询:设备驱动程序轮询状态寄存器

中断驱动方式

不忙等:状态记录在设备记录表中,CPU继续其他操作

设备完成工作:中断

DMA方式

DMA控制器:

CR/DR/DC/MAR

CPU只干预IO开始和结束

后续数据读写无需CPU

适用于高速设备

但每个设备一个DMA控制器

DMA与中断

每个数据完成后中断/成批数据完成后中断

数据传送由CPU控制需要保存和恢复现场/数据传序不需要CPU干预,开始和结束需要

异常事件处理/数据块传输

I/O通道方式

进一步减少CPU干预

专门负责IO处理器,有自己的指令体系---可较为复杂的IO控制

一个通道程序(由操作系统构造)----多组IO

通道种类:字节多路通道、数组选择通道、数组多路通道**

DMA与IO通道

DMA数据传送由CPU控制

通道有自己的指令和程序,具有更强的独立处理能力

一个通道可控制多种设备/DMA寄存器控制一台或少数几台

I/O软件设计

分层设计

设备独立性

逻辑设备/物理设备

设备分配灵活/易于IO重定向

逻辑设备表(LUT)

逻辑设备名/物理设备名/设备驱动程序入口地址

LUT设置:整个系统一张(多用户不好)/每个用户一张

设备驱动程序的组成

自动配置和初始化子程序

IO操作子程序

中断服务子程序

驱动程序的接口:驱动程序初始化函数/卸载/申请设备/释放设备 /I.O操作函数/中断处理函数

缓冲技术

提高外设利用率

基本模型

用户进程		M						T
(工作区)<-------------------缓冲区<------------------I/O设备
处理(C)

单缓冲

I/O设备-->输出(T)缓冲区

用户进程处理(工作区)(C)

缓冲区-->工作区

MAX(C,T)+M

双缓冲

CPU与外设都可以连续处理而无需等待对方

MAX(C,T)

环形缓冲

输入进程不断向空缓冲中输入数据

计算进程从中提取数据

空缓冲区(R)/已装满数据缓冲区(G)/正在使用(C)

Nextg Nexti Current

缓冲池

非专用缓冲

空缓冲/输入缓冲/输出缓冲

提取输入(计算进程)/收容输入(输入进程,提取空缓冲区)/提取输出/收容输出

设备分配

设备控制表(DCT)

控制器控制表(COCT)---DMA

通道控制表(CHCT)---I/O通道

系统设备表(SDT)

SDT(DCT指针/DCT信息)------DCT(COCT指针/设备队列队首指针/设备状态)-----COCT(CHCT)