I/O管理的功能 :
监视设备的状态
进行设备分配
完成I/O操作
缓冲管理
I/O硬件组成:
单总线
传统三级总线
采用南北桥的多级总线(PCI总线、E/ISA总线)
采用I/O通道的多级总线
设备的类型:
设备管理划分
块设备(存储设备)
字符设备
网络设备
交互功能划分
人机交互设备
存储设备
机机通信设备
信息传递方向划分
输入设备
输出设备
输入输出设备
共享特征划分
独享设备
共享设备
设备之间的差异
(1)数据速率。
(2)数据传输单位。
(3)管理程序。文件管理、存储管理、虚拟存储管理
(4)控制的复杂度。
(5)数据编码。
(6)出错条件。
设备控制器分为两类:
一类用于控制字符设备控制器,另一类控制块设备控制器。
设备控制器的功能
1)接收和识别CPU发来的命令——控制寄存器
2)数据交换(CPU-控制器,控制器-设备)——数据寄存器
3)了解设备的状态(就绪否),报告给CPU——状态寄存器
4)地址识别——地址译码器
5)数据缓冲区(IO/设备和CPU速率不匹配)
6)差错控制(若数据有误,报告CPU,CPU要求重传)
设备控制器的组成
(1)控制器与CPU之间接口——用于控制设备与总线之间交换数据。
数据寄存器:用于存放CPU与设备间的数据
控制/状态寄存器:用于存放从CPU送来的控制信息或设备 状态信息。
(2)控制器与设备之间接口——用于根据CPU发来的地址信号,去选择一个设备接口。
(3)I/O逻辑——用于实现对设备的控制。由I/O逻辑对收到的地址进行译码,在根据译出的命令对所选设 备进行控制。
设备通道
当外设很多时,CPU 负担过重,为此在CPU与控制器之间增加通道。
通道是特殊的处理机,与处理机区别:
通道的类型:
字节多路通道(按时间片轮询,共享主通道)
数组选择通道
数组多路通道
通道的连接方式:
单通路I/O(容易引起瓶颈)
多通路
I/O数据控制方式的发展经历了四个阶段 :
磁盘控制器DMA
命令寄存器CR
内存地址寄存器MAR
数据寄存器DC
CAW----通道程序的内存起始地址
CCW----通道程序指令寄存器
CSW----存放通道程序结果的寄存器
通道指令
格式:操作码 计数 内存地址 通道程序结束位P 记录结束位R
设备管理层次:I/O硬件、I/O软件
I/O硬件 :
I/O设备、以及接口线路、控制器、通道
I/O软件:
1)用户空间I/O软件(用户态)
2)系统I/O软件(核心态) :设备独立性软件 、设备驱动软件、中断处理程序
设备独立性又称设备无关性。
设备独立性的优点 :
设备的固有属性:
独享设备、共享设备、虚拟设备
Spooling(假脱机)技术是虚拟技术和虚拟分配的实现
Spooling组成
Spooling特点
设备分配
系统设备表(SDT)系统设置一张系统设备表,记录了系统中全部设备的情况,每个设备对应一个表目。
设备控制表(DCT)系统为每个设备配置一张DCT,用于记录本设备情况。
控制器控制表(COCT)每个设备控制器都会对应一张COCT。操作系统会根据COCT的信息对控制器进行操作管理,每个控制器可以控制多个设备。
通道控制表(CHCT)每个通道都会对应一张CHCT。操作系统会根据CHCT的信息对通道进行操作管理,每个通道可以控制多个控制器。
设备驱动程序的特点
I/O中断是由外部设备引起,故又称外中断。
由CPU内部时间所引起的中断,称为陷入或者内中断。
中断优先级:
用户级线程中断优先级0,核心机线程中断优先级为1
硬中断优先级为3-31,软中断优先级为1-2。
硬中断由硬件产生相应的中断请求,软中断响应不及时。
对多中断源的处理方式 :屏蔽中断、嵌套中断
INTR寄存器 :有中断为1 没有中断为0
程序状态字PSW是8位寄存器,用于存放程序运行的状态信息。
程序计数器PC用来存放下一条指令的地址的。
访管中断:进程开始输入输出,进行系统调用时执行
I/O中断:进程输入输出结束,打断另一个进程运行时执行
磁盘类型:固定头磁盘、移动头磁盘
磁盘访问:寻道、旋转延迟、传输数据
一次磁盘访问时间T=Ts寻道时间+Tr旋转延迟时间+Tt传输时间=s磁盘启动时间+m平均跨越一道的时间×n跨越的道数+1/2r旋转速度+b要传送的字节数/r旋转速度N一个磁道中的字节数
磁盘访问:顺序访问、随机访问
提高磁盘I/O速度:
磁盘调度算法:
先来先服务FCFS:按磁盘访问请求到来的先后顺序进行服务
最短寻道优先SSTF:从当前磁头位置选择最短寻道时间的请求,即选择与当前磁头位置最近的待处理请求
扫描算法SCAN(电梯调度):沿磁臂当前移动方向由近及远依次满足磁盘访问请求,至当前方向再无请求时磁臂转向,继续由近及远依次满访问请求
循环扫描算法C-SCAN:SCAN调度的变种,在一个移动方向上,随着移动不断处理请求。反向时空挡放回,直到最远请求,然后转向移动时再处理请求。
N-STEP-SCAN算法:将磁盘请求队列分成若干个长度为N的子队列,用FCFS依此处理这些子队列。在每个队列中用SCAN。
FSCAN算法:简单化为二个队列: 一个队列为:当前请求磁盘I/O的进程形成的队列。由SCAN处理。另一个队列为:新出现的请求磁盘I/O的进程形成的队列,这样一来,新的请求下次扫描时再处理。
平均寻道长度=n磁臂跨越道数/r磁盘访问次数
缓冲的定义:
缓冲是在通信问题中,为了使通信双方的速度匹配而引入的一个中间层次,这个层次的速度比通信双方中较慢的一方快,而与较快的一方更匹配 。
缓冲类型 :
缓冲管理处理一个数据块所用时间:
无缓冲时:T=t输入+t计算
单缓冲时:T=max(t计算,t输入)+t传输
双缓冲时:T=max(t传输+t计算,t输入)
循环缓冲区:用于两者速度相差甚远
以上的缓冲只能用于某一进程,他们属于专用缓冲。为了提高缓冲区的利用率,可采用公用缓冲池。
四种工作缓冲区:
用于收容输入数据的工作缓冲区hin :输入进程输入数据
用于提取输入数据的工作缓冲区sin :计算进程输入数据
用于收容输出数据的工作缓冲区hout :计算进程输出数据
用于提取输出数据的工作缓冲区sout:输出进程输出数据
高速缓存
形式:一种是在内存开辟独立存储空间作为磁速缓存,大小固定;一种是吧未利用内存空间作为一个缓冲池。
数据交付:将高速缓存中的数据传送到请求进程的内存工作区。
指针交付:只将指向高速缓存中某区域的指针交付给请求者进程。
置换算法需要考虑:最近最久未使用、访问频率、可预见性、数据一致性
提高磁盘I/O其他方法:预先读、延迟写、虚拟盘