您好,欢迎访问三七文档
第7章设备管理7.1设备管理概述7.2I/O控制方式7.3I/O缓冲7.4设备分配与设备处理7.5I/O管理中的几个重要思想7.6磁盘I/O7.7小结7.1设备管理概述一、I/O设备的分类1.按从属关系分类(1)系统设备指在操作系统生成时已经登记在系统中的标准设备。如键盘、显示器、打印机等。(2)用户设备指操作系统生成时未登记入系统的非标准设备。如绘图仪、扫描仪等。2.按传输速率分类I/O设备分类(1)低速设备指传输速率为每秒钟几个字符至数百个字节的设备,如键盘、鼠标、语音输入等。(2)中速设备指传输速率为每秒钟数千个字节至数万个字节的设备,如针式打印机、激光打印机等。(3)高速设备指传输速率为数兆字节的设备,如磁带机、磁盘机、光盘机等。(1)存储设备是计算机用来保存各种信息的设备,如磁盘、磁带等。(2)I/O设备是向CPU传输信息或输出CPU加工处理信息的设备。例如:键盘,CRT3.按使用特性分类I/O设备分类I/O设备分类4.按共享属性分类(1)独占设备指在一段时间内只允许一个用户(进程)访问的设备。也就是在某个用户(进程)对设备的一次使用过程(包含多次I/O操作)中,不允许其他用户(进程)使用该设备。一般是低速的I/O设备,如打印机等。因为独占设备属于临界资源,所以多个并发进程必须互斥地访问独占设备。(2)共享设备指在一段时间内允许多个进程同时访问的设备,多个进程以交叉的方式来使用设备,其资源利用率高,如硬盘。(3)虚拟设备指通过虚拟技术将一台独占设备变换为若干台供多个用户(进程)共享的逻辑设备。一般可以利用假脱机(SPOOLing)技术实现虚拟设备。按设备共享属性分类I/O设备分类5.按数据传送的基本单位分类(1)字符设备以字节为单位传送数据,如键盘。传输速度慢。(2)块设备以块(如512B)为单位传送数据,如磁盘。传输速度快。是可寻址的和可随机访问的设备7.1设备管理概述二、设备管理的2个重要目标:效率、通用性(1)效率提高设备的利用率和I/O效率充分利用各种技术(中断、DMA、通道、缓冲等)提高CPU与设备、设备与设备之间的并行工作能力,充分利用资源,提高资源利用率,提高I/O处理的效率并行性均衡性(使设备充分忙碌)设备管理的2个重要目标(2)通用性为用户提供方便、统一的接口,希望能用统一的方式处理所有的设备屏蔽硬件细节(设备的物理细节,错误处理,不同I/O的差异性),使用户摆脱繁琐的程序设计负担方便性接口的友好性透明性7.1设备管理概述三、设备管理的功能(1)设备分配。按照设备类型和相应的分配算法决定将I/O设备分配给哪一个要求使用该设备的进程。凡未分配到所需设备的进程被放入一个等待队列。(2)设备处理。设备处理程序实现CPU和设备控制器之间的通信。即当CPU向设备控制器发出I/O指令时,设备处理程序应启动设备进行I/O操作,并能对设备发来的中断请求作出及时的响应和处理。(3)实现其他功能。包括对缓冲区的管理功能及实现设备独立性。7.2I/O控制方式I/O控制方式:主机和I/O设备之间的数据传送方式4种I/O控制方式:(1)程序直接控制方式(轮询)(2)中断方式(3)DMA方式(4)通道方式发展的思路:解放CPU7.2I/O控制方式1.程序直接控制方式(轮询)由用户进程控制,不断测试设备状态缺点:忙等待CPU与I/O设备只能串行工作7.2I/O控制方式2.中断方式为了减少设备驱动程序不断询问控制器状态寄存器的开销当I/O操作结束后,由设备控制器主动通知设备驱动程序不足:数据传送是在中断处理时由CPU控制完成每次传输的数据量小,比如1个字节或1个字。尽管,通过在I/O控制器中设置字符缓冲区而增大每次的数据传输量可能造成数据由于CPU来不及取而丢失(当外设速度快时)7.2I/O控制方式3.DMA方式在内存与I/O设备之间直接传送数据块CPU在开始时向设备发“传送一块”命令,数据传送由DMA控制器控制完成,每次1个数据块传送结束时,由DMA控制器给CPU发送一个中断信号DMA的功能可以以独立的DMA部件在系统I/O总线上完成,或者整合到I/O部件中完成DMA方式DMA方式与中断的主要区别:中断方式是在数据缓冲寄存器满后,发中断请求,CPU进行中断处理DMA方式则是在所要求传送的数据块全部传送结束时要求CPU进行中断处理大大减少了CPU进行中断处理的次数中断方式的数据传送是由CPU控制完成的DMA方式则是在DMA控制器的控制下不经过CPU控制完成的7.2I/O控制方式4.通道方式通道:独立于CPU的专门负责数据输入/输出传输工作的处理机,对外部设备实现统一管理,代替CPU对输入/输出操作进行控制,从而使输入/输出操作可与CPU并行操作。引入通道的目的:为了使CPU从I/O事务中解脱出来,同时为了提高CPU与设备、设备与设备之间的并行工作能力数据传送的方向、长度、内存地址等都由通道控制。7.3I/O缓冲一、什么是I/O缓冲?缓冲(buffering):为了缓解通信双方速度不匹配而引入的一个中间环节。I/O缓冲:在CPU和I/O设备之间设立缓冲区,用以暂存CPU与外设之间交换的数据,从而缓和CPU与外设速度不匹配所产生的矛盾。其实,凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。7.3I/O缓冲引入I/O缓冲的目的:(1)改善CPU与I/O设备之间速度不匹配的矛盾(2)减少对CPU的中断频率,放宽对中断响应时间的限制(3)减少访问I/O设备(如磁盘)的次数(4)提高CPU与I/O设备之间的并行性7.3I/O缓冲I/O缓冲的实现方式:(1)硬件缓冲I/O设备或控制器内部设置的纯硬件缓冲区(2)软件缓冲为I/O在内存开辟的缓冲区,由软件来管理容量大,使用灵活下面要讲的是OS采用的I/O缓冲技术。7.3I/O缓冲二、OS为什么要引入I/O缓冲?【例】应用程序要从磁盘中读一块数据(512B)到自己的地址空间1000-1511(虚拟地址)。在执行I/O命令后阻塞,等待数据变成可用的。存在的问题:该进程的虚拟地址单元1000-1511必须锁定在内存中,不能换出,干扰了OS的交换决策;否则有可能造成单进程死锁。即进程发出I/O命令后阻塞,若在开始I/O操作之前被换出,则I/O操作也会阻塞,以等待该进程被换入。7.3I/O缓冲三、I/O缓冲的种类1.单缓冲当用户进程发出I/O请求时,操作系统在内存的系统空间为该操作分配一个缓冲区输入:数据输入到系统缓冲区,传送完成时,用户进程将其复制到用户空间输出:用户进程将数据复制到系统缓冲区,然后由OS输出。如果连续输入/输出多个数据块呢?I/O缓冲的种类2.双缓冲由OS指定2个缓冲区当用户进程从一个缓冲区取数据(或向一个缓冲区写数据)时,OS可以向另一个缓冲区输入数据(或输出另一个缓冲区的数据)。I/O缓冲的种类3.缓冲池又称循环缓冲多个缓冲区构成循环队列类似于生产者/消费者问题7.4设备分配与设备处理一、设备分配当某进程向系统提出I/O请求时,设备分配程序按一定策略分配设备、控制器和通道,形成一条数据传输通路,以供主机和设备间信息交换。设备分配1.与设备分配有关的数据结构设备类表系统中拥有1张设备类表每类设备对应于表中一栏,包括内容有:设备类、总台数、空闲台数、设备驱动程序入口和设备表起始地址等。设备表每一类设备都有各自的设备表,用来登记这类设备中每一台设备的状态,包含的内容有:物理设备名、逻辑设备名、占有设备的进程号、已分配/未分配、好/坏等。与设备分配有关的数据结构采用通道结构的系统中设备分配采用的数据结构:系统设备表、通道控制表、控制器控制表和设备控制表系统建立1张系统设备表,记录配置在系统中的所有物理设备的情况。每个通道、控制器、设备各设置一张表,记录各自的地址(标识符)、状态(忙/闲)、等待获得此部件的进程队列指针、及一次分配后相互链接的指针,以备分配和执行I/O时使用。具体内容如下:与设备分配有关的数据结构设备控制块DCB(设备控制表DCT)记录本设备的使用情况。主要内容:设备类型、设备标识符、设备状态、与此设备相连的COCT、重复执行的次数或时间、等待队列的队首和队尾指针控制器控制块COCB(控制器控制表COCT)通道控制块CHCB(通道控制表CHCT)系统设备表SDT整个系统一张表,记录系统中所有I/O设备的信息,表目包括:设备类型、设备标识符、设备驱动程序入口、DCT表指针等,是分配程序首先查找的数据结构。设备分配2.设备分配策略由于在多道程序系统中,进程数多于资源数,引起资源的竞争。因此,要有一套合理的分配策略。考虑的因素:I/O设备的固有属性I/O设备的分配算法设备分配的安全性与设备的无关性设备分配策略(1)独占设备的分配所谓独占式共享使用设备是以一次设备使用过程(包含多次I/O操作)为单位使用设备在申请设备时,如果设备空闲,就将其独占,不再允许其他进程申请使用,一直等到该设备被释放,才允许被其他进程申请使用考虑效率问题,并且避免由于不合理的分配策略造成死锁静态分配:在进程运行前,完成设备分配;运行结束时,收回设备缺点:设备利用率低动态分配:在进程运行过程中,当用户提出设备要求时,进行分配,一旦停止使用立即收回优点:设备利用率高;缺点:分配策略不好时,产生死锁设备分配策略(2)分时式共享设备的分配所谓分时式共享就是以一次I/O操作为单位分时使用设备,不同进程的I/O操作请求以排队方式分时地占用设备进行I/O由于同时有多个进程同时访问,且访问频繁,因此要考虑多个访问请求到达时服务的顺序,使平均服务时间越短越好(3)以SPOOLing方式使用外设SPOOLing技术是在批处理操作系统时代引入的,即所谓假脱机输入/输出技术。例如:所有输出数据已经写到文件当中,并排到打印输出队列,打印进程申请占用打印机后,成批读出文件中数据,并送打印机打印出去打印请求队列(含要打印文件)打印daemon进程打印机设备分配策略设备分配策略常用的I/O设备分配算法:先来先服务优先级高者优先设备请求队列:当多个进程对同一设备提出I/O请求时,系统响应后,为它们分别建立I/O请求包,按先来先服务或者优先级高者优先的原则组织成设备请求队列。设备分配程序总是把设备首先分配给队首进程。具体分配是从设备类表或者系统设备表开始顺序查找相应的数据结构进行的。7.4设备分配与设备处理二、设备处理1.设备驱动程序每类设备对应1个设备驱动程序,以控制I/O传输任务:主要负责接收和分析从设备分配转来的信息,把用户I/O请求转换为具体要求后,发送给设备控制器,启动设备执行。设备驱动程序设备驱动程序的处理过程:(1)将抽象I/O请求转为具体要求(2)检查I/O请求的合法性(3)读出和检查设备的状态(4)传送必要的参数,预置设备的初始状态(5)设置设备的工作方式(在有通道的系统中,构造通道程序)(6)启动设备进行I/O操作(7)响应来自设备的中断设备处理2.I/O中断处理程序处理来自设备或通道的中断包括正常结束,或异常结束7.5I/O管理中的几个重要思想一、设备独立性(DeviceIndependence)设备独立性是I/O软件设计中的一个重要目标。设备独立性的含义:用户在编写程序时,能独立于具体使用的物理设备,甚至不关心设备类型。①应用程序与给定设备类型的哪一台具体设备无关;②应用程序尽可能地与设备类型无关。设备独立性设备独立性的实现方法:(1)引入逻辑设备由OS管理一个逻辑设备映射表,记录逻辑设备对应的物理设备。用户程序对I/O设备的请求不指定特定的设备,而采用逻辑设备名,程序执行时由OS完成逻辑设备到物理设备的映射例如:用户申请使用设备时,只需要指定设备类型,而无须指定具体物理设备,系统根据当前的请求,及设备分配的情况,在相同类别设备中,选择一个空闲设备,并将其分配给一个申请进程。(2)统一命名,统一接口对不同的设备采取统一的操作方式例如:把设备看作文件,所有设备和文件使用相同的方式(路径名定位)7.5I/O管理中的几个重要思想二、SPOOLing
本文标题:第7章-设备管理
链接地址:https://www.777doc.com/doc-1314318 .html