第7章:设备管理吕鸣松(讲师)东北大学信息科学与工程学院lvmingsong@ise.neu.edu.cn《操作系统原理》2013年春季课程NortheasternUniversity主要内容•I/O管理基本知识•I/O控制方式•缓冲技术•设备分配与回收•磁盘存储器的管理•RAID技术《操作系统原理》——东北大学第7章设备管理2主要内容•I/O管理基本知识•I/O控制方式•缓冲技术•设备分配与回收•磁盘存储器的管理•RAID技术《操作系统原理》——东北大学第7章设备管理3外设的分类•按交互对象分类–人机交互设备:如显示器、打印机、键盘、鼠标–与其它电子设备交互的设备:磁盘、磁带、传感器、控制器–计算机之间的通信设备:网卡、调制解调器•按交互方向分类–输入设备:键盘、鼠标、扫描仪–输出设备:显示器、打印机–输入/输出设备:磁盘、网卡《操作系统原理》——东北大学第7章设备管理4外设的分类•从程序使用角度分类–逻辑设备:计算机程序中使用的设备–物理设备:实际完成I/O操作的设备•按外设特性分类–使用特性:存储、输入/输出、终端–数据传输率:低速(如键盘)、中速(打印机)、高速(磁盘、网卡)–信息组织特征•字符设备:以字符为单位存储或传输信息,一般不能被寻址•块设备:以数据块为单位存储或传输信息,一般可寻址《操作系统原理》——东北大学第7章设备管理5外设的分类•从资源分配角度分类–独占设备:在一段时间内只允许有一个进程使用的设备,一般为低速I/O设备,如打印机,磁带等–共享设备:在一段时间内可有多个进程并发使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高,如硬盘–虚拟设备:在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚设备.(实例:SPOOLing技术,利用虚设备技术——用硬盘模拟输入输出设备)《操作系统原理》——东北大学第7章设备管理6外设的特点•种类多•差异大(控制方式和I/O速度)《操作系统原理》——东北大学第7章设备管理7设备与控制器之间的接口《操作系统原理》——东北大学第7章设备管理8缓冲转换器控制逻辑数据线状态线控制线信号数据I/O设备在设备和设备控制器之间传送数据信号用于传送指示设备当前状态的信号作为设备控制器向I/O设备发送控制信号的通路I/O管理的目的•提高效率:提高I/O访问效率,匹配CPU和多种不同处理速度的外设•方便使用:方便用户使用,对不同类型的设备使用统一方法,协调对设备的并发使用•方便控制:方便OS内部对设备的控制,增加和删除设备,适应新的设备类型《操作系统原理》——东北大学第7章设备管理9I/O管理的功能•提供设备使用的用户接口:命令接口和编程接口•设备分配和释放:使用设备前,需要分配设备和相应的通道、控制器•设备的访问和控制:包括并发访问和差错处理(虚拟设备)•I/O缓冲和调度:目标是提高I/O访问效率《操作系统原理》——东北大学第7章设备管理10I/O软件的设计目标•设备独立性:又称设备无关性,即应用程序所涉及的I/O设备与系统中具体使用的物理设备相互无关–系统建立逻辑设备与物理设备的映射机制,应用进程通过逻辑设备名申请I/O,系统通过物理设备的驱动和控制实现具体的I/O–提高了设备分配的灵活性–易于实现I/O重定向《操作系统原理》——东北大学第7章设备管理11I/O软件的设计目标•统一命名:对各类设备采用预先设计的、统一的逻辑名称命名,而不依赖于具体设备•层次结构:组成I/O软件的各个程序按照其功能和彼此接口划分成若干层次,与用户I/O程序相关的部分在高层,直接与硬件动作相关的部分在低层•高效率:合理分配各种设备,尽可能提高外设和CPU、外设之间的并行性《操作系统原理》——东北大学第7章设备管理12I/O管理结构《操作系统原理》——东北大学第7章设备管理13用户进程逻辑I/O设备I/O调度与控制I/O硬件虚拟设备:•针对用户,提供操作命令;•对于通信设备,则是通信体系结构,如通信协议栈;•对于文件存储设备,是文件系统的逻辑控制结构逻辑设备与物理设备之间的过渡协调机构:•用户命令到设备操作序列的转换;•I/O缓冲:提高I/O效率控制物理设备的实体,直接面对硬件设备的控制细节,这部分通常为驱动程序。•并发I/O访问调度•设备控制和状态维护•中断处理主要内容•I/O管理基本知识•I/O控制方式•缓冲技术•设备分配与回收•磁盘存储器的管理•RAID技术《操作系统原理》——东北大学第7章设备管理14PC中的各类总线《操作系统原理》——东北大学第7章设备管理15程序I/O方式•I/O操作由程序发起,并等待操作完成。数据的每次读写通过CPU。•优点–几乎不需要其它任何硬件机构的支持•缺点–在外设进行数据处理时,CPU只能忙等待–CPU与外设只能串行工作《操作系统原理》——东北大学第7章设备管理16程序I/O方式•处理过程《操作系统原理》——东北大学第7章设备管理17CPU执行下一条指令开始数据传送否是外围设备是否等待发Start指令设备标志触发器为“Done”?接收到Start指令作接收或发送数据准备准备好?标志触发器置为“Done”等待CPU来的下一条指令程序中断方式•将CPU从忙等待中解放出来–I/O操作由程序发起,在操作完成时(如数据可读或已经写入)由外设向CPU发出中断,通知该程序。数据的每次读写通过CPU•优点–在外设进行数据处理时,CPU不必等待,可以继续执行该程序或其他程序。•缺点–CPU依然参与数据的搬运(从外设的局部存储搬运到内存)《操作系统原理》——东北大学第7章设备管理18程序中断方式•处理过程《操作系统原理》——东北大学第7章设备管理19接收到CPU发来的Start指令缓冲寄存器满?设备控制器发中断信号是CPU调度程序调度其它进程收到中断信号了吗?中断处理被中断进程执行是否准备数据并将其置入缓冲寄存器否向设备发Start指令,置中断允许位为“1”其它进程执行DMA方式•将CPU从数据搬运中解放出来–由程序设置DMA控制器中的若干寄存器值(如内存始址,传送字节数),然后发起I/O操作,而后者完成内存与外设的成批数据交换–操作完成后借助中断机制通知CPU•优点–CPU只需干预I/O操作的开始和结束,而其中的每一批数据读写无需CPU控制,适于高速设备《操作系统原理》——东北大学第7章设备管理20DMA方式《操作系统原理》——东北大学第7章设备管理21DMA方式《操作系统原理》——东北大学第7章设备管理22DataCountDataRegisterAddressRegisterControlLogicDMARequestDMAAcknowledgeInterruptReadWriteAddressLinesDataLines通道控制方式•引入通道的目的–为了使CPU从I/O事务中解脱出来,同时为了提高CPU与设备,设备与设备之间的并行工作能力–执行一个通道程序可以完成几批I/O操作《操作系统原理》——东北大学第7章设备管理23通道控制方式•通道控制器–有自己的专用存储器–可以执行由通道指令组成的通道程序–可以进行较为复杂的I/O控制,如网卡上信道访问控制–通道程序通常由操作系统构造,放在内存里《操作系统原理》——东北大学第7章设备管理24通道控制方式•通道的分类–字节多路通道:连接多个字符设备–选择性通道:可以连接多个外设,但一次只能访问一个外设–成组多路通道:可以并发访问多个外设,同时连接多个中速设备《操作系统原理》——东北大学第7章设备管理25通道控制方式•字节多路通道–字节多路通道以字节为单位传输信息–它可以分时地执行多个通道程序。当一个通道程序控制某台设备传送一个字节后,通道硬件就控制转去执行另一个通道程序,控制另一台设备传送信息–主要连接以字节为单位的低速I/O设备,如打印机,终端《操作系统原理》——东北大学第7章设备管理26通道控制方式•字节多路通道的工作原理《操作系统原理》——东北大学第7章设备管理27控制器A控制器B控制器C控制器N……A1B1C1…N1….AnBnCn…NnA1A2A3…子通道AB1B2B3…子通道BC1C2C3…子通道CN1N2N3…子通道N设备通道控制方式•选择通道–选择通道每次传送一批数据,故传送速度很高–选择通道在一段时间内只能执行一个通道程序,只允许一台设备进行数据传输–当这台设备数据传输完成后,再选择与通道连接的另一台设备,执行它的相应的通道程序–主要连接磁盘、磁带等高速I/O设备《操作系统原理》——东北大学第7章设备管理28选择通道通道控制方式•成组多路通道–允许先为一台设备执行一条通道指令,然后自动转接,为另一台设备执行一条通道指令–主要连接高速设备–对于连接多台磁盘的成组多路通道,可以启动它们同时执行移臂定位操作,按序交叉的传输一批数据–成组多路通道实际上是对通道程序采用多道程序设计的硬件实现–能够结合选择通道速度高和字节多路通道能分时并行操作的优点《操作系统原理》——东北大学第7章设备管理29通道控制方式•通道的硬件连接结构《操作系统原理》——东北大学第7章设备管理30CPU内存通道控制设备通道控制方式•设备、控制器、通道、内存之间的关系•单通道I/O系统《操作系统原理》——东北大学第7章设备管理31存储器通道1通道2控制器1控制器2I/O设备1I/O设备2I/O设备3I/O设备4控制器1控制器2I/O设备5I/O设备6I/O设备7I/O设备8通道控制方式•设备、控制器、通道、内存之间的关系•多通道I/O系统,交叉连接《操作系统原理》——东北大学第7章设备管理32存储器通道1通道2控制器1控制器2I/O设备1I/O设备2I/O设备3I/O设备4主要内容•I/O管理基本知识•I/O控制方式•缓冲技术•设备分配与回收•磁盘存储器的管理•RAID技术《操作系统原理》——东北大学第7章设备管理33缓冲技术的引入•缓和CPU与I/O设备之间速度不匹配的矛盾•减少对CPU的中断频率,放宽对CPU中断响应时间的限制•提高CPU和I/O设备之间的并行性《操作系统原理》——东北大学第7章设备管理34缓冲区CPU外设高速缓存•磁盘高速缓存–利用内存中的存储空间暂存从磁盘中读出的一系列盘块中的信息(并非体系结构中的Cache)–是一组在逻辑上属于磁盘、而物理上驻留在内存中的盘块–两种形式•在内存中开辟一单独存储空间作为高速缓存•把所有未利用的内存空间作为高速缓存《操作系统原理》——东北大学第7章设备管理35单缓冲技术•基本原理–一个缓冲区,CPU和外设轮流使用,一方处理完之后接着等待对方处理《操作系统原理》——东北大学第7章设备管理36操作系统用户进程缓冲区工作区I/O设备输入传送TMC处理T1M1C1T2M2C2T3M3C3T4M4C4T5t系统处理每一块数据的时间为:Max(C,T)+M双缓冲技术•基本原理–两个缓冲区,CPU和外设都可以连续处理而无需等待对方。要求CPU和外设的速度相近《操作系统原理》——东北大学第7章设备管理37操作系统用户进程缓冲区1工作区缓冲区2I/O设备传送输入TMC处理T1M1C1T2M2C2T3M3C3T4M4C4T5t环形缓冲技术•基本原理–多个缓冲区,CPU和外设的处理速度可以相差较大《操作系统原理》——东北大学第7章设备管理38操作系统用户进程缓冲区1工作区缓冲区2缓冲区nI/O设备传送输入TMC处理环形缓冲技术《操作系统原理》——东北大学第7章设备管理39操作系统用户进程缓冲区1工作区缓冲区2缓冲区nI/O设备传送输入TMC处理组成RRGGGG123456NextiNextgRRCGGG123456NextiCurrentNextg多个缓冲区:用于输入数据的空缓冲区R、已装满数据的缓冲区G、计算进程正在使用的现行缓冲区C多个指针:Nextg:计算进程下次可用Nexti:输入进程下次可用Current:计算进程正在使用缓冲区使用、进程同步环形缓冲技术•Getbuf过程–当计算进程需要使用缓冲区的数据时调用Getbuf过程–将指针Nextg所指示的缓