资源预览内容
第1页 / 共30页
第2页 / 共30页
第3页 / 共30页
第4页 / 共30页
第5页 / 共30页
第6页 / 共30页
第7页 / 共30页
第8页 / 共30页
第9页 / 共30页
第10页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2. 2. 设备映射设备映射为了增加软件对运行平台的适应性,现为了增加软件对运行平台的适应性,现代大多数据操作均支持应用软件对设备的无代大多数据操作均支持应用软件对设备的无关性。关性。设备的无关性是指软件所需的设备与具设备的无关性是指软件所需的设备与具体的设备没有直接的联系。体的设备没有直接的联系。1第一页,共30页。为了实现设备的无关性,引上入了丙为了实现设备的无关性,引上入了丙个基本概念:个基本概念: 逻辑设备逻辑设备: :对某一类物理设备的抽象;对某一类物理设备的抽象; 物理设备物理设备: :某一个具体的物理设备;某一个具体的物理设备;在应用软件中指定逻辑设备,操作系在应用软件中指定逻辑设备,操作系统再根据用户的指定选定具体的物理设统再根据用户的指定选定具体的物理设备进行操作。备进行操作。2第二页,共30页。3. 3. 设备驱动设备驱动设备驱动程序与具本的硬件密切相关,设备驱动程序与具本的硬件密切相关,负责对设备的具体操作。负责对设备的具体操作。4. 4. I/OI/O缓冲区管理缓冲区管理由于外设的速度较由于外设的速度较CPUCPU慢很多,为了慢很多,为了提高提高CPUCPU的利用率,系统引入了的利用率,系统引入了I/OI/O缓冲缓冲区管理。区管理。3第三页,共30页。4.1.2 4.1.2 设备设备管理分层模型管理分层模型大多数现代操作大多数现代操作系统对设备的管理系统对设备的管理都采用分层的管理都采用分层的管理模型。模型。用户进程设备硬件无关层设备硬件相关层设备硬件4第四页,共30页。4.1.3 4.1.3 I/OI/O控制方式控制方式1. 1. 程序程序I/OI/O方式方式由用户程序直接控制对外设的输入输出操由用户程序直接控制对外设的输入输出操作。作。2. 2. 中断方式中断方式 程序控制方式有一个严重的缺点:独程序控制方式有一个严重的缺点:独占占CPUCPU,使,使CPUCPU的速度降到外设的水平,的速度降到外设的水平,不能充分发挥不能充分发挥CPUCPU的性能,为了克服这个的性能,为了克服这个5第五页,共30页。缺点,引入了中断控制传输方式。缺点,引入了中断控制传输方式。中断控制方式,也称中断传送方式。中断控制方式,也称中断传送方式。当外设准备好后,向当外设准备好后,向CPUCPU发出中断请求,发出中断请求,使使CPUCPU中断现行程序的执行,转去执行为中断现行程序的执行,转去执行为外设服务的输入或输出程序,执行完对外设服务的输入或输出程序,执行完对外设的输入或输出操作后,外设的输入或输出操作后,CPUCPU再继续执再继续执行原来的程序。行原来的程序。 6第六页,共30页。3. 3. DMADMA方式方式DMA( DMA( Direct Direct Memory Memory AccessAccess) )即直接存储即直接存储器存取方式,它是在不需要器存取方式,它是在不需要CPUCPU介入的情况下,由介入的情况下,由专门的硬件(专门的硬件(DMADMA控制器)直接控制数据的传控制器)直接控制数据的传送。送。DMADMA方式适合于高速外设与内存之间的方式适合于高速外设与内存之间的批量数据传送,例如磁盘与内存之间的数据批量数据传送,例如磁盘与内存之间的数据交换。交换。 7第七页,共30页。4. 4. I/OI/O通道通道方式方式 通道方式通过执行通道程序控制外设与内存通道方式通过执行通道程序控制外设与内存进行数据交换。进行数据交换。CPUMemory通道通道I/O接口接口外设外设 通知通知“ “通道通道” ”启动启动 执行程序执行程序 执行通道程序执行通道程序8第八页,共30页。4.2 4.2 设备分配设备分配1. 1. 设备控制块设备控制块UCBUCB4.2.1 4.2.1 相关的数据结构相关的数据结构每个每个设备都有一个设备都有一个UCBUCB,它是设备,它是设备存在的标志,存在的标志,UCBUCB的信息主要有:的信息主要有:(1) (1) 设备标识;设备标识;9第九页,共30页。(2) (2) 设备状态;设备状态;(3) (3) 相连的控制器;相连的控制器;(4) (4) 重试次数重试次数(I/O(I/O出错时出错时) );(5) (5) 占有占有设备的进程;设备的进程;(6) (6) 设备等待队列;设备等待队列;(7) (7) 通路等待队列通路等待队列;10第十页,共30页。2. 2. 控制器控制块控制器控制块CUCBCUCB3. 3. 通道控制块通道控制块CCBCCB4. 4. 系统设备表系统设备表(SDT)(SDT)4.2.2 4.2.2 设备分配算法设备分配算法1. 1. 设备分配算法设备分配算法(1) (1) 先来先服务先来先服务(2) (2) 优优先级高者优先服务先级高者优先服务11第十一页,共30页。2. 2. 独占独占设备的分配设备的分配独占性独占性设备是指在一个时间段内只能有一设备是指在一个时间段内只能有一个进程占有并使用。个进程占有并使用。进程使用独占性进程使用独占性设备过程为:申请、使设备过程为:申请、使用、释放。用、释放。3. 3. 共享型共享型设备的分配设备的分配12第十二页,共30页。4.3 4.3 I/OI/O缓冲技术缓冲技术为了提高系统的为了提高系统的I/OI/O性能,通常要采用性能,通常要采用I/OI/O缓冲区,例如:打印缓冲区、磁盘缓冲缓冲区,例如:打印缓冲区、磁盘缓冲区。区。1.1.使用缓冲区使用缓冲区(1)(1)缓解处理器与设备之间不匹配的矛盾缓解处理器与设备之间不匹配的矛盾13第十三页,共30页。(2)(2)实现设备与处理器一定程度上的并行实现设备与处理器一定程度上的并行(3)(3)减少设备的中断频率减少设备的中断频率, ,放宽对中断响应放宽对中断响应的限制的限制; ;引入缓冲区技术后引入缓冲区技术后, ,系统可以利手提前读系统可以利手提前读和延迟写技术改善系统性能和延迟写技术改善系统性能; ;2.2.缓冲存储器类型缓冲存储器类型: :硬件缓冲和软件缓冲硬件缓冲和软件缓冲14第十四页,共30页。3.3.缓冲区组织形式缓冲区组织形式 单缓冲单缓冲 双缓冲双缓冲 循环缓冲循环缓冲 缓冲池缓冲池15第十五页,共30页。操作系统通常提供两种缓冲池操作系统通常提供两种缓冲池: : 一种用于块设备一种用于块设备: :通常较大通常较大 一种用于字符设备一种用于字符设备: :通常较小通常较小缓冲区属于操作系统的空间缓冲区属于操作系统的空间, ,用户不能直用户不能直接访问。接访问。16第十六页,共30页。4.4.缓冲技术的实现缓冲技术的实现缓冲区由系统管理,用户要使用向系缓冲区由系统管理,用户要使用向系统请请。统请请。(1) (1) 输入设备输入设备数据从输入设备到缓冲由设备驱动程序数据从输入设备到缓冲由设备驱动程序完成,缓冲区到用户由操作系统完成。完成,缓冲区到用户由操作系统完成。17第十七页,共30页。(2) (2) 输出设备输出设备数据从用户到缓冲区由操作系统完成数据从用户到缓冲区由操作系统完成, ,从从缓冲区到输出设备由设备驱动程序完成。缓冲区到输出设备由设备驱动程序完成。(3) (3) 输入输入/ /输出设备输出设备18第十八页,共30页。4.4 4.4 虚拟设备虚拟设备虚拟设备:虚拟设备:从具体设备中抽象出来的设从具体设备中抽象出来的设备。备。1. 1. 虚拟设备技术的工作原理虚拟设备技术的工作原理用户虚拟设备物理设备共享独立19第十九页,共30页。2. 2. 虚拟设备的实现虚拟设备的实现当用户需要进行当用户需要进行I/OI/O操作时,系统为其操作时,系统为其分配一个分配一个I/OI/O缓冲区,用户的缓冲区,用户的I/OI/O操作都操作都是针对这个是针对这个I/OI/O缓冲区进行的,这样的缓冲区进行的,这样的缓冲区有多个,系统再调用实际的设备缓冲区有多个,系统再调用实际的设备对每个缓冲区进行对每个缓冲区进行I/OI/O操作。操作。20第二十页,共30页。3.3. Spooling Spooling系统系统Simultaneous Peripheral Operations On-LineSimultaneous Peripheral Operations On-Line 中文直译:联机情况下同时进行的外围设中文直译:联机情况下同时进行的外围设备操作,通常称其为备操作,通常称其为“假脱机假脱机”操作。操作。其主要原理:其主要原理:低速的外设先将数据高速设备,然后再低速的外设先将数据高速设备,然后再进入系统。进入系统。21第二十一页,共30页。4.5 4.5 磁盘设备的管理磁盘设备的管理4.5.1 4.5.1 磁盘设备磁盘设备1. 1. 寻道时间寻道时间2. 2. 转速转速3. 3. 传输延时传输延时4. 4. 缓存缓存22第二十二页,共30页。4.5.2 4.5.2 磁盘调度算法磁盘调度算法1. 1. 先来先服务原则先来先服务原则FCFSFCFS这是最简单最公平的调度算法,但效率这是最简单最公平的调度算法,但效率低下。低下。2. 2. 最短寻道时间优先算法最短寻道时间优先算法SSFTSSFT3. 3. 扫扫描算法描算法SCANSCAN23第二十三页,共30页。扫扫描算法也是称电梯算法。先将描算法也是称电梯算法。先将与磁头移动方向一致的数据读完,与磁头移动方向一致的数据读完,再反方向读取。再反方向读取。4.4.N N步扫步扫描算法描算法N-SCANN-SCAN4.5.3 4.5.3 磁盘高速缓存磁盘高速缓存24第二十四页,共30页。4.6 4.6 LinuxLinux的设备管理的设备管理LinuxLinux中对设备的管理主要采用两种方中对设备的管理主要采用两种方式:式: 轮询轮询(Polling)(Polling):周期性地查询设备的工:周期性地查询设备的工作状态;作状态; 中断中断(Interrupt)(Interrupt):25第二十五页,共30页。LinuxLinux将设备分为块设备、字符设备、网络将设备分为块设备、字符设备、网络接口设备三类。接口设备三类。LinuxLinux中,每台设备都有一个主设备号中,每台设备都有一个主设备号和一个从设备号。和一个从设备号。 主设备号:描述与设备对应的设备驱动程主设备号:描述与设备对应的设备驱动程序。序。 从设备号:描述一个驱动程序控制的不同从设备号:描述一个驱动程序控制的不同设备。设备。26第二十六页,共30页。4.6.1 4.6.1 LinuxLinux驱动程序的设计框架驱动程序的设计框架1. 1. 设备设备的注册和注销的注册和注销 对字符对字符设备用设备用register_chardev( )register_chardev( )函数;函数; 对块对块设备用设备用register_blkdev( )register_blkdev( )函数;函数;27第二十七页,共30页。2. 2. 对对设备设备的操作的操作(1) (1) 设备设备的打开与释放的打开与释放在在LinuxLinux中将设备当作文件对待,故也中将设备当作文件对待,故也用用Open()Open()函数,例如,函数,例如,lp_openlp_open()()、hd_openhd_open()()。释放设备函数释放设备函数release()release() ,例如,例如,lp_releaselp_release()()、tty_releasetty_release()()。28第二十八页,共30页。(2) (2) 设备设备的读写操作的读写操作在在LinuxLinux中采用相应设备的读写函数进中采用相应设备的读写函数进行操作,例如对于虚终端,行操作,例如对于虚终端,vcs_readvcs_read()()、vcs_writevcs_write()()。(3) (3) 设备的控制设备的控制通过通过ioctl()ioctl()函数,例如,函数,例如,cdrom_ioctl()cdrom_ioctl()。29第二十九页,共30页。30第三十页,共30页。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号