设备管理
主要内容 概述 输入/输出处理 缓冲技术 驱动调度技术 设备分配 虚拟设备
概述 计算机的外围设备分为(设备管理的对象): 设备管理的目的: 存储型设备,以存储大量信息和快速检索为目标,如磁带机、磁盘机 输入输出型设备,将外界信息输入计算机,把计算结果从计算机输入。如显示器、卡片机、打印机 设备管理的目的: 方便用户使用各种各样的外围设备,同时提高各种外围设备的并行性,从而提高其利用率
I/O处理全过程 User Program Kernel I/O Subsystem Device Driver Top Half Bottom Half Device Hardware
设备管理的目标和功能 根据用户请求,控制各类设备实现用户的目标 向用户提供方便的设备接口,屏蔽底层硬件细节差别。 控制设备操作,实现设备与内存的数据交换 设备的分配与回收、设备驱动程序、设备中断管理等 管理缓冲区的建立、分配和释放。 向用户提供方便的设备接口,屏蔽底层硬件细节差别。 虚拟机——逻辑设备的作用:用户能够简单方便的使用I/O设备 设备接口的方便性、友好性、透明性、设备无关性 利用各种技术,提高设备的运行效率 设备与CPU之间、设备之间的并行 设备负载的均衡:保持设备的充分忙碌 主要利用的技术有:中断技术、DMA技术、通道技术、缓冲技术 实现对设备的管理和保护 设备的分配与回收:针对独占设备和共享设备,实现合理的资源分配 设备的数据保护:不同设备之间的保护、设备内部的保护
概述 设备管理是操作系统中最庞杂和琐碎的部分。其主要内容: 外围设备中断处理 缓冲区管理 外围设备的登记和使用情况跟踪以及分配和去配 外围设备驱动调度 虚拟设备及其实现 基本
输入/输出处理 输入/输出系统的组成 I/O设备及其接口线路 控制部件 通道 管理软件 硬件 软件 输出 外围设备 主存 输入
设备的分类 I/O设备的种类繁多,从OS观点来看,其重要的性能指标有:数据传输速率、数据的传输单位、设备的共享属性等。 1.按传输速率分类 低速设备:指传输速率为每秒钟几个字节到数百个字节的设备。典型的设备有键盘、鼠标、语音的输入等; 中速设备:指传输速率在每秒钟数千个字节至数十千个字节的设备。典型的设备有行式打印机、激光打印机等; 高速设备:指传输速率在数百千个字节至数兆字节的设备。典型的设备有磁带机、磁盘机、光盘机等。
2.按信息交换的单位分类 块设备(Block Device):指以数据块为单位来组织和传送数据信息的设备。这类设备用于存储信息,有磁盘和磁带等。它属于有结构设备。典型的块设备是磁盘,每个盘块的大小为512B~4KB,磁盘设备的基本特征是:①传输速率较高,通常每秒钟为几兆位;②它是可寻址的,即可随机地读/写任意一块;③磁盘设备的I/O采用DMA方式。 字符设备(Character Device):指以单个字符为单位来传送数据信息的设备。这类设备一般用于数据的输入和输出,有交互式终端、打印机等。它属于无结构设备。字符设备的基本特征是:①传输速率较低;②不可寻址,即不能指定输入时的源地址或输出时的目标地址;③字符设备的I/O常采用中断驱动方式。
3.按资源分配的角度分类 独占设备:指在一段时间内只允许一个用户(进程)访问的设备,大多数低速的I/O设备,如用户终端、打印机等属于这类设备。因为独占设备属于临界资源,所以多个并发进程必须互斥地进行访问。 共享设备:指在一段时间内允许多个进程同时访问的设备。显然,共享设备必须是可寻址的和可随机访问的设备。典型的共享设备是磁盘。共享设备不仅可以获得良好的设备利用率,而且是实现文件系统和数据库系统的物质基础。 虚拟设备:指通过虚拟技术将一台独占设备变换为若干台供多个用户(进程)共享的逻辑设备。一般可以利用假脱机技术(SPOOLing技术)实现虚拟设备。
输入/输出设备分类 4. 按输入、输出特征 输入型、输出型、存储型 5. 按存取方式 顺序型 直接型(随机)
输入/输出处理 输入/输出控制方式 I/O控制器(管理软件),对设备进行管理/并实施具体的I/O操作 按其功能的强弱、以及与CPU的联系方式(并行度的差异),可分为: 询问方式 中断方式 DMA方式 通道方式
输入/输出处理 输入/输出控制方式 询问方式 程序直接控制方式,不断查询外围设备的工作状态(忙式等待) CPU与I/O设备之间串行工作 效率低下
询问方式(程序直接控制方式)的工作流程 由操作系统的“服务程序”负责将用户数据传送至打印机端口 服务程序顺序传送打印数据,填满接口缓冲区后就等待(空循环) 每次循环中都检查接口缓冲区是否可用,一旦可用就继续传送数据 数据传送完成后“服务程序”结束,用户进程继续运行 缺点:靠CPU以“忙等待”的形式与打印机进行通信,浪费CPU资源
输入/输出处理 输入/输出控制方式 中断方式 中断技术的引入,使得外围设备有表达其工作状态的能力 CPU与I/O设备之间可以部分并行工作,但数据传输时,CPU需要参与工作,仍为串行工作方式 效率有所提高
中断控制I/O的工作流程 “打印服务程序”只将最开始的数据传送至打印机端口,然后阻塞 CPU可继续调度其他进程运行,不浪费CPU时间 一旦打印缓冲区空后,打印机端口发出硬件中断 CPU响应中断,恢复“打印服务程序”运行,继续传送数据 缺点:虽然节省了CPU资源,但是中断响应也消耗较大的系统资源
输入/输出处理 输入/输出控制方式 DMA方式 I/O设备可直接与主存交换数据,而不需要CPU过多的干预 DMA具有处理器的能力,与CPU共享对总线的控制 数据在主存与I/O设备之间以块为单位传输,传输过程不需要占用CPU时间 CPU与I/O设备之间可以并行工作,效率较高 缺点:CPU还需要在块与块之间对I/O操作进行干预
DMA控制I/O的工作流程 用户进程发出系统调用后进入阻塞态,CPU直接设置DMA端口 CPU与DMA并行工作,DMA负责将用户数据传送给打印机 当DMA完成所有工作后,向CPU发出中断,CPU响应后唤醒用户进程 优点:只有一次中断、DMA与CPU并行提高了系统运行效率 缺点:DMA速度较慢,如果CPU并不繁忙,那么DMA机制并无太大意义
输入/输出处理 输入/输出控制方式 通道方式 减少CPU对I/O操作的干预,只是在开始启动时执行相应指令,并在操作结束时通过中断通知执行代码进行处理。 CPU与I/O设备之间完全并行工作 效率高
(1)字节多路通道(Byte Multiplexor Channel):按字节交叉方式工作,每个通道完成一个字节交换后便让出通道。 … A1A2A3... B1B2B3... C1C2C3... A1B1C1…A2B2C2 ... 设备
(2)数组选择通道(Block Selector Channel):字节多路通道不适于连接高速设备,推动了按组数方式进行数据传送的数组选择通道的形成。这种通道虽然可以连接多台高速设备,但只含有一个分配型子通道,在一段时间内只能执行一道通道程序,且独占方式,直至该设备传送完毕释放该通道。 (3)数组多路通道(Block Multiplexor Channel):这是将数组选择通道的高速和字节多路通道的分时并行结合起来的一种新通道。 瓶颈问题:通道相对设备较少而造成数据交换阻塞。
总线系统 计算机系统中的各部件如CPU、内存以及各种I/O设备之间的联系,都是通过总线来实现的。总线性能是用时钟频率、带宽和相应的总线传输速率来衡量。 1 ISA(Industry Standard Architecture):原先带宽8位,2Mb/s速率,后为16位,16Mb/s速率。 2.EISA(Extended ISA):带宽32位,速率32Mb/s。 3.局部总线:是指将多媒体卡、高速LAN网卡、高性能显示卡等,从总线上分离,通过局部总线控制器,直接接到CPU总线上,使之具有高速数据交换能力。 4.VESA(Video Electronic Standard Association):32位,可达132Mb/s,但控制器无缓冲,且连Pentium也不支持。 5.PCI(Peripheral Component Interface):支持64位系统,它在CPU和外设之间加了一层复杂的管理系统,用于协调数据传输和提供一致的接口。能适应高频率的CPU。
SCSI总线 PC/XT总线 ISA总线 MCA总线 EISA总线 VESA总线 PCI总线 USB总线 微型计算机总线的种类和发展:
USB技术:USB(Universal Serial Bus)通用串行总线,是一种连接I/O串行设备的技术标准。 (1)冲破了计算机技术发展的两个历史局限性:由于I/O设备的接口标准的不一致和有限的接口数量已无法满足各种应用迫切需要;传统的I/O设备的接口无法满足实时数据传输与多媒体应用的需求。 (2)USB以WDM(Windows Driver Model)模型为基础,WDM包含一套通用的I/O服务和二进制兼容的设备驱动程序。 (3)USB支持同步数据传输方式和异步数据传输方式,其数据传输率有低速1.5Mbps和全速12Mbps乃至上百Mbps,比标准串口快上百倍。
(4)USB可以主动为外部设备提供电源,允许外部设备快速连接,具有即插即用的功能。 (5)允许外部设备的热插拔。 (6)控制器的功能:控制器主要负责执行由控制器驱动程序发出的命令。 (7)控制器驱动程序:控制器驱动程序在控制器与USB设备之间建立通信信道。 (8)USB芯片驱动程序:USB芯片驱动程序提供了对USB的支持。 (9)USB设备分为两类: 1.USB集线器:本身可再接其他USB外围设备。 2.USB设备:连接在计算机上用来完成特定功能并符合USB规范的I/O设备单元,如鼠标、键盘等。 (10)4种不同的数据传输方式:
1.等时传输方式:以固定的传输速率,连续不断传输数据,发生错误时,USB不处理,而是继续传送新的数据。用于需要连续传输,且对数据的正确性要求不高而对时间极为敏感的外部设备,如麦克风、音箱以及电话等。 2.中断传输方式:该方式传送的数据量很小,但这些数据需要及时处理,以达到实时效果,此方式主要用在键盘、鼠标以及游戏手柄等外部设备上。 3.控制传输方式:处理主机的USB设备的数据传输,包括设备控制指令、设备状态查询及确认命令。当USB设备收到这些数据和命令后将按照先进先出的原则按队列方式处理到达的数据。 4.批量传输方式:用来传输要求正确无误的数据。通常打印机、扫描仪和数码相机以这种方式与主机连接。除等时传输方式外,其他3种方式在数据传输发生错误时,都会试图重新发送数据以保证其准确性。
SCSI接口技术: (1)小型计算机系统接口(Small Computer System Interface):一个SCSI I/O设备控制器,可将新型高速I/O设备增加到计算机系统中。 (2)SCSI 设备控制器的智能化I/O控制:降低了计算机系统的负担,使计算机系统具有更高的I/O能力。
缓冲技术 动因: 基本思想, 改善CPU与外围设备之间速度不匹配的矛盾 协调逻辑记录大小与物理记录大小不一致的问题 减少I/O操作对CPU执行的中断次数 放宽对CPU中断响应时间的要求 基本思想, 当一个进程执行写操作输出数据时,先向系统申请一个输出缓冲区,然后,将数据高速送到缓冲区。若为顺序写请求,则不断把数据填到缓冲区,直至装满。输入缓冲区类似。
设备速度差异 Sun Enterprise 6000 的设备传输率
缓冲技术 缓冲技术分类: 单缓冲 一种简单的缓冲技术,效率较低 双缓冲 又称缓冲交换。两个缓冲区轮流工作。 多缓冲 多级缓冲组成循环缓冲。
高速缓存 cache – 保留数据拷贝的高速内存 总是数据的拷贝 性能的关键 缓冲与高速缓存 缓冲只保留数据仅有的一个现存拷贝 高速缓存提供了一个驻留在其它地方的数据的一个高速拷贝
即插即用技术(Plug and Play) 即插即用技术(Plug and Play) PnP技术:是计算机系统I/O设备与部件配置的应用技术。顾名思义:插入就可用,不需要进行任何设置操作。 PnP技术的产生:由于一个系统可以配置多种外部设备,设备也经常变动和更换,它们都要占有一定的系统资源,彼此间在硬件和软件上可能会产生冲突。因此在系统中要正确地对它们进行配置和资源匹配;当设备撤除、添置和进行系统升级时,配置过程往往是一个困难的过程。
PnP技术的特点: (1)支持I/O设备及部件的自动配置,使用户能够简单方便地使用系统扩充设备; (2)减少由制造商装入的种种用户支持和限制,简化部件的硬件跳接设置,使I/O附加卡和部件不再具有人工跳接线设置电路。 (3)在主板和附加卡上保存系统资源的配置参数和分配状态,有利于系统对整个I/O资源的分配和控制。 (4)支持和兼容各种操作系统平台,具有很强的扩展性和可移植性。 (5)在一定程度上具有“热插入”、“热拼接”技术。 PnP技术的功能: (1)附加卡的识别与确认。 (2)资源分配。 (3)附加卡自动配置。 多方支持:具有PnP功能的操作系统、配置管理软件、软件安装程序、设备驱动程序等;网络设备的PnP支持;系统平台的支持(如PnP主板、控制芯片组和PnP BIOS等);各种支持PnP规范总线的I/O控制卡和部件。
调度 调度: 一组I/O 请求就是确定一个好的顺序来执行这些请求。 os为每个设备维护一个请求队列来实现调度 应用程序所发布的系统调用的顺序并不一定总是最佳选择。 调度能改善系统整体性能,能在进程之间公平的共享设备访问,能减少I/O完成所需要的平均等待时间 example: 磁头移动 os为每个设备维护一个请求队列来实现调度 I/O调度安排队列顺序以改善系统总体效率和应用程序的平均响应时间 公平
设备分配 设备分配 为计算机系统接纳的每个计算任务分配所需要的外围设备
设备分配 设备的独立性 作业(程序)与物理外围设备之间独立 作业指定的逻辑设备,而不指定特定的物理设备 设备管理程序负责将逻辑设备名转换成物理设备名 优点: 应用程序与物理外围设无关,系统增减或变更外围设备不影响程序的执行,易于对付输入输出设备的故障
设备分配 设备按其使用特性可分为: 对独占设备通常采用静态分配方式 对共享设备通常不需要预先分配 常见的分配算法: 独占设备(独占方式分配),如读卡机 共享设备(共享方式分配),如磁盘 虚拟设备(虚拟方式分配) 对独占设备通常采用静态分配方式 对共享设备通常不需要预先分配 常见的分配算法: 先来先服务 优先级高者先服务
虚拟设备 Spooling 技术是用一类物理设备模拟另一类物理设备的技术。其作用: 使独立使用的设备变成可共享设备 处理器与外围设备速度匹配
假脱机与设备预约 spooling – 用来保存设备输出的缓冲 如果设备一次只能服务于一个请求 比如,打印机 应用程序的输出先是假脱机到一个独立的磁盘文件上 device reservation -提供对设备的独占访问,如允许进程分配一个空闲设备以及不再需要时再释放该设备 分配和再分配的系统调用 小心死锁
错误处理 采用内存保护的OS可以预防许多硬件和应用程序的错误,从而不会因为小的机械失灵导致完全的系统崩溃。 操作系统可以恢复磁盘读,设备无效,暂时的失败 当I/O失败时,系统调用大多数返回一位调用状态信息,以表示成功或失败 系统日志记录了出错报告
运行参数: 上千种不同的设备, 设备可靠性难以保证: 媒介失效或传输错误 设备的难以预测/速度慢 字节/块 顺序/随机 假脱机/中断 接口标准化。如何标准化 设备可靠性难以保证: 媒介失效或传输错误 设备的难以预测/速度慢 运行参数: 字节/块 键盘 等 硬盘,网络等 顺序/随机 假脱机/中断 有些设备需要持续的监测 有些则利用中断机制
设备的传输速率差异极大 操作系统必须能够处理这些传输速率差异极大的设备 快速设备:Better not have high overhead/byte 慢速设备:Better not waste time waiting
访问方式 块设备: e.g. disk drives, tape drives, DVD-ROM Access blocks of data Commands include open(), read(), write(), seek() Raw I/O or file-system access Memory-mapped file access possible 字符设备: e.g. keyboards, mice, serial ports, some USB devices Single characters at a time Commands include get(), put() Libraries layered on top allow line editing 网络设备: e.g. Ethernet, Wireless, Bluetooth Different enough from block/character to have own interface Unix and Windows include socket interface Separates network protocol from network operation Includes select() functionality Usage: pipes, FIFOs, streams, queues, mailboxes
访问时机 Blocking Interface: “Wait” When request data (e.g. read() system call), put process to sleep until data is ready When write data (e.g. write() system call), put process to sleep until device is ready for data Non-blocking Interface: “Don’t Wait” Returns quickly from read or write request with count of bytes successfully transferred Read may return nothing, write may write nothing Asynchronous Interface: “Tell Me Later” When request data, take pointer to user’s buffer, return immediately; later kernel fills buffer and notifies user When send data, take pointer to user’s buffer, return immediately; later kernel takes data and notifies user
Main components of Intel Chipset: Pentium 4 Northbridge: Handles memory Graphics Southbridge: I/O PCI bus Disk controllers USB controllers Audio Serial I/O Interrupt controller Timers