《设备管理》PPT课件 (2).ppt_第1页
《设备管理》PPT课件 (2).ppt_第2页
《设备管理》PPT课件 (2).ppt_第3页
《设备管理》PPT课件 (2).ppt_第4页
《设备管理》PPT课件 (2).ppt_第5页
已阅读5页,还剩134页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统 第5章 设备管理,刘扬 河南大学计算机与信息工程学院,课程主要内容,操作系统引论(1章) 进程管理(2章) 处理机调度与死锁(3章) 存储管理(4章) 设备管理(5章) 文件管理(6章) 操作系统接口(7章),第5章 设备管理,5.1 I/O系统 5.2 I/O控制方式 5.3 缓冲管理 5.4 I/O软件 5.5 设备分配 5.6 磁盘存储器管理,5.1 I/O 系统,I/O设备 设备控制器 I/O通道 I/O系统的总线系统 I/O系统的结构,I/O 系统的组成: I/O设备、设备控制器、 I/O通道 总线及相应软件,5.1.1 I/O 设备,1、 I/O设备的类型,独享设备 1)按使用方式/共享属性分类 共享设备 虚拟设备 独享/独占设备:在一段时间内只能有一个进程使用的设备,一般为低速I/O设备(如打印机,磁带等) 共享设备:在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高(如硬盘),5.1.1 I/O 设备,1、 I/O设备的类型,虚设备:在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚设备 目的:将慢速的独占设备改造成多个用户可共享的设备,提高设备的利用率 (实例:SPOOLing技术,利用虚设备技术 用硬盘模拟输入输出设备),低速设备 2)按传输速率分类 中速设备 高速设备 低速设备:传输速率仅为每秒钟几个字节至数百个字节的设备。 典型的有:键盘、鼠标、语音的输入/输出等。 中速设备:传输速率仅为每秒钟数千个字节至数数万个字节的设备。典型的有:打印机等。 高速设备:传输速率仅为每秒钟数百千个字节至数十兆字节的设备。典型的有:磁盘机、磁带机、光盘机等。,典型I/O设备数据传输率(单位:bps/每秒字节),块设备 3)按信息交换的单位分类 字符设备,字符设备:传输单位为字节,或字符,属于无结构/慢速设备。常见的交互式终端、打印机等。这种设备的特性是:不可寻址、I/O中断驱动和传输率相对较低。,块设备:通常作为存储设备,传输以块为单位。通常块大小为 512到4KB之间,典型的为磁盘。其特性是:可寻址、一般为DMA方式。 存储设备(外存/后备存储器/辅助存储器) 4) 按设备的使用特性分类: 输入设备 输入/输出设备 交互式设备 输出设备,IO设备一般由机械和电子两部分组成,把这两部分分开处理,以提供更加模块化,更加通用的设计.,(1)物理设备 机械部分是设备本身(物理装置) (2)设备控制器 电子部分叫做设备控制器或适配器。 在小型和微型机中,它常采用印刷电路卡插入计算机中(接口)完成设备与主机间的连接和通讯 控制器卡上通常有一个插座,通过电缆与设备相连 控制器和设备之间的接口是一个标准接口,它符合ANSI、IEEE或ISO 这样的国际标准,5.1.2 设备控制器,5.1.2 设备控制器,设备控制器功能: 是处于CPU与I/O设备之间的接口,接收CPU发来的命令,并控制I /O设备工作,是一个可编址设备。 接收命令并进行译码(控制寄存器)接收来自主机的命令,译成驱 动设备的操作码;同时将地址译码以对应多个设备中的一个。 进行数据交换(数据寄存器)根据主机I/O命令实现CPU与控制器、控制器与设备间数据交换。 记录和报告设备状态(状态寄存器)记录控制设备当前状态,用于CPU进行I/O时的查询条件。,设备控制器的组成,设备与控制器间的接口,设备控制器的组成,5.1.3 I/O 通道,一、引入 通道 一种特殊的执行I/O指令的处理机,与CPU共享内存,可以有自己的总线。 引入目的 解脱CPU对I/O的组织、管理。 CPU只需发送I/O命令给通道,通道通过调用内存中的相应通道程序完成任务。,5.1.3 I/O 通道,二、类型 根据信息交换方式的不同,通道可分成以下几种类型: 字节多路通道 数组选择通道 数组多路通道 注:“瓶颈”问题,字节多路通道,其工作原理: 数据传送是按字节交叉方式工作。 1)有一个主通道。 2)含有多个非分配型子通道A、B、C 3)每子通道通过一控制器与一台中/低速的I/O设备相连,可同时并行向主通道传数据。 4)各子通道以时间片轮转方式按字节交叉使用主通道。 优点:可连多台中/低速设备;能分时并行操作。 缺点:传输率较低。,图5-3 字节多路通道的工作原理,数组选择通道,其工作原理:数据传送是按成组方式进行工作,每次传输一批数据。主要用于连接高速I/O设备。 1)有一个主通道 2)含有一个分配型子通道 3)子通道在一段时间内只能选择一个子通道程序执行控制一台设备数据传送。 优点:可连多台高速设备;传输率较高。 缺点:某台设备占用子通道不传数据,而使主通道闲置,其它设备也不能传数据。所以通道的利用率很低。,数组多路通道,数据传送仍是按数组方式工作。 工作原理(结合两者:并行+数组) 1)有一个主通道 2)含有多个非分配型子通道A、B、C 3)各子通道以时间片轮转方式按数组方式使用主通道。 优点:可连多台高/中速设备;能分时并行操作,传输率较高。,“瓶颈”问题,单通路I/O系统,解决“瓶颈”问题的方法-多路方式,通道2,多通路I/O系统(4路),5.1.4 总线系统 总线实现计算机系统中的各部件,如CPU、存储器以及各种I/O设备之间的联系。 总线性能指标:时钟频率、带宽和相应的总线传输速率,图5-6 总线型I/O系统结构,1ISA和EISA总线 1) ISA(Industry Standard Architecture)总线 这是为在1984年推出的80286型微机而设计的总线结构。其总线的带宽为8位,最高传输速率为2 Mb/s。之后不久又推出了16位的(EISA)总线,其最高传输速率为8 Mb/s,后又升至16 Mb/s,能连接12台设备。 2) EISA(Extended ISA)总线 到20世纪80年代末期,ISA总线已难于满足带宽和传输速率的要求,于是人们又开发出扩展ISA(EISA)总线,其带宽为32位,总线的传输速率高达32 Mb/s,同样可以连接12台外部设备。,2局部总线(Local Bus) 多媒体技术的兴起,特别是全运动视频处理、高保真音响、高速LAN,以及高质量图形处理等技术,都要求总线具有更高的传输速率,这时的EISA总线已难于满足要求,于是,局部总线便应运而生。所谓局部总线,是指将多媒体卡、高速LAN网卡、高性能图形板等,从ISA总线上卸下来,再通过局部总线控制器直接接到CPU总线上,使之与高速CPU总线相匹配,而打印机、FAX/Modem、CDROM等仍挂在ISA总线上。在局部总线中较有影响的是VESA总线和PCI总线。,1) VESA(Video Electronic Standard Association)总线 该总线的设计思想是以低价位迅速占领市场。VESA总线的带宽为32位,最高传输速率为132 Mb/s。它在20世纪90年代初被推出时,广泛应用于486微机中。但VESA总线仍存在较严重的缺点,比如,它所能连接的设备数仅为24台,在控制器中无缓冲,故难于适应处理器速度的不断提高,也不能支持后来出现的Pentium微机。,2) PCI(Peripheral Component Interface)总线 随着Pentium系列芯片的推出,Intel公司分别在1992年和1995年颁布了PCI总线的V1.0和V2.1规范,后者支持64位系统。PCI在CPU和外设间插入一复杂的管理层,用于协调数据传输和提供一致的接口。在管理层中配有数据缓冲,通过该缓冲可将线路的驱动能力放大,使PCI最多能支持10种外设,并使高时钟频率的CPU能很好地运行,最大传输速率可达132 Mb/s。PCI既可连接ISA、EISA等传统型总线,又可支持Pentium的64位系统,是基于奔腾等新一代微处理器而发展的总线。,2) AGP(Accelerate Graphical Port)总线 随着Pentium系列芯片的推出,Intel公司分别在1992年和1995年加速图形接口(AGP)。随着显示芯片的发展,PCI总线日益无法满足其需求。英特尔于1996年7月正式推出了AGP接口,它是一种显示AGP显卡图片卡专用的局部总线。严格的说,AGP不能称为总线,它与PCI总线不同,因为它是点对点连接,即连接控制芯片和AGP显示卡,但在习惯上我们依然称其为AGP总线。AGP接口是基于PCI 2.1 版规范并进行扩充修改而成,工作频率为66MHz。,5.1.5 I/O 系统的结构,5.2 I/O 控制方式,1、程序控制方式 2、中断控制方式 3、直接存储器访问(DMA)方式 4、通道控制方式,四个阶段: 程序I/O中断I/ODMA控制通道控制。 趋势:提高并行度。,查询方式:CPU需花代价不断查询I/O状态(图5-7a) CPU资源浪费极大。 例:CPU忙等时间99.9ms+读写字符时间0.1ms=I/O时间100ms,特点:控制简单,但CPU的利用率低(串行),出现忙等待(循环等待设备的I/O操作)-即轮询(Polling),1.程序直接控制方式,程序控制输入/输出方式以键盘为例,1、CPU向键盘的控制器发一条输入命令,启动键盘进行输入操作,并将状态寄存器的”忙闲位”busy置1,表示忙。 2、然后CPU运行程序不断测试状态寄存器的”完成位”,看键盘是否完成了输入。直到键盘已将数据输入到了键盘控制器的数据寄存器中,状态寄存器的”完成位”变为1时,CPU才停止测试。 3、CPU取走数据寄存器中的输入数据。,2.中断控制方式,)需数据的进程向CPU发出指令启动I/O设备输入数据。 )该进程放弃处理机,等待输入完成。 )输入完成后,I/O控制器向CPU发出中断请求,CPU收到后,转向中断服务程序。中断服务程序将数据寄存器中的数据送指定内存单元,并将原进程唤醒,继续执行。 )以后,该进程再被调度,从内存单元取出数据进行处理。 优点- CPU利用率大大提高(可以与I/O设备并行工作)。 缺点-控制器数据缓冲寄存器较小,完成一次I/O可能要多次中断驱动,发生中断次数较多将耗去大量CPU处理时间。,向I/O发命令返回执行其它任务。 I/O中断产生CPU转相应中断处理程序。 如:读数据,读完后以中断方式通知CPU,CPU完成数据从I/O内存,中断输入/输出方式以键盘输入为例,(1)开中断。CPU把启动位和中断允许位为1的控制字写入键盘控制状态寄存器中,启动键盘。(当中断允许位为1时,中断程序可以被调用。) (2)进程等待键盘输入完成(进入等待队列),由进程调度程序调度其他就绪进程使用CPU。 (3)键盘启动后,当数据寄存器装满后,键盘控制器通过中断请求线向CPU发出中断信号。 (4)CPU暂停正在进行的工作,转向执行中断处理程序。(取出数据寄存器中的输入数据送到内存特定单元,并将等待输入完成的进程唤醒。) (5)中断处理程序完毕,CPU返回断点继续执行。 (6)以后某个时刻,进程调度程序选中正处于就绪状态的那个进程,该进程从特定内存单元中取出所需的数据继续工作。,3、DMA方式用于块设备中,一、引入 中断I/O,CPU“字节”干预一次,即每“字节”传送产生一次中断。 DMA:由DMA控制器直接控制总线传递数据块。DMA控制器完成从I/O内存。,DMA组成,一组寄存器+控制逻辑。图5.8 CR(命令/状态); DR(数据); MAR(内存地址); DC(计数) DMA工作过程(例):,图5-8 DMA控制器的组成,3、DMA方式,1)需数据的进程向CPU发出指令,向DMA控制器写入数据存放的内存始址、传送的字节数,并置中断位和启动位,启动I/O设备输入数据并允许中断。 2)该进程放弃处理机等待输入完成,处理机被其它进程占据。 3)DMA控制器采用挪用CPU周期,将一批数据写入内存中。 4)DMA控制器传送完数据后,向CPU发中断请求,CPU响应后转向中断服务程序,唤醒进程,并返回被中断程序。 5)在以后该进程再被调度,从内存单元取出数据进行处理。 优点CPU利用率进一步提高(并行度有所提高)。 缺点数据传送方向、字节数、内存地址等需由CPU控制,且每一设备需一台DMA控制器,设备增多时,不经济。,DMA工作过程,DMA方式与中断的主要区别,中断方式是在数据缓冲寄存区满后,发中断请求,CPU进行中断处理; DMA方式则是在所要求传送的数据块全部传送结束时要求CPU进行中断处理,大大减少了CPU进行中断处理的次数 中断方式的数据传送是由CPU控制完成的; DMA方式则是在DMA控制器的控制下不经过CPU控制完成的,DMA工作原理窃取总线控制权,存放输入数据的内存起始地址、要传送的字节数 送入DMA控制器的内存地址寄存器和传送字节计数器 中断允许位和启动位置成1,启动设备 发出传输要求的进程进入等待状态 执行指令被暂时挂起,进程调度其他进程占据CPU 输入设备不断窃取(占用)CPU总线工作周期(cycle stealing),数据不断写入内存 传送完毕,发出中断信号 CPU接到中断信号转入中断处理程序处理 中断处理结束,CPU返回原进程或切换到新的进程,4、通道控制方式,1)需数据的进程向CPU发出指令,CPU发启动指令指明I/O操作、设备号和对应的通道。 2)该进程放弃CPU等待输入完成,CPU被其它进程占据。 3)通道接收到CPU发来的启动指令后,取出内存中的通道程序执行,控制设备将数据传送到内存指定区域。 4)传送完数据后,通道向CPU发中断请求,CPU响应后转向中断服务程序,唤醒进程,并返回被中断程序。 5)在以后该进程再被调度,从内存取出数据进行处理。 优点:一个通道可控制多设备,所需CPU干预更少。 CPU利用率较高(并行度较高)。 缺点:通道价格较高。,DMA方式:对需多离散块的读取仍需要多次中断。,通道部件,内存:与主机共享同一个存储器。,通道运算控制部件:它负责解释执行通道指令。另外还应保有若干信息字(寄存器),包括:, 数据字(CDW):存放被传输的数据。 通道指令字(CCW):存放当前正在执行的指令。 通道地址字(CAW):存放下条通道指令地址(相当于程序计数器)。 通道状态字(CSW):用于记录通道和该通道中各设备的当前工作状态。,通道指令格式:,其中操作码包括如下几种(构成通道指令系统): 空操作:不执行任何操作,取下条指令继续工作; 转移操作:按指令中的主存地址取另一条通道指令; 读操作:从指定设备上读进一批数据; 写操作:向指定设备上输出一批数据; 控制型操作:控制外部设备那些非传输性动作,磁带反绕、磁盘磁臂移动、打印纸换页等; 结束操作:表示通道程序结束,在CSW中记下正常结束标记,并向主机发出通道中断;,通道部件,5.3 缓冲管理,1、提高处理机与I/O设备的并行工作的技术: ) 数据传送控制方式 ) 缓冲技术 2、操作系统中,引入缓冲的主要原因 1)缓冲CPU与I/O设备间速度不匹配的矛盾。 凡是数据到达率与数据离去率不同的地方都可以设置缓冲区。 2)提高CPU与I/O设备的并行性 3)减少中断CPU的次数 如图5-10,图5-10 利用缓冲寄存器实现缓冲,5.3 缓冲管理,进程读取数据块时,若已在缓冲区就立刻读取,不阻塞进程。当缓冲区空时才阻塞进程,启动磁盘数据块读入,这就是所谓的提前读。 当进程输出数据块到磁盘时,只需写入缓冲区,直到缓冲区满之后才开始启动磁盘。既减少了输出操作和中断次数,又提高了传输速度。利用缓冲区实现的这种功能就称为延迟写。,引入缓冲技术,系统对设备读写可实行“提前读”和“延迟写”方式。,3、缓冲技术的分类 单缓冲 双缓冲 循环缓冲 缓冲池,5.3 缓冲管理,4.缓冲的实现方法 一种是采用专用硬件缓冲器,例如I/O设备,或控制器中的数据缓冲寄存器。 另一种方法是利用系统内存空间和软件方法实现的缓冲技术,也称软件缓冲。 主要讨论利用内存和软件实现的缓冲技术。,输入缓冲配置,单 缓 冲,在设备和处理机之间设置一个缓冲。设备与处理机交换数据时,先把交换的数据写入缓冲区,然后需要数据的设备/处理机再从缓冲区中取走数据。 特点:缓冲区数只有一个;设备与处理机对缓冲区的操作是串行的。,一块数据的处理时间,由于C和T可并行,M和C或M和T不能并行,因此处理一块数据时间:Max(C,T)+M,双 缓 冲,在设备和处理机之间设置2个缓冲。设备与处理机交换数据时,先把交换的数据写入缓冲区,然后需要数据的设备/处理机再从缓冲区中取走数据。因缓冲区有2个,提高了设备与处理机并行操作的程度,只有当两个均为空时,需数据的进程才等待。 特点:缓冲区数有2个;设备与处理机对缓冲区的操作可并行,提高了设备与处理机并行操作的程度。,一块数据的处理时间,系统传送时间可并行,处理一块时间MAX(C,T)+MMAX(C,T) 当CT :CPU连续处理不等I/O 当CT :连续输入,图5-13 双机通信时缓冲区的设置,循 环 缓 冲,在设备和处理机之间设置多个大小相等的缓冲区,这些缓冲区构成环形,每一个缓冲区中含一指针指向下一个缓冲区,最后一个指向第一个缓冲区,同时还含有2个用于输入/输出的指针IN和OUT。 特点:缓冲区数有多个;设备与处理机对缓冲区的操作可并行,进一步提高了设备与处理机并行操作的程度。,current,循环缓冲的组成,类型: B:空缓冲;F:满缓冲;C:当前缓冲,循 环 缓 冲,缓冲区的使用 GetBuf过程 ReleaseBuf过程 进程同步 NextB指针追赶上NextF指针输入进程阻塞 表示输入速度输出速度,全部buf满,这时输入进程阻塞 NextF指针追赶上NextB指针计算进程阻塞 表示输入速度输出速度,全部buf空,这时输出进程阻塞。,面向字符/块设备缓冲区都可以有两种属性;,私用缓冲区(专用缓冲区);如前面介绍的循环缓冲就是针对某一特定设备的。会产生严重的问题;,有大量I/O操作进程因分配缓冲区不足造成阻塞。 进程无I/O请求使得所分配缓冲区资源浪费。,公用缓冲区,为所有进程所共享,即当进程需要进行I/O时,需要向系统申请一个缓冲,系统就在属于公共的缓冲区中进行分配,造成按需分配的管理方式,需建立缓冲池管理。,缓 冲 池,1、缓冲池:将系统内所有的缓冲区统一管理起来,就形成了能用于输入/输出的缓冲池。缓冲池通常由若干大小相同的缓冲区组成,是系统的公用资源,任何进程都可以申请使用缓冲池 中的各个缓冲区。 2、缓冲池的组成(数据结构) 三种类型缓冲区:空(闲)缓冲区、装满输入数据的缓冲区、装满输出数据的缓冲区 三个队列:空缓冲队列、装满输入数据队列、装满输出数据队列 四个工作缓冲区:收容输入缓冲区、提取输入缓冲区、 收容输出缓冲区、提取输出缓冲区,缓 冲 池,空缓冲队列emQ,队首指针F(emQ),队尾指针L(emQ)。,满输入数据的输入缓冲队列inQ,队首指针F(inQ),队尾指针L(inQ)。,满输出数据的输出缓冲队列outQ,队首指针F(outQ),队尾指针L(outQ)。,Hin,Sout,Sin,Hout,提取输入,收容输出,CPU,收容输入,提取输出,缓冲池,进程从三种队列中申请和取出缓冲区,进行存数、取数操作,然后再放入相应队列。这些缓冲区被称为工作缓冲区,有4种工作缓冲区:,用于收容设备输入数据的收容输入缓冲区Hin;,用于提取设备输入数据的提取输入缓冲区Sin;,缓 冲 池,注意:由于缓冲队列是系统内各进程所公用的资源,是临界资源,在多个进程访问一个队列时应该互斥,同时也需要同步。,为每个队列设置一个 互斥信号量MS(type),初值为1; 队列缓冲区资源信号量RS(type);空缓冲区、输入满和输出满三个队列初值分别为n、0、0。,3、GetBuf过程和PutBuf过程,缓 冲 池,Procedure GetBuf(type) Begin P(RS(type); P(MS(type); Pointer of buffer(number) = take_buf(type); V(MS(type); End,3、GetBuf过程和PutBuf过程,其中; type 表示缓冲队列类型number为缓冲区号 work_buf 则表示工作缓冲区类型(实际也对应一个缓冲区号) 互斥信号量MS(type) 队列缓冲区资源信号量RS(type),缓 冲 池,3、GetBuf过程和PutBuf过程,Procedure PutBuf(type,number) Begin P (MS (type); add_buf (type,number); V (MS (type); V (RS (type); End,其中; type 表示缓冲队列类型number为缓冲区号 work_buf 则表示工作缓冲区类型(实际也对应一个缓冲区号) 互斥信号量MS(type) 队列缓冲区资源信号量RS(type),4、操作系统对缓冲池的管理-工作方式,缓 冲 池,提取输入,收容输出和提取输出工作方式自己给出,F(emQ),L(emQ),进程请求输入时,缓冲池中缓冲区变化,空缓 冲2,空缓 冲e,F(inQ),L(inQ),输入 缓冲1,收容输入,输入机,注:各队列1,2为相对编号,进程请求输入数据,number=k,缓冲区工作方式,输入进程需要输入数据时:输入设备收容输入缓冲区-GetBuf(emQ) 1)从空缓冲队列的队首取一空缓冲区用作收容输入缓冲区 2)输入设备将数据输入收容输入缓冲区并装满 3)将此缓冲区挂到装满输入数据队列队尾。 计算进程需要输入数据时:提取输入缓冲区CPU -GetBuf(inQ) 1)从装满输入数据队列队首取一满缓冲区用作提取输入缓冲区 2)CPU从提取输入缓冲区中取出数据至用完 3)将空缓冲区挂到空缓冲队列队尾。,4、操作系统对缓冲池的管理-工作方式,计算进程需要输出数据时:CPU收容输出缓冲区-GetBuf(emQ) 1)从空缓冲队列队首取一空缓冲区用作收容输出缓冲区 2)CPU将数据输入其中并装满 3)将收容输出缓冲区挂到装满输出数据队列队尾。 输出进程需要输出数据时:提取输出缓冲区输出设备-GetBuf(outQ) 1)从装满输出数据队列队首取一满缓冲区用作提取输出缓冲区 2)输出设备从中取出数据至用完 3)将空缓冲区挂到空缓冲队列队尾,4、操作系统对缓冲池的管理-工作方式,5.5 设备分配,设备分配中的数据结构 设备分配的策略(应考虑的因素) 设备分配程序 SPOOLING技术,5.5.1 设备分配中的数据结构,系统设备表(SDT),SDT整个系统一张,每个设备一个表目。,设备控制表(DCT),系统中每个设备都有一张DCT(由SDT指向)。,控制器控制表(COCT),COCT也是每个控制器一张表 (在DMA方式时,这项是没有的),描述I/O控制器的使用情况以及与通道连接的情况。,通道控制表(CHCT),每个通道一张表,可以挂接多个控制器。,设备控制表(DCT)结构的C语言描述如下:,struct devtab int dvid; /*设备标识符*/ int dvadd; /*设备地址*/ int *dvec; /*设备中断向量*/ int *dvbuf; /*设备缓冲区指针*/ int *dvque; /*设备等待队列首址*/ int (*dvinit)(); /*设备初始化函数*/ int(*dvopen)(); /*设备打开系统调用*/ int(*dvclose)(); /*设备关闭系统调用*/ int(*dvread)(); /*设备读系统调用*/ int(*dvwrite)(); /*设备写系统调用*/ int(*dvseek)(); /*设备查询系统调用*/ int(*dvcntl)(); /*设备控制系统调用*/ int(*dvgetc)(); /*设备取字符系统调用*/ int(*dvputc)(); /*设备送字符系统调用*/ dct;,系统设备表(SDT),设备控制表(DCT),通道控制表(CHCT),控制器控制表(COCT),与设备分配有关数据结构,5.5.2 设备分配策略/应考虑的因素,1、设备的使用性质/固有属性 (独享分配 、共享分配、虚拟分配) 2、设备分配算法(FIFO 、优先权) 3、设备分配的安全性(防止进程死锁),安全分配:每进程获得一I/O后,即block,直到其I/O完成。 即打破了死锁条件。 缺点:CPU、I/O对该进程是串行,进程进展缓慢。 不安全分配:需进行安全性检查,进程执行效率高。,5.5.3 独占设备的分配程序,基本的设备分配程序 分配设备 分配控制器 分配通道 设备分配程序的改进 问题(“瓶颈”) 进程以物理设备名来提出I/O请求 采用的是单通路的I/O系统结构 改进方法 增加设备的独立性(进程以逻辑设备名来提出I/O请求) 考虑多通路情况,分配设备,Y,N,N,Y,分配控制器,Y,N,分配通道,Y,N,5.5.4 SPOOLING技术 (Simultaneaus Periphernal Operations On-Line),脱机输入、输出技术 为了缓和CPU的高速性与I/O设备的低速性间矛盾而引入,该技术在外围控制机的控制下实现低速的I/O设备与高速的磁盘之间进行数据传送。 SPOOLING技术 SPOOLING系统的组成 SPOOLING系统的特点 提高了I/O速度 将独占设备改造为共享设备 实现了虚拟设备功能,在多道程序下,用一程序来模拟外围控制机,实现将数据从磁盘传送到低速的输出设备上,从而可在主机的直接控制下,实现脱机输入、输出功能,进而实现外围操作与CPU对数据处理的并行操作,这种在联机情况下实现的同时外围操作称为SPOOLING技术,是对脱机输入、输出工作的模拟,是操作系统中采用的一项将独占设备改造成为共享设备的技术。 核心思想是以联机方式得到脱机效果(假脱机真联机),SPOOLING技术,SPOOLING系统的组成,1.输入井和输出井(磁盘中) 在磁盘上开辟的2个大存储空间,模拟输入和输出设备。 2.输入buf和输出buf(内存中) (1)输入设备输入buf输入井用户区 (2)用户区输出井输出buf设备 3.输入SpI和输出SpO进程。 分别控制(1)、(2)的动作。 SpI相当于脱机输入控制器。 SpO相当于脱机输出控制器。,图5-22 SPOOLing系统的组成,输出井:,取输入,存输出,取输出,作业3,内存,作业4,作业2,输入井:,作业5,作业3,作业2,作业4,SPOOLING系统(5个作业情况),磁盘,磁盘,存输入,当前系统有3个用户进程,4个系统进程,SPOOLING 系统的工作过程,(1)输入 a.进程n请求 SpI为n在输入井中分配空间设备数据由输入buf送输入井生成输入请求表挂输入请求队列。 b.CPU空取请求表中的任务,送进程缓冲区。 (2)输出(打印): a.进程n请求 SpO为n在输出井中分配空间将数据由进程buf转到输出井生成一输出(打印)请求表挂输出(打印)请求队列。 b.输出(打印)机空查输出(打印)请求表中的任务取输出井中对应数据输出buf输出(打印),例,SPOOLING技术,在操作系统中,引入虚拟设备的原因 引入虚拟设备是为了克服独占设备速度较慢、降低设备资源利用率的缺点,从而提高设备的利用率。 虚拟设备 是指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户进程使用,通常把这种经过虚拟技术处理后的设备称为虚拟设备。,5.4 I/O软件,5.4.1 I/O软件的设计目标和原则 5.4.2中断处理程序 5.4.3设备驱动程序 设备驱动程序的功能 设备处理方式 设备驱动程序的特点 设备驱动程序的处理过程,5.4.4设备独立性软件,5.4.1 I/O软件的设计目标和原则,1) 与具体设备无关,2) 统一命名,3) 对错误的处理,4) 缓冲技术,5) 设备的分配和释放,6) I/O控制方式,为使十分复杂的I/O软件能具有清晰的结构,更好的可移植性和易适应性,目前在I/O软件中已普遍采用了层次式结构,将系统中的设备操作和管理软件分为若干个层次,每一层都利用其下层提供的服务,完成输入、输出功能中的某些子功能,并屏蔽这些功能实现的细节,向高层提供服务。,5.4.1 I/O软件的设计目标和原则,I/O软件的层次结构,5.4.1 I/O软件的设计目标和原则,5.4.1 I/O软件的设计目标和原则,用户层I/O软件:实现与用户交互的接口,用户可直接调用在用户层提供的、与I/O操作有关的库函数,对设备进行操作。 设备独立性软件:用于实现用户程序与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间。 设备驱动程序:与硬件直接相关,用于具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序。 中断处理程序:用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完后再恢复被中断进程的现场后,返回到被中断进程。,I/O系统中各种模块之间的层次视图,1.块设备接口:是块设备管理程序与高层之间的接口。 块设备:数据的存取和传输都是以数据块为单位的设备。基本特征是传输速率较高、可寻址。磁盘设备的I/O常采用DMA方式。 隐藏了磁盘的二维结构:块设备接口隐藏了磁盘地址是二维结构的情况:每个扇区的地址需要用磁道号和扇区号来表示。 将抽象命令映射为低层操作:块设备接口将上层发来的抽象命令,映射为设备能识别的较低层具体操作。,2.流设备接口:是流设备管理程序与高层之间的接口,又称字符设备接口。 字符设备:数据的存取和传输是以字符为单位的设备。如键盘、打印机等。基本特征是传输速率较低、不可寻址,常采用中断驱动方式。 get和put操作:由于字符设备是不可寻址的,因而对它只能采取顺序存取方式。(用户程序)获取或输出字符的方法是采用get和put操作。 in-control指令:因字符设备的类型非常多,且差异甚大,系统以统一的方式提供了一种通用的in-control指令来处理它们。,3.网络通信接口 在现代OS中,都提供了面向网络的功能。 还需要通过某种方式,把计算机连接到网络上。 操作系统也必须提供相应的网络软件和网络通信接口,使计算机能通过网络与网络上的其它计算机进行通信,或上网浏览。,在不同的操作系统中,所采用的设备处理方式并不完全相同。 分类原则 在设备处理时是否设置进程,以及设置什么样的进程。 三种设备处理方式 (1)为每一类设备设置一个进程,专门用于执行这类设备的I/O操作。这种方式比较适合于较大的系统; (2)在整个系统中设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作。也可以设置一个输入进程和一个输出进程,分别处理系统中的输入或输出操作; (3)不设置专门的设备处理进程,而只为各类设备设置相应的设备驱动程序,供用户或系统进程调用。这种方式目前用得较多。,设备处理方式,设备驱动程序的功能,(1)接收由与设备无关的软件发来的命令和参数,并将命令中的抽象要求,转换为与设备相关的低层操作序列; (2)检查用户I/O请求的合法性,了解I/O设备的工作状态,传递与I/O设备操作有关的参数,设置设备的工作方式; (3)发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作;如果设备忙碌,则将请求者的请求块,挂在设备队列上等待; (4)及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理。 (5) 对于设置有通道的计算机系统,驱动程序还应能够根据用户的I/O请求,自动地构成通道程序。,设备驱动程序的特点,设备驱动程序属于低级的系统例程。 与一般的应用程序及系统程序之间,有下述明显差异: (1)驱动程序是实现在请求I/O的进程和设备控制器之间通信和转换的程序。 (2)驱动程序与设备控制器和I/O设备的硬件特性,紧密相关。 (3)驱动程序与I/O设备所采用的I/O控制方式紧密相关。 (4)由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写。 (5)驱动程序应允许可重入,一个正在运行的驱动程序常会在一次调用完成前被再次调用。 (6)驱动程序一般不允许执行系统调用。但是为了满足其与内核其它部分的交互,可以允许对某些内核过程的调用,如使用内存页面作缓冲区,管理MMU定时器、DMA控制器、中断控制器等。,设备驱动程序的处理过程,包括 启动过程 中断处理过程 设备驱动程序处理过程 将抽象要求转化为具体要求 检查I/O请求合法性 读出和检查设备状态 传送必要的参数 设置工作方式 启动I/O设备,5.4.2 中断处理程序,流程 设备启动I/O完成发送中断CPU调用中断处理过程 中断处理过程 唤醒被阻塞的驱动程序进程 保护被中断进程CPU环境 转入相应的设备处理程序 中断处理(特性) 恢复被中断进程的现场,图5-17 中断现场保护示意图,5.4.2 中断处理程序,中断处理流程,5.4.4 设备独立性软件,设备独立性概念(设备无关性) 设备独立性的实现 逻辑设备(应用程序)和物理设备(执行) 设备分配时的灵活性 易于实现I/O重定向(设备更换) 设备独立性软件 执行所有设备的公有操作 向用户层(文件层)软件提供统一的接口 逻辑设备名到物理设备名映射的实现 逻辑设备表LUT(Logical Unit Table) LUT设置方法:单用户环境整个系统设置一张LUT ;多用户环境每个用户设一张LUT,设备独立性相关概念,设备独立性概念(设备无关性,Device Independence) 为提高OS的可适应性和可扩展性,而将应用程序独立于具体使用的物理设备。 为实现设备独立性将物理设备抽象为逻辑设备,进程通过设备独立性软件访问逻辑设备转换为设备驱动程序访问物理设备。,逻辑设备,物理设备,Linux系统中外部设备等同文件设备文件; 这些设备文件名就是系统规定的逻辑设备名; 系统的/dev目录下是各种设备: (1)以fd开头的文件是软盘设备。 /dev/fd0第一个软盘驱动器 /dev/fd1第二个软盘驱动器 (2)以hd开头的文件是IDE硬盘设备。 /dev/hda第一硬盘 hda1第一个硬盘/dev/hda的第一个分区 hda、hdb、hdc、系统中的多个IDE硬盘 (3)/dev/ttys串行端口COM1,/dev/cua调制解调器。 以tty开头的文件是系统的虚拟终端 以pty开头的文件是伪终端,用telnet远程登录时用到 /dev/console控制台,即直接与系统相连的显示器和键盘。,实用系统中的逻辑设备和物理设备,逻辑设备表LUT(Logical Unit Table),(a)单用户环境逻辑设备表,(b)多用户环境逻辑设备表,设备独立性软件对执行设备公有操作,所有设备的公有操作 分配回收:对独立设备的分配与回收 名字映射:将逻辑设备名映射为物理设备名,进一步可以找到相应物理设备的驱动程序 保护:对设备进行保护,禁止用户直接访问设备 缓冲:缓冲管理,即对字符设备和块设备的缓冲区进行有效的管理,以提高I/O的效率 差错控制:由于在I/O操作中的绝大多数错误都与设备无关,故主要由设备驱动程序处理,而设备独立性软件只处理那些设备驱动程序无法处理的错误,几乎所有计算机都使用磁盘来存储信息。从存储角度,与内存比较起来,磁盘有三个主要的优点: (1)可用的存储容量非常大 (2)每位的价格非常低 (3)电源关掉后信息不会丢失,5.6 磁盘存储器,5.6 磁盘存储器,提高磁盘I/O速度的主要途径: 5.6.1选择性能好的磁盘 5.6.2采用好的磁盘调度算法 5.6.3设置磁盘高速缓存(Disk Cache) 5.6.4其它方法 5.6.5采用高度可靠、快速的容量磁盘系统廉价磁盘冗余阵列,5.6.1 磁盘性能,磁盘的结构 数据的组织 磁盘类型 访问时间,移动臂,盘面 m-1,磁盘结构,磁盘的物理结构: 盘片固定在旋转轴上 轴等速地转动带动磁盘组转动确定扇区位置 盘片分上下两个盘面 盘面上分布若干个同心圆磁道 盘面划分区域相同的扇面,磁道上为扇区 磁盘组中盘面上序号相同磁道构成一个柱面 最上最下两个盘面作为伺服面,磁盘的信息组织,为在磁盘上存储信息,必须对磁盘进行格式化。 每个磁道上扇区存有两类信息;记录信息(数据字段)和控制信息(由标识字段和间隙构成)。 以微机上常用的温盘(温彻斯特)上每个磁道30个扇区为例,其信息组织形式如下页所示。,磁盘的信息组织,图5-24 磁盘的格式化,磁盘的类型;有固定头磁盘和移动头磁盘:,固定头磁盘;每条磁道上一个读/写头,可并行读/写,I/O速度高,但价格较昂贵。,移动头磁盘;每个盘面仅有一个磁头,磁头能够移动以进行寻道,只能串行读/写,I/O速度相对较慢。,移动头结构简单,广泛应用于中小型磁盘设备,特性见表。,磁盘类型,磁盘的访问时间,寻道时间:TS=m*n+S m:常量,n:磁道数,s:磁盘启动时间。 旋转延迟时间Tr: 指定扇区旋转到磁头下所需时间。 设每转r秒,则Tr1/2r(均值) 数据传输时间Ttb/rN b:读写字节数 N:每道上的字节数 访问时间:Ta=Ts+Tr+Tt=m*n+S+1/2r+b/rN 可见,由于特定磁盘,只有集中放数据,集中读写(b大)才能更好提高传输效率。,磁盘的访问时间-例,假定一个典型的磁盘中,寻道的时间Ts平均为4ms,转速为 7500r/min(1圈的时间就为8ms,平均旋转延迟为8ms/2=4ms),每个磁道有500个扇区,每个扇区512个字节; 若希望读取一个包含2500个扇区,大小为1.25MB的文件(1250KB/0.5KB/扇区 = 2500扇区)。,顺序读取方式; 平均寻道时间:4ms 旋转延迟时间:4ms 读500个扇区时间:8ms 读取一个磁道数据的时间为:16ms。 由于连续不再需要寻道,后续磁道旋转延迟+读磁道数据可以在 4ms+8ms = 12ms 内完成,整个所需时间:16ms + 48ms(4x12ms) = 64ms = 0.064s。,磁盘的访问时间-例,磁盘的访问时间-例,随机读取方式;数据扇区随机分布在各磁道上;对每个扇区都应考虑Ta 三个部分时间,即有: 平均寻道时间:4ms 旋转延迟时间:4ms,读取一个扇区时间:,一个扇区数据读取时间就为:8.016ms; 总时间:2500 x 8.016ms = 20040ms = 20.04s。,显然,随机方式时间大大地高于顺序方式时间 20.04s/0.064s 300倍!,5.6.2 磁盘调度算法,目标:减少平均寻道时间 一、FCFS(Fisrt Come First Server) 特点:简单,寻道时间长,相当于随机访问模式。 二、SSTF(最短寻道优先)“饥饿现象” 三、扫描算法。 1.SCAN算法 2.CSCAN算法 3.N-STEP-SCAN调度算法 4.FSCAN调度算法,假定磁盘有200个磁道,当前有9个访问者(进程)先后提出I/O操作,需要访问的磁道分别为:55,58,39,18,90,160,150,38,184;又假定当前磁头位置为100#。,5.6.2 磁盘调度算法,0 18 38 39 55 58 90 150 160 184 199,平均寻道长度55.3,请求序列:55, 58, 39, 18, 90, 160, 150, 38, 184;,100,平均寻道长度55.3,FCFS,最短寻道时间优先(SSTF),0 18 38 39 55 58 90 150 160 184 199,100,平均寻道长度27.5,请求序列:55, 58, 39, 18, 90, 160, 150, 38, 184;,扫描算法 SCAN,SSTF算法虽然能获得较好的寻道性能,但却可能导致某个进程发生“饥饿”(Starvation)现象。因为只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必然优先满足 SCAN 考虑了两个方面问题; 优先考虑磁头当前的移动方向; 与当前磁道号距离最短;,这样就避免了饥饿现象。由于这种算法使得磁臂移动规律颇似电梯的运动,因而也称为电梯调度算法。,扫描算法 SCAN,0 18 38 39 55 58 90 150 160 184 199,平均寻道长度27.8,100,请求序列:55, 58, 39, 18, 90, 160, 150, 38, 184;,循环扫描算法CSCAN,SCAN算法问题;,为了减少这种延迟,规定磁头单向读/写运动(如只由内向外),完成读写后立即返到最小/大磁道号的位置(将最小磁道号紧接着最大磁道号构成循环,进行循环扫描),再进行扫描。即CSCAN算法。,j,磁道号请求队列: i j k m,一直在该方向完成之后,再回头逐个处理,直到再选择j,被延迟读写。,循环扫描算法CSCAN,0 18 38 39 55 58 90 150 160 184 199,平均寻道长度35.8,100,请求序列:55, 58, 39, 18, 90, 160, 150, 38, 184;,1. NStepSCAN 粘臂(Armstickiness) :在SSTF、 SCAN及CSCAN几种调度算法中,都可能会出现磁臂停留在某处不动的情况,由于连续对某磁道访问引起的垄断访问,将磁盘请求队列分为长为N的子队列m个,如下图处理。当N=1时,为FCFS。当N取很大时,接近SCAN.,N-STEP-SCAN调度算法,N-STEP-SCAN调度算法,2.FSCAN:是N步SCAN算法的简化,即FSCAN只将磁盘请求队列分成两个子队列。一个是由当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。在扫描期间,将新出现的所有请求磁盘I/O的进程,放入另一个等待处理的请求队列。这样,所有的新请求都

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论