第7章 第1讲 设备管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1设备管理主讲教师:赵俊峰email:zhaojf@sei.pku.edu.cn北京大学本科课程设备管理概述设备的特点设备的分类设备管理的目标和任务I/O硬件I/O软件与设备有关技术I/O设备分配磁盘调度计算机系统中除了CPU与内存之外的所有输入、输出设备计算机的“感官”与“反应器官”种类多、速度慢CPU与I/O的速度差别大因此要尽量使两者交叠运行减少因速度差异造成的整体性能开销设备管理概述(1)I/O性能经常成为系统性能的瓶颈CPU性能不等于系统性能响应时间也是一个重要因素CPU性能越高,与I/O差距越大弥补:更多的进程进程切换多,系统开销大(2)操作系统庞大复杂的原因之一资源多、杂,并发,均来自I/O外设种类繁多,结构各异输入输出数据信号类型不同速度差异很大(3)与其他功能联系密切,特别是文件系统(1)按功能特性分输入输出型设备(交互型设备)键盘鼠标显示器打印机音箱…数据通信设备网卡(有线、无线、…)…存储型设备磁盘磁带…设备管理概述——设备分类(2)按数据组织分块设备以数据块为单位存储、传输信息(主要是存储型)字符设备以字符为单位存储、传输信息(主要是交互型)设备管理概述——设备分类(3)按资源分配角度分独占设备在一段时间内只能有一个进程使用的设备,一般为低速I/O设备(如打印机,磁带等)共享设备在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高(如硬盘)各类设备的差别:数据传输率控制方式的复杂性数据传输单位数据表示应用出错条件(1)实现I/O功能按照用户的请求,控制设备的各种操作完成I/O设备与内存之间的数据交换昀终完成用户的I/O请求具体包括:设备分配与回收设备驱动程序设备中断处理缓冲区管理设备管理概述——目标和任务(2)方便用户使用向用户提供使用外部设备的方便接口使用户摆脱繁琐的编程负担方便性友好界面透明性逻辑设备与物理设备、屏蔽硬件细节(设备的物理细节,错误处理,不同I/O的差异性)设备管理概述——目标和任务(3)提高系统效率充分利用各种技术(通道,中断,缓冲等)提高CPU与设备、设备与设备之间的并行工作能力充分利用资源,提高资源利用率并行性均衡性(使设备充分忙碌)设备管理概述——目标和任务(4)提供设备及信息保护设备传送或管理的数据应该是安全的、不被破坏的、保密的设备管理概述I/O硬件设备接口设备连接模式I/O控制方式I/O软件与设备有关技术I/O设备分配磁盘调度I/O设备一般由机械和电子两部分组成分开处理可以提供更加模块化、更加通用的设计(1)物理设备(机械)机械部分是设备本身(物理装置)(2)设备控制器(电子)电子部分叫做设备控制器或适配器完成设备与主机间的连接和通信在小型和微型机中,它常采用印刷电路卡插入计算机主板上的总线插槽通过若干接口寄存器或接口缓冲区与CPU通信I/O硬件——设备的组成一个I/O单元由两部分组成:机械部分和电子部分。把它们分开,以提供更加模块化、更通用的设计。机械部分电子部分电子部分I/O硬件——设备的组成I/O硬件——I/O设备控制器设备控制器的主要任务如下:控制设备的物理运行将序列字位流转化为字节块流进行纠错操作设备控制器与CPU之间的数据交互通过设备寄存器进行设备寄存器附着在设备控制器上通过向寄存器的写入,OS可以向设备发出输入输出命令,或把设备关闭或打开通过读取这些寄存器的内容,OS可以获得设备状态信息I/O硬件——I/O设备控制器操作系统将命令写入控制器寄存器中,以实现输入/输出例如:IBMPC的软盘控制器可接收15条命令,READ、WRITE、FORMAT、SEEK、RECALIBRATE,命令可以带参数。它们被一起送入控制器的寄存器中当控制器接受一条命令后,可独立于CPU完成指定操作,CPU可以转去执行其它运算命令完成时,控制器产生一个中断,CPU响应中断,控制转给操作系统CPU通过读控制器的状态寄存器中的信息,获得操作结果和设备状态I/O硬件——I/O设备控制器控制器与设备之间的接口常常是一个低级接口例如软盘,可以按每个磁道8扇区,每个扇区512个字节进行格式化实际从驱动器出来的却是一连串的位流,以一相位编码(preamble)开始,然后是一个磁道的4096位(512×8),昀后是检查和或错误校验码(Error—C一C:ECC)相位编码是在对磁盘格式化时写上的,它包括柱面号和扇区号,扇区的大小和类似的一些数据I/O硬件——I/O设备控制器控制器的任务是把串行的位流转换为字节块,并进行必要的错误修正。首先,控制器按位进行组装然后存入控制器内部的缓冲区中形成以字节为单位的块在对块验证检查,并证明无错误时,再将它复制到主存中I/O硬件——I/O设备接口接口的功能按照计算机主机与设备的约定格式和过程接受或发送数据和信号工作流程一次完整的I/O传送过程,典型地由一长列低级信号组成,这些信号启动设备所执行的操作,并通过测试设备状态来监控设备操作的进展这些操作通过对输入输出设备接口寄存器组的读写来完成I/O硬件——I/O设备接口接口标准化键盘专用接口标准:PS/2,USB打印机:Centronics,USB显示器:VGA,DVI,HDMI,DP硬盘:IDE/SATA/SCSI/光纤通道PS/2Centronics光纤通道SCSISATAIDEUSB每个设备控制器都有一些寄存器用来与CPU通信。通过往这些寄存器中写入不同的值,OS能命令该设备去执行发送数据、接收数据、打开、关闭等操作;OS也能通过读取这些寄存器的值来了解设备的当前状态。此外,许多设备还有一个数据缓冲区供OS读写。CPU外部设备控制逻辑电路控制寄存器状态寄存器数据寄存器I/O硬件——I/O地址现在的问题是:CPU如何与设备控制器当中的寄存器以及数据缓冲区来进行通信?因为这不是普通的内存访问!方法有三种:I/O独立编址;内存映像编址;混合编址。1.I/O独立编址基本思路:给控制器中的每一个寄存器分配一个唯一的I/O端口(I/Oport)编号,称为I/O端口地址,然后用专门的I/O指令对端口进行操作;这些端口地址所构成的地址空间是完全独立的,与内存的地址空间没有关系。例如:INR04表示读入I/O端口地址为4的内容;MOVR04表示读入内存地址为4的内容;优点:I/O设备不占用内存地址空间,而且程序设计时,易于区分是对内存操作还是对I/O端口操作。例子:8086/8088,给I/O端口分配的地址空间64K,0000H~FFFFH,只有IN和OUT指令进行读写操作。2.内存映像编址基本思路:把所有控制器当中的每一个寄存器都映射为一个内存单元,专门用于I/O操作(功能上),对这些单元的读写操作即为普通的内存访问操作。端口地址空间与内存的地址空间统一编址,前者是后者的一部分,一般位于后者的顶端部分。优点:编程方便,无需专门的I/O指令;对普通的内存单元可进行的所有操作指令均可作用于I/O端口,如TEST指令;无须专门的保护机制来防止用户进程执行I/O。3.混合编址基本思路:对于设备控制器中的寄存器,采用独立编址的方法;而对于设备的数据缓冲区,采用内存映像编址的方法。例如:Pentium,把内存地址空间640K~1M保留作为设备的数据缓冲区,另外,还有一个独立的I/O端口地址空间,从0到64K。I/O独立编址内存映像编址混合编址PC机上的部分I/O端口地址(本图摘自Silberschatz,GalvinandGagne:“OperatingSystemConcepts”)设备管理概述I/O硬件I/O软件I/O软件的目标中断处理程序设备驱动程序设备独立的软件用户空间的I/O软件与设备有关技术I/O设备分配磁盘调度为了更好地管理I/O设备,需要哪一些相关的软件?这些软件各自完成何种功能,相互的关系、结构又如何?I/O设备管理软件的设计水平决定了设备管理的效率!I/O软件—基本思想I/O软件的基本思想是按分层的思想构成较低层软件要使较高层的软件独立于硬件的特性较高层软件则要向用户提供一个友好的、清晰的、简单的、功能更强的接口I/O软件结构中断处理程序设备驱动程序———代码量上看,是I/O管理主要部分与设备无关的操作系统软件——功能上看,是I/O管理主要部分用户层软件I/O软件—I/O软件的目标I/O软件总体设计目标:高效率通用性在设计I/O软件时的一个关键概念是设备独立性基本思想:使得用户在编写程序、访问各种I/O设备时,无需事先指定特定的设备类型,即同一段程序可以访问不同类型的I/O设备。例如:一个读取文件的程序,不必做任何修改,即可从软盘、硬盘或CD-ROM上读取该文件各种类型的设备之间的差异由OS来处理,对用户是透明的;出错处理是I/O软件的另一个目标一般来说,在I/O操作过程中,如果发生了错误,那么应该在尽可能靠近硬件的层面上来解决。如果底层无法处理,再传递到上一层;I/O软件的层次结构I/O设备管理软件的基本思想是采用分层的结构,把各种设备管理软件组织成一系列的层次。低层与硬件特性相关,它把硬件和较高层的软件隔离开来;而较高层软件则向用户提供一个友好、清晰、统一的接口。一般可分为四层。用户空间的I/O软件设备独立的系统软件设备驱动程序中断处理程序硬件I/O软件系统的层次I/O软件—I/O设备中断的处理I/O设备中断处理程序需考虑到I/O设备操作的各种情况操作正常结束申请设备的进程已经得到指定设备传送来的信息或把信息传送到指定设备,该进程的状态从“等待设备传输信息”变成“就绪”操作异常结束设备故障设备特殊情况I/O软件—I/O设备中断处理程序当用户进程需要输入输出服务时,会调用I/O相关的库函数这些库函数又会调用相应的系统调用函数该函数又调用相应的设备驱动程序驱动程序在启动I/O操作后被阻塞,直到I/O操作完成后,将产生一个中断,然后中断处理程序将接管CPU进行处理,并在处理完成后,唤醒被阻塞的驱动程序。I/O软件的组成—I/O设备中断处理程序中断服务程序是I/O软件系统分层中的昀底层,为了降低操作系统复杂性,中断服务程序暴露的窗口越小越好,与其打交道的OS越少越好设备驱动程序负责中断响应即设备驱动程序启动I/O操作后阻塞,然后等待中断当收到中断请求后,中断服务程序先执行,然后将处于阻塞状态的设备驱动程序进程解锁I/O软件的组成—I/O设备中断处理程序中断处理步骤保存没有被中断硬件保存的相关寄存器设置中断服务程序的上下文设置中断服务程序的栈回应中断控制器重开中断从保存处恢复寄存器执行服务程序设置MMU以执行下一个进程设置新进程的寄存器开始执行新进程I/O软件的组成—设备驱动程序设备驱动程序:与具体的设备类型相关的,用来控制设备运行的程序。一般由设备生产商提供。任务:把用户提交的逻辑I/O请求转化为物理I/O操作的启动和执行每一个I/O设备都需要相应的设备驱动程序,而每一个设备驱动程序一般只能处理一种设备类型。因为对于不同的设备来说,它的设备控制器中的寄存器数目各不相同,而且控制命令的类型也不相同。为实现设备独立性,OS把各种类型的设备划分为块设备和字符设备两类,并为每一类定义了一个标准接口,所有设备驱动程序都必须支持其中之一。这个接口供上层的OS软件使用,它由一些抽象的函数组成,如读取一个数据块或写一个字符。I/O软件的组成—设备驱动程序驱动程序是I/O处理功能的低级系统例程。它具有如下特征中转数据和控制:不是数据和控制的源端和目的端(应用程序和设备)与硬件特性密切相关:通常由硬件厂商提供向上屏蔽设备细节:不同类型设备通常其设备驱动程序接口不同,同类设备的接口相同。因此,同类设备的不同型号,只要更换设备驱动程序则可由OS使用I/O软件的组成—设备驱动程序设备驱动程序——直接同硬件打交道的软件模块功能向有关的I/O设备的控制器发出控制命令,监督它们的正确执行,进行必要的出错处理对各种可能的有关I/O设备排队、冻结、唤醒等等操作进行处理执行确定的缓冲区策略进行一些依赖于I/O设备的特殊处理I/O软件的组成—设备驱动程序设备驱动程序的结构不同操作系统中

1 / 92
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功