第5章 设备管理.docx
- 文档编号:24436086
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:36
- 大小:713.02KB
第5章 设备管理.docx
《第5章 设备管理.docx》由会员分享,可在线阅读,更多相关《第5章 设备管理.docx(36页珍藏版)》请在冰豆网上搜索。
第5章设备管理
第5章设备管理
第一节I/O系统
1I/O系统
1.1一些概念
●什么是I/O系统?
用于实现数据输入、输出及数据存储的系统。
●计算机的I/O系统都有什么设备?
必有的I/O设备。
及其相应的设备控制器和高速总线。
在有的大、中型计算机系统中,还配置了I/O通道和I/O处理机。
总结,我们在I/O系统中,主要了解I/O设备、设备控制器、I/O通道、总线系统。
1.2I/O设备
1.2.1I/O设备类型
1.按设备的使用特性分类
(1)存储设备
(2)I/O设备
存储设备:
也称为外存或后备存储器,是计算机系统用于存储信息的主要设备。
I/O设备:
就是用于计算机和外界进行信息的输入和输出的设备。
。
2.按信息交换的单位分类
(1)字符设备
(2)块设备
块设备:
信息交换的基本单位为字符块,属于有结构设备,块大小一般为512B---4KB,典型的有:
磁盘、磁带等。
字符设备:
信息交换的基本单位为字符,典型的有:
键盘、打印机和显示器等
3.按设备的共享属性分类
(1)独占设备
(2)共享设备(3)虚拟设备
独享/独占设备:
在一段时间只允许一个用户进程访问的设备。
多数低速设备属此类,打印机就典型的独享设备。
共享设备:
在一段时间只允许多个用户进程同时访问的设备。
磁盘就典型的共享设备。
虚拟设备:
指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户进程同时使用,通常把这种经过虚拟技术处理后的设备称为虚拟设备。
4.按设备的传输速率分类
(1)低速设备
(2)中速设备(3)高速设备
低速设备:
传输速率仅为每秒钟几个字节至数百个字节的设备。
典型的有:
键盘、鼠标、语音的输入/输出等。
中速设备:
传输速率仅为每秒钟数千个字节至数数万个字节的设备。
有:
打印机等。
高速设备:
传输速率仅为每秒钟数百千个字节至数十兆字节的设备。
典型的有:
磁盘机、磁带机、光盘机等。
1.2.2设备与控制器之间的接口
设备和控制器之间的接口是什么?
设备不是直接和CPU进行通信,而是和设备控制器通信。
因此在I/O设备中应该含有和设备控制器的接口。
这个接口中有三类信号,分别对应下面的三种信号线。
该接口中存在的三种信号
三种信号线:
数据信号线、控制信号线、状态信号线。
(1)数据信号:
双向,有缓存。
在设备和设备控制器之间传送数据信号。
(2)控制信号:
控制器发给设备;要求其完成相关操作。
传送控制信号。
(3)状态信号:
设备发给控制器,传送指示设备当前状态信号。
如:
正在读/写。
1.3设备控制器
1.3.1概念及其作用
概念:
是处于CPU与I/O设备之间的接口,接收CPU发来的命令,并控制I/O设备工作,是一个可编址设备。
作用:
职责是控制一个或多个I/O设备,实现I/O设备和CPU的数据交换。
使处理机从繁重的设备控制事务中解脱出来。
1.3.2设备控制器基本功能看课本P162
1接收和识别命令
2数据交换
3标识和报告设备的状态
4地址识别
5数据缓冲
6差错控制
1.3.3设备控制器组成
1.设备控制器与处理机的接口
该接口用于实现CPU与设备控制器之间的通信。
共有三类信号线:
数据线、地址线和控制线。
2.设备控制器与设备的接口
在控制器中有一个或多个设备接口,一个接口连接一个设备。
在每个接口中都存在数据、控制和状态三种类型的信号。
3.I/O逻辑
用于实现对设备的控制。
I/O逻辑对来自CPU的命令和地址进行译码,之后根据所译出的命令对所选的设备进行控制。
设备控制器组成如下图:
1.4I/O通道
1.4.1引入
1为什么引入I/O通道?
尽管有了设备控制器,已能大大减少CPU对I/O的干预,但当主机的外设很多时,CPU的负担仍然很重。
为此又在CPU和设备控制器之间增设了通道。
其主要目的是为了建立独立的I/O操作,去解放CPU。
在设置通道后,CPU只需向通道发送一条I/O指令。
通道完成任务后向CPU发中断信号。
2通道到底是什么?
也就是通道的概念
I/O通道是一种特殊的处理机。
与一般处理机不同于两方面:
◆指令类型只限于I/O操作;
◆通道没有内存,它与CPU共享内存。
硬件连接如下图:
1.4.2通道类型
1字节多路通道(ByteMultiplexorChannel)
各子通道以时间片轮转方式共享通道,以字节方式传送数据。
适用于低、中速设备。
1)有一个主通道。
2)含有多个子通道A、B、C……
3)每子通道通过一控制器与一台中/低速的I/O设备相连,可同时并行向主通道传数据。
4)各子通道以时间片轮转方式按字节交叉使用主通道。
2数组选择通道(BlockSelectorChannel)
数据传送是按成组方式进行工作,每次传输一批数据,但只含有一个分配型通道。
主要用于连接高速I/O设备。
■某时间由某设备独占,适于高速设备。
■但通道未共享,利用率低。
■按数组方式进行数据传递。
3数组多路通道(BlockMultiplexorChannel)
数据传送仍是按数组方式工作。
工作原理(结合两者:
并行+数组)
1)有一个主通道
2)含有多个子通道A、B、C……
3)每子通道通过一控制器与一台高/中速的I/O设备相连,可同时并行向主通道传数据。
4)各子通道以时间片轮转方式按数组方式使用主通道。
优点:
可连多台高/中速设备;能分时并行操作,传输率较高。
1.3.3瓶颈问题
1问题提出
由于通道价格昂贵,因此机器中所设置的通道数量少,这往往使得它又成为I/O的瓶颈。
例:
如下图
2解决方案
增加设备到主机间的通路而不增加通道。
如下图
1.4总线类型
总线型系统结构
见课本p166图5-6
总线类型:
PC/AT总线:
总线宽度16位,寻址能力16MB;
PC总线与AT总线后来经过标准化,称为ISA总线IndustryStandardArchitecture——工业标准体系结构
ISA总线Pentium机使用该总线与低速1/O设备连接。
EISA总线针对386、486,总线宽度32位,寻址能力4GB
VESA总线针对486,VideoElectronicStandardAssociation——视频电子标准协会。
VESA总线也称为VL-bus(VESALocalBus)总线时钟频率33MHz,总线宽度32位,寻址能力4GB
PCI总钱PCI:
PeripheralComponent——外部设备互连,针对Pentium以上处理器,用于连接高速的1/O设备模块,如图形显示器适配器、网络接口控制器、硬盘控制器等。
第二节I/O控制方式与缓冲管理
1I/O控制方式
1.1程序I/O方式
程序I/O方式也称作程序查询方式或轮询方式。
1.1.1工作过程:
处理机对I/O的控制采用程序直接控制方式。
即在处理机向控制器发送一条I/O指令启动输入设备输入数据时,要同时把状态寄存器中的忙/闲标志置为1。
然后便不断测试标志。
当为1时,表示输入机尚未输完一个字,处理机应继续对该标志测试,直到它为0,表明数据已输入到控制器的数据寄存器中。
于是处理机将数据取出送入内存单元,便完成了一个字的I/O。
过程原理如下图:
详细的流程在课本p167
1.1特点
控制简单,但CPU的利用率低(串行),出现忙等待(循环等待设备的I/O操作)--即轮询(Polling)问题。
1.2中断驱动I/O控制方式
1)需要数据的进程向CPU发出指令启动I/O设备输入数据。
2)该进程放弃处理机,等待输入完成。
CPU执行其他任务。
.
3)输入完成后,I/O控制器向CPU发出中断请求,CPU收到后,转向中断服务程序。
中断服务程序将数据输入寄存器中的数据送到指定的内存单元,并将原进程唤醒,继续执行。
4)之后,该进程再被调度,从内存单元取出数据进行处理。
优点—CPU利用率大大提高(可以与I/O设备并行工作)。
缺点---若中断次数较多将耗去大量CPU处理时间。
1.3直接存储器访问方式DMA
1.3.1引入
1.3.1.1思想
是在外围设备和内存之间直接进行数据交换。
1.3.1.2引入
由于中断I/O以字(字节)为单位I/O的,每“字节”传送产生一次中断。
DMA方式由DMA控制器直接控制总线传递数据块。
以数据块为基本单位传送,只有在数据块(一个或多个)传送结束后,CPU才干预,数据块的传输是在DMA控制器下完成从I/O——内存的传送。
1.3.2特点
由前面就可以看出:
1数据传送单位是数据块
2数据传送是在设备和内存之间直接进行的
3仅在数据块传送完毕时,CPU才干预。
传送在DMA控制器下完成。
1.3.3DMA控制器组成了解
三部分组成:
主机与DMA控制器接口,DMA控制器与块设备的接口;I/O控制逻辑。
图见课本p169
DMA控制器中的一组寄存器:
1.命令/状态寄存器CR。
用于接收从CPU发来的I/O命令或有关控制和状态信息。
2.内存地址寄存器MAR。
它存放把数据从设备传送到内存的起始的目标地址或内存原地址。
3.数据寄存器DR。
用于暂存设备到内存或从内存到设备的数据。
4.数据计数器DC。
存放本次CPU要读或写的字(节)数。
1.3.4DMA工作过程
过程:
1)需数据的进程向CPU发出指令,CPU向DMA控制器写入数据存放的内存始址、传送的字节数,并置中断位和启动位,启动I/O设备输入数据并允许中断。
2)该进程放弃处理机等待输入完成,处理机被其它进程占据。
3)DMA控制器采用挪用CPU周期,将一批数据写入内存中。
4)DMA控制器传送完数据后,向CPU发中断请求,CPU响应后转向中断服务程序进行善后处理,唤醒进程,并返回被中断程序。
5)在以后该进程再被调度,从内存单元取出数据进行处理。
优点—CPU利用率进一步提高(并行度有所提高)。
缺点—数据传送方向、字节数、内存地址等需由CPU控制,且每一设备需一台DMA控制器,设备增多时,不经济。
1.4I/O通道控制方式
1)需数据的进程向CPU发出指令,CPU发启动指令指明I/O操作、设备号和对应的通道。
2)该进程放弃CPU等待输入完成,CPU被其它进程占据。
3)通道接收到CPU发来的启动指令后,取出内存中的通道程序执行,控制设备将数据传送到内存指定区域。
4)传送完数据后,通道向CPU发中断请求,CPU响应后转向中断服务程序,唤醒进程,并返回被中断程序。
5)在以后该进程再被调度,从内存取出数据进行处理。
优点:
一个通道可控制多设备,所需CPU干预更少。
CPU利用率较高(并行度较高)。
缺点:
通道价格较高。
2缓冲管理
2.1引入缓冲区的主要原因归结为以下几点:
1.缓和CPU与I/O设备间速度不匹配的矛盾。
2.减少对CPU的中断频率,放宽对CPU中断响应时间的限制。
3.提高CPU和I/O设备之间的并行性。
2.2缓冲的概念和分类
缓冲就是用来对数据传送速度不同的设备的传送速度进行匹配/缓冲的一种常用手段。
其实现方法除在关键地方可采用硬件缓冲器外,大都采用软件缓冲来实现。
软件缓冲区是指在I/O操作期间,专门用来临时存放输入/输出数据的一块存储区域。
缓冲技术的分类:
单缓冲;双缓冲;循环缓冲;缓冲池
2.2.1单缓冲
原理:
在设备和处理机之间设置一个缓冲区。
设备与处理机交换数据时,先把交换的数据写入缓冲区,然后需要数据的设备/处理机再从缓冲区中取走数据。
特点:
缓冲区数只有一个;设备与处理机对缓冲区的操作是串行的。
也就是一个缓冲区,CPU和外设轮流使用,一方处理完之后接着等待对方处理。
一块数据的处理时间:
在某系统中,从磁盘将一块数据输入到缓冲区需要花费的时间T,CPU对一块数据进行处理的时间为C,将缓冲区的数据传送到用户进程所花时间为M,那么在单缓冲情况下,系统处理大量数据时,一块数据的处理时间为多少?
由于C和T可并行,M和C或M和T不能并行,因此处理一块数据时间:
Max(C,T)+M
2.2.2双缓冲
原理:
在设备和处理机之间设置2个缓冲。
设备与处理机交换数据时,先把交换的数据写入缓冲区,然后需要数据的设备/处理机再从缓冲区中取走数据。
因缓冲区有2个,提高了设备与处理机并行操作的程度,只有当两个均为空时,需数据的进程才等待。
特点:
缓冲区数有2个;设备与处理机对缓冲区的操作可并行,提高了设备与处理机并行操作的程度。
也就是两个缓冲区,CPU和外设都可以连续处理而无需等待对方。
但要求CPU和外设的速度相近。
一块数据的处理时间:
在某系统中,从磁盘将一块数据输入到缓冲区需要花费的时间T,CPU对一块数据进行处理的时间为C,将缓冲区的数据传送到用户区所花时间为M,那么在双缓冲情况下,系统处理大量数据时,一块数据的处理时间为多少?
当C>T:
C+M即MAX(C,T)+M
当C MAX(C,T) 2.2.3循环缓冲 循环缓冲的构成: 在设备和处理机之间设置多个大小相等的缓冲区,这些缓冲区构成环形,每一个缓冲区中含一指针指向下一个缓冲区,最后一个指向第一个缓冲区,同时还含有2个用于输入/输出的指针IN和OUT。 特点: 缓冲区数有多个;设备与处理机对缓冲区的操作可并行,进一步提高了设备与处理机并行操作的程度。 循环缓冲区的使用: ▪G: 满缓冲区;R: 空缓冲区;C: 当前正在使用缓冲区。 ▪nextg: 指示下一个应取数据的buf ▪nexti: 指示下一个空buf. ▪Current: 指示正在使用的缓冲区C的指针 ▪Getbuf过程: Ø取nextg对应缓冲区提供使用,标志为C,Nextg=(Nextg+1)ModN Ø将Nexti对应缓冲区提供使用,标志为C,Nexti=(Nexti+1)ModN ▪Releasebuf过程: Ø若C满,则改为G; Ø若C空,则改为R; 进程同步: 使用输入循环缓冲,可使输入进程和计算进程并行执行。 相应的两个指针不断顺时针方向移动,这样就可能出现两种情况: 1.Nexti赶上Nextg。 意味着输入速度大于计算速度,缓冲区满,此情况称为系统受计算限制。 输入进程阻塞 2.Nextg赶上Nexti。 意味着输入速度低于计算速度,缓冲区空,此情况称为系统受I/O限制。 计算进程阻塞 2.2.4缓冲池 1、缓冲池: 将系统内所有的缓冲区统一管理起来,就形成了能用于输入/输出的缓冲池。 缓冲池通常由若干大小相同的缓冲区组成,是系统的公用资源,任何进程都可以申请使用缓冲池中的各个缓冲区。 2、缓冲池的组成(数据结构) 三个队列: 空缓冲队列emq、装满输入数据队列inq、装满输出数据队列outq 四个工作缓冲区: 收容输入缓冲区hin、提取输入sin,收容输出hout、提取输出缓冲区sout。 3、getbuf过程和putbuf过程 ProcedureGetbuf(type) begin wait(rs(type)); wait(ms(type)); B(number): =Takebuf(type); signal(ms(type); end Procedureputbuf(type) begin wait(ms(type)); Addbuf(type,number); signal(ms(type); signal(rs(type); end 4缓冲区的工作方式 四种工作方式: 1.收容输入;2.提取输入3.收容输出;4.提取输出 1.hin=getbuf(emq);putbuf(inq,hin) 2.sin=getbuf(inq);计算;putbuf(emq,sin) 3.hout=getbuf(emq);putbuf(outq,hout) 4.sout=getbuf(outq);输出;putbuf(emq,sout) 说明: 输入进程需要输入数据时: 输入设备->收容输入缓冲区-Getbuf(emq) 1)从空缓冲队列的队首取一空缓冲区用作收容输入缓冲区 2)输入设备将数据输入收容输入缓冲区并装满 3)将此缓冲区挂到装满输入数据队列队尾。 计算进程需要输入数据时: 提取输入缓冲区—>CPU-Getbuf(inq) 1)从装满输入数据队列队首取一满缓冲区用作提取输入缓冲区 2)CPU从提取输入缓冲区中取出数据至用完 3)将空缓冲区挂到空缓冲队列队尾。 计算进程需要输出数据时: CPU—> 收容输出缓冲区-getbuf(emq) 1)从空缓冲队列队首取一空缓冲区用作收容输出缓冲区 2)CPU将数据输入其中并装满 3)将收容输出缓冲区挂到装满输出数据队列队尾。 输出进程需要输出数据时: 提取输出缓冲区—>输出设备-getbuf(outq) 1)从装满输出数据队列队首取一满缓冲区用作提取输出缓冲区 2)输出设备从中取出数据至用完 3)将空缓冲区挂到空缓冲队列队尾 第三节设备分配 1设备分配中的数据结构 引言 在设备分配时,需要的数据结构(表格)为: 设备控制表DCT(devicecontroltable) 控制器控制表COCT(controllercontroltable) 通道控制表CHCT(channelcontroltable) 系统设备表SDT(systemdevicetable) 1.1设备控制表DCT 系统为每一设备都配置了一张设备控制表,用于记录本设备的情况。 如图所示。 1.2控制器控制表、通道控制表和系统设备表 控制器控制表COCT。 如下图: 通道控制表CHCT 系统设备表SDT 2设备分配时考虑的因素 考虑的因素有: 设备的固有属性,设备分配算法,设备分配中的安全性,设备独立性 2.1设备固有属性 ▪在分配设备时,首先应考虑与设备分配有关的设备属性。 设备的固有属性可分为三种: 独占性、共享性和虚拟性设备。 ▪独占设备在一段时间内只能由一个进程使用。 共享设备允许多个进程共享。 虚拟设备是经过某种处理由独占设备变为虚拟设备。 2.2设备分配算法 与进程调度类似,一般使用以下两种: 1.先来先服务。 根据请求的先后次序排成一个队列,设备总是分配给队首进程。 2.优先级高者优先。 利用该算法形成队列时,将优先权高的进程安排在设备队列前面,优先级相同的先来先服务。 2.3设备分配中的安全性 从进程运行的安全性上考虑,设备分配有以下两种方式。 1.安全分配方式。 每当进程发出I/O请求后便阻塞,直到I/O完成后被唤醒。 虽安全但缓慢。 2.不安全分配方式。 不断发出I/O请求,直到所请求的设备已经被另一进程占用才阻塞。 虽迅速但不安全。 2.4设备独立性 2.4.1设备独立性概念 概念: 也叫设备无关性。 指应用程序独立于具体使用的物理设备。 物理设备和逻辑设备: 应用程序中,使用逻辑设备名称来请求使用某类设备;系统实际执行时,必须使用物理设备名称。 2.4.2设备独立性软件 是在驱动程序之上的一层软件,称为设备独立性软件。 主要功能如下: ⏹执行所有设备的公有操作 ⏹向用户层(文件层)软件提供统一的接口 2.4.3逻辑设备名到物理设备名映射的实现 1逻辑设备表LUT(LogicalUnitTable) 逻辑设备名 物理设备名 驱动程序入口地址 /dev/tty 2 1024 /dev/printer 5 2046 .. 2.LUT的设置问题 逻辑设备表设置有两个方式: 1)整个系统设置一张LUT。 2)为每个用户设置一张LUT。 如下图。 逻辑设备名 系统设备表指针 /dev/tty 2 /dev/printer 5 .. 3独占设备的分配程序 3.1基本的设备分配程序 分配步骤: 分配设备,分配控制器,分配通道。 问题 1进程以物理设备名来提出I/O请求 2采用的是单通路的I/O系统结构,容易产生“瓶颈”。 3.2设备分配程序的改进 为了解决上面的问题。 对设备分配程序进行如下两点改进: 1增加设备的独立性(进程以逻辑设备名来提出I/O请求) 2考虑多通路情况 分配设备流程图: 分配控制器流程图: 分配通道流程图: 4spooling技术 引言: 利用假脱机技术(SPOOLing,SimultaneousPeripheralOperationOnLine,也称为虚拟设备技术)可把独享设备转变成具有共享特征的虚拟设备,从而提高设备利用率。 也就是在多道程序系统中,专门利用一道程序(SPOOLing程序)来完成对设备的I/O操作。 无需使用外围I/O处理机。 4.1什么是spooling技术? 在多道程序下,用一道程序SPOOLing程序来模拟外围控制机,实现将数据从磁盘传送到低速的输出设备上,从而可在主机的直接控制下,实现脱机输入、输出功能,进而实现外围操作与CPU对数据处理的并行操作,这种在联机情况下实现的同时外围操作称为SPOOLING技术,是对脱机输入、输出工作的模拟,是操作系统中采用的一项将独占设备改造成为共享设备的技术。 4.2spooling系统的组成 主要有三大部分 1.输入井和输出井。 是磁盘上开辟的两个大存储空间。 输入井模拟脱机输入的磁盘设备,输出井模拟脱机输出时的磁盘。 2.输入缓冲区和输出缓冲区。 输入缓冲区暂存由输入设备送来的数据,后送输入井;输出缓冲区暂存从输出井送来的数据,后送输出设备。 3.输入进程和输出进程。 利用两个进程模拟脱机I/O时的外围处理机。 4.3共享打印机 打印机属于独占设备,利用SPOOLing技术可将其改造为一台可供多个用户共享的设备。 4.4SPOOLing系统的特点 1提高了I/O的速度。 利用输入输出井模拟脱机输入输出,缓和了CPU和I/O设备速度不匹配的矛盾。 2将独占设备改造为共享设备。 并没有为进程分配设备,而是为进程分配一存储区和建立一张I/O请求表。 3实现了虚拟设备功能。 多个进程同时使用一台独占设备。 第四节设备处理 1什么是设备处理程序? 1概念: 设备处理程序又称为设备驱动程序。 它是I/O进程与设备控制器之间的通信程序。 常以进程形式存在,因此也称之为设备驱动进程。 2主要任务: 在上层软件和设备控制器之间进行信息传递。 2设备驱动程序的功能和特点 2.1功能: 下列 1将接收到的抽象要求转换为具体要求。 2检查用户I/O请求的合法性,I/O设备状态,传参数,设设备的工作方式。 3按处理机的I/O请求去启动指定的设备进行I/O操作 4及时响应由控制器或通道发来的中断请求,并进行相应处理 5按I/O请求构成相应通道程序。 对于有通道的计算机系统 2.2设备处理方式 三种: 1为每一类设备设置一进程,专门执行该类设备的I/O操作。 2在整个系统中设置一个进程,执行所有设备的I/O操作。 3不设置专门的设备处理进程,而为各类设备设置相应的设备驱动程序,供用户进程或系统进程调用。 2.3设备驱动
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 设备管理