一.I/O系统
JCB是作业控制表(批处理系统)
I/O 系统的组成:
I/O设备
、设备控制器
、I/O通道*
、总线及相应软件
打印机,磁带是顺序存取,而磁盘是直接存取的存储设备
I/O分为系统设备和用户设备
1.I/O设备
注:键盘显示终端不是存储设备
输入输出设备也叫外设
网卡,音箱也是共享设备
数据传输,低速以字符为基本单位,中速以字符为基本单位,高速设备以块为基本单位
2.设备控制器
(设备控制器可以有多个地址)
设备控制器
(统一编址方式)间接管理设备
是处于CPU与I/O设备
之间的接口
,接收CPU发来的命令,并控制I /O设备工作,是一个可编址设备。
功能:接收和识别命令
、实现数据交换
、了解设备状态
以及识别设备地址
。
设备控制器的
组成
1)设备控制器与处理机的接口
2)设备控制器与设备接口
3)I/O逻辑(状态)
寄存器:
控制
寄存器(存放命令及参数)、数据
寄存器(存放数据)、状态
寄存器(记录设备状态).
三大总线:地址总线,控制总线,数据总线
数据线—磁盘是双向的,控制线是单向的,状态线(最重要的是缺数据状态)
数据寄存器与设备的缓存···
主机与设备也是通过数据寄存器
(中断状态寄存器填值)
3.I/O通道
(专门做输入输出)通道是cpu?
根据信息交换方式的不同,通道可分成以下几种类型:
1)字节多路通道
(大量低速,并行单位字节,轮询)
其工作原理: 数据传送是按
字节交叉
方式工作。
1)有一个主通道。
2)含有多个子通道A、B、C……
3)每子通道通过一控制器与一台中/低速
的I/O设备相连,可同时发行向主通道传数据。
4)各子通道以时间片轮转方式
按字节交叉使用主通道。
优点:可连多台中/低速
设备;能分时并行
操作。
缺点:传输率较低。
2)数组选择通道
(少量高速,独占性,单位数组块)
数据传送是按
成组方式
进行工作,每次传输一批数据。主要用于连接高中速
I/O设备。
1)有一个主通道
2)含有多个子通道A、B、C……
3)每子通道通过一控制器与一台中/高速
的I/O设备相连,在一段时间内只能选择一个子通道程序执行。
优点:可连多台高中速
设备;传输率较高
。
缺点:某子通道不传数据,而使主通道闲置,其它子通道也不能传数据。所以通道的利用率很低
。
3)数组多路通道
(复杂高中低速,轮询,单位数据块)
数据传送仍是按
数组方式
工作。
工作原理(结合两者:并发
+数组
)
1)有一个主通道
2)含有多个子通道A、B、C……
3)每子通道通过一控制器与一台高/中/低速
的I/O设备相连,可同时并发向主通道传数据。
4)各子通道以时间片轮转方式
按数组方式使用主通道。
优点:可连多台高/中/低速
设备;能分时并行
操作,传输率较高
。
注:“瓶颈
”问题(用多通路方式来解决)
4.I/O系统的总线系统
5.I/O系统的结构
cpu和存储器之间有三大总线
二.I/O控制方式
若要调整中断事件的相应顺序可以利用中断屏蔽
(只有第一种没有中断,后三种都是基于中断的)
常用的输入/输出控制方式:
1、程序控制方式
2、中断控制方式
(并行)(中低速设备)
两种中断:
1.外中断-I/O(设备出错,数据传输结束)
2.内中断-cpu
中断类型寄存器-(表)-中断向量表
中断矢量-中断处理程序入口地址
引起中断的事件称为中断源
中断控制方式—一个字节一次中断
通道控制方式—执行完一个通道指令一次中断
1)需数据的进程
向CPU
发出指令启动I/O设备输入数据
。
2)该进程放弃处理机
,等待输入完成。
3)输入完成后,I/O控制器向CPU发出中断请求
,CPU收到后,转向中断服务程序
。中断服务程序将数据输入寄存器中的数据送指定内存单元
,并将原进程唤醒
,继续执行。
4)在以后,该进程再被调度,从内存单元取出数据
进行处理。
优点—CPU利用率大大提高
(可以与I/O设备并行
工作)。
缺点—若中断次数较多
将耗去大量CPU处理时间。
3、直接存储器访问DMA方式
1)需数据的进程
向CPU发出指令
,向DMA控制器
写入数据存放的内存始址
、传送的字节数
,并置中断位和启动位
,启动I/O设备输入数据并允许中断。
2)该进程放弃处理机
等待输入完成,处理机被其它进程占据。
3)DMA控制器(磁盘控制器)采用挪用存储器周期
,将一批数据写入内存中。
4)DMA控制器传送完数据后,向CPU发中断请求
,CPU响应后转向中断服务程序
,唤醒进程
,并返回被中断程序。
5)在以后该进程再被调度,从内存单元取出数据
进行处理。
优点—CPU利用率进一步提高
(并行度有所提高)。
缺点—数据传送方向、字节数、内存地址等需由CPU控制
,且每一设备需一台DMA控制器
,设备增多时,不经济
。
4、通道控制方式
1)需数据的进程
向CPU发出指令
,CPU发启动
指令指明I/O操作、设备号和对应的通道。
2)该进程放弃CPU
等待输入完成,CPU被其它进程占据。
3)通道接收到CPU发来的启动指令后,取出内存中的通道程序
执行,控制设备
将数据传送到内存指定区域
。
4)传送完数据后,通道向CPU发中断请求
,CPU响应后转向中断服务程序
,唤醒进程
,并返回被中断程序
。
5)在以后该进程再被调度,从内存取出数据
进行处理。
优点—一个通道可控制多设备
,所需CPU干预更少
。CPU利用率较高
(并行度
较高)。
缺点:通道价格较高
。
三.缓冲管理
1、提高处理机与I/O设备的
并行
工作的技术:
1)数据传送控制方式
2)缓冲技术
2、操作系统中,引入缓冲的主要原因
1)缓冲CPU与I/O设备间速度不匹配
的矛盾。
2)减少中断CPU的次数
3)提高CPU与I/O设备的并行性
3、缓冲实现方法两种:
1)采用硬件缓冲器
实现
2)用软件缓冲区
来实现(软缓冲用内存)
缓冲就是用来对数据传送
速度不同
的设备的传送速度进行匹配/缓冲的一种常用手段。其实现方法除在关键地方可采用硬件缓冲器外,大都采用软件缓冲
来实现。软件缓冲区是指在I/O操作期间,专门用来临时存放输入/输出数据的一块存储区域。
4、缓冲技术的分类
单缓冲 双缓冲(计算题必考)
循环缓冲 缓冲池
R-空缓冲区
G-满缓冲区
Nexti-当前可放-》自+1当前变为下一个空缓冲区current
Nextg->当前可取-〉自+1下一个满缓冲区current
输入:get-空-收容输入-put(输出从空考试相反的)
计算:get-装满输入-提取输入-put-空-get-空-收容输出-put-装满输出
磁盘上有输入井输出井
四.设备分配
●设备分配中的数据结构
1)设备控制表DCT
(device control table)
2)控制器控制表COCT
(controller control table)
3)通道控制表CHCT
(channel control table)
4)系统设备表SDT
(system device table)
●设备分配的策略/应考虑的因素
1、设备的使用性质/固有属性
(独享
分配 、共享
分配、虚拟
分配)
2、设备分配算法
(先请求先服务
、优先级高者优先
)
3、设备分配的安全性
(防止进程死锁
,考虑互斥共享)
4、设备独立性
:是指用户在编制程序时所用的设备(逻辑
)与实际使用的设备无关 (重定向-LUT表)
● 设备独立性
1)设备独立性概念(设备
无关性
)
为提高OS的可适应性和可扩展性,而将应用程序独立于具体使用的物理设备
。
2)设备独立性的实现
逻辑设备
(应用程序)和物理设备
(执行)
·设备分配时的灵活性
·易于实现I/O重定向
3)设备独立性软件
·执行所有设备的公有操作
·向用户层(文件层)软件提供统一的接口
(也就是三大系统调用)
4)逻辑设备名到物理设备名映射的实现
逻辑设备表LUT
(Logical Unit Table)
5)LUT设置问题
整个系统
设置一张LUT ;每个用户
设一张LUT
6)I/O重定向
(设备独立性)(LUT表)
指用于I/O操作的设备可以更换,即重定向,而不必改变应用程序。
7)所有设备的公有操作
独立设备的分配与回收
;将逻辑设备名映射为物理设备名;对设备进行保护(禁直访);缓冲管理;差错控制。
●设备分配程序
1)基本的设备分配程序
·分配设备
·分配控制器
·分配通道
·问题(“瓶颈”)
··进程以物理设备名来提出I/O请求
··采用的是单通路的I/O系统结构
2)设备分配程序的改进
·增加设备的独立性
(进程以逻辑设备名来提出I/O请求)
·考虑多通路
情况
●SPOOLING技术/联机输入输出方式
(虚拟打印机)-磁盘
脱机输入、输出技术
为了缓和CPU的高速性与I/O设备的低速性间矛盾
而引入,该技术在外围控制机
的控制下实现低速的I/O设备
与高速的磁盘
之间进行数据传送。
使用I/O的三类进程:输入进程,输出进程,计算进程
在多道程序下,用一
程序
来模拟外围控制机
,实现将数据从磁盘传送到低速的输出设备上,从而可在主机的直接控制下,实现脱机输入、输出功能,进而实现外围操作与CPU对数据处理的并行
操作,这种在联机情况下实现的同时外围操作称为SPOOLING技术
,是对脱机输入、输出工作的模拟,是操作系统中采用的一项将独占设备改造成为共享设备的技术。
也就是说进程代替了输入输出外围机
SPOOLING系统的特点
1)提高了I/O速度
2)将独占
设备改造为共享
设备
3)实现了虚拟设备
功能
在操作系统中,引入虚拟设备的原因
引入虚拟设备是为了克服独占设备速度较慢
、降低设备资源利用率的缺点,从而提高设备的利用率
。
虚拟设备
是指通过虚拟技术将一台独占
设备变换为若干台逻辑
设备,供若干个用户进程使用,通常把这种经过虚拟技术处理后的设备称为虚拟设备。
五.设备处理
前面的死锁提到过设备分配
1.设备驱动程序的功能和特点
1)将接收到的抽象要求转换为具体要求。
2)检查用户I/O请求的合法性,I/O设备状态
,传参数
,设设备的工作方式。
3)按处理机的I/O请求去启动指定的设备进行I/O操作
4)及时响应由控制器或通道发来的中断请求,并进行相应处理
5)按I/O请求构成相应通道程序
。
2.设备处理方式
(驱动设备)
1)为每一类设备设置一进程,专门执行其I/O操作。
2)在整个系统中设置一个进程,执行所有的I/O操作。
3)不设置专门的设备处理进程,而为各类设备设置相应的设备驱动程序
。—微内核(服务器进程)
3.设备驱动程序的特点
1)是请求I/O的进程与设备控制器之间的一个通信与转换程序。
2)与I/O设备的特性紧密相关
3)与I/O控制方式紧密相关
4)与硬件紧密相关,因而其中一部分程序必须用汇编语言编写
4.设备驱动程序的的处理过程
1)将接收到的抽象要求转换为具体要求。
2)检查用户I/O请求的合法性
3)读出和检查 I/O设备状态
4)传送必要参数
5)设置设备的工作方式。
6)按处理机的I/O请求去启动指定的设备进行I/O操作。
5.中断处理程序的处理过程
1)唤醒被阻塞的驱动程序进程
2)保护被中断进程的CPU环境
3)分析中断原因、转入相应的设备中断处理程序
4)进行中断处理
5)恢复被中断进程的现场
六.磁盘存储器管理
(大多都是机械磁盘)
提高磁盘I/O速度的主要途径:
(1)选择性能好的磁盘
(2)采用好的磁盘调度算法
(3)设置磁盘高速缓存(Disk Cache)
(4)其它方法
(5)采用高度可靠、快速的容量磁盘系统_____谦价磁盘冗余阵列
1.磁盘性能
1)磁盘性能简述
磁盘结构、磁道、柱面、扇区、磁盘格式化
磁盘物理块的地址: 柱面号 磁头号 扇区号
磁盘类型(固定头磁盘、移动头磁盘)
2)访问时间
寻道时间
(最慢):将磁头从当前位置移到指定磁道所经历时间
旋转延迟时间
:指定扇区移动到磁头下面所经历时间
传输时间
:将扇区上的数据从磁盘读出/向磁盘写入数据所经历的时间。
扫描算法又叫电梯算法
3.设置磁盘高速缓存(Disk Cache)
目前,由于磁盘的I/O速度远低内存的访问速度,而致使磁盘的I/O成为计算机系统的瓶颈。为提高磁盘的I/O速度,便采用
磁盘高速缓存
。
1)磁盘高速缓存的形式
磁盘高速缓存是指内存中的一部分存储空间,用来暂存从磁盘读出的一系列盘块中的信息。所以它是一组在
逻辑
上属于磁盘
,而物理
上是驻留在内存中的盘块
。
磁盘高速缓存的形式
··内存中单独的存储空间(大小固定)
··未利用的存储空间__缓冲池(大小不固定)
2)数据交付方式
是指磁盘高速缓存中的数据传送给请求者进程。系统采取两种方式,将数据交付给请求进程:
数据交付
系统直接将磁盘高速缓存中的数据传送到请求者进程的内存工作区。
指针交付
只将指向磁盘高速缓存中该数据的指针,交付给请求者进程。
3)置换算法
在将磁盘中的盘块读入到磁盘高速缓存中时,若因磁盘高速缓存已满,则采用常用的算法进行置换:
··最近最久未使用算法LRU
··最近未使用算法NRU
··最少使用算法LFU
置换时除算法外还应考虑的问题
··访问频率
(抖动)
··可预见性
(空间局部性)
数据的一致性 ___解决方法将系统中所有盘块数据,拉成一条LRU链,对将会严重影响到数据一致性的数据和很久都可能不再使用的盘块数据, 放在LRU头部,到时优先写回磁盘。
4)周期性地写回磁盘
系统中所有盘块数据,拉成一条LRU链,对将会严重影响到数据一致性的数据和很久都可能不再使用的盘块数据, 放在LRU头部,到时才优先写回磁盘。若经常访问的数据将一直保留磁盘高速缓存中,长期不会被写回磁盘,若系统出故障,则存在磁盘高速缓存中的数据将丢失。
问题解决
·周期性地
将磁盘高速缓存中的数据写回磁盘。
·磁盘高速缓存中的数据若修改,则立即写回磁盘。
4.提高磁盘I/O速度的其它方法
1)提前读(Read_Ahead)
由于用户对文件的访问常用顺序方式,在读当前块时,可预知下一次要读的盘块,所以,可采用预先读方式,即在读当前块的同时,连同将下一块提前读入缓冲。当访问下一块数据时,其已在缓冲中,而不需去启动磁盘I/O。
2)延迟写
在缓存中的数据,本应立即写回磁盘,考虑不久之后可能会再用,故不立即写回磁盘。
3)优化物理块的分布
(对换区)
使磁头移动的距离最小(优化物理块的分布、优化索引结点的分布)。
4)虚拟盘
利用内存去访真磁盘,又称为RAM盘
。(与磁盘高速缓存的区别:RAM盘中的内容由用户控制,而缓存中的内容则由OS控制)
5.谦价磁盘冗余阵列(RAID)
(基于字节交叉)
是1987年由美国加利福尼来大学伯莱分校提出的,1988年问世,即利用一台磁盘陈列控制器,来统一管理和控制一组磁盘驱动器,组成一个高度可靠的、快速的
大容量磁盘系统
。
1)并行交叉存取
为提高磁盘的访问速度而在大、中型机中采用的交叉存取技术,即在一个配置多台磁盘驱动器的系统中,如P201页图5-29所示。
系统将每一盘块的数据分成若干个子盘块数据,再把每一个子盘块的数据分别存储到各个不同磁盘中的相同位置上
,在以后,当要将一个盘块的数据传送到内存时,采取并行传输方式,将该盘块中的各个子盘块数据同时向内存传输,从而使传输时间大大减少。
2)RAID的分级
RAID 0级
本级仅提供了并行存取技术,无冗余校验功能,至使磁盘系统的可靠性不好,故较少使用。
RAID 1级
本级具有磁盘锁像功能,即每次访问磁盘时,采用并行技术将数据同时主盘(数据盘)和磁盘镜像盘中。磁盘系统的可靠性好,但磁盘利用率不高。
RAID 3级
本级采用并行存取技术,增加了冗余校验功能,即用一个盘作校验盘,常用科学计算和图像处理。
RAID 5级
本级具有独立传送功能,各磁盘驱动器可独立读、写,校验信息在所有盘上,常用于I/O较频繁的事务处理中。
RAID 6级
本级设置了一个专用的、可快速访问的异步校验盘,该盘具有独立的数据访问通路。
RAID 7级
本级是对RAID 6级的改进,所有磁盘均具有较高的传输速率和优异的性能,是目前最高档次的磁盘阵列 。
3)RAID的优点
可靠性高
是RAID 的最大优点(除RAID 0 级外)
磁盘I/O速度高
由于RAID 可采用并行交叉存取方式,故提高了磁盘I/O速度。
性能/价格比高
用RAID技术实现大容量存储器时,与大型磁盘系统相比,其体积和价格只是它的1/3,且可靠性高。