05_Linux设备管理_201010181039_第1页
05_Linux设备管理_201010181039_第2页
05_Linux设备管理_201010181039_第3页
05_Linux设备管理_201010181039_第4页
05_Linux设备管理_201010181039_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1 第五章Linux设备管理 5 1概述5 2总线 桥 端口 接口5 3设备5 4设备管理相关技术 2 概述 设备分类输入设备 输出设备输入设备 键盘 鼠标输出设备 显示器 打印机输入 输出设备 磁盘 网络 串口设备系统设备与外部设备系统设备 系统时钟 系统扬声器 总线接口系统设备的驱动由内核本身完成外部设备 外部设备的驱动由专门的驱动程序实现 以内核模块的方式附加到内核中外部设备可以被安装和卸载 而系统设备则不能 3 概述 设备分类字符设备与块设备字符设备 终端设备 显示器 键盘 鼠标等 打印机 串口设备顺序访问块设备 磁盘 光盘 闪存随即访问独占设备与共享设备独占设备是在某一时间段内只能被一个进程所使用的设备 打印机 终端设备等共享设备是允许多个进程同时使用的设备 磁盘等存储设备 允许多个进程同时访问文件 存取文件的数据 4 概述 设备管理目标从资源的角度出发要尽可能地提高设备的使用效率 提高I O系统的性能 从用户的角度出发设备管理系统要屏蔽各种设备的物理特性 为用户提供一个统一的 方便的I O操作界面设备管理功能设备的分配 根据设备的特点对设备进行合理的分配和调度设备的驱动 根据进程的I O请求 启动设备操作 控制数据传输设备的中断处理 对设备产生的中断进行处理虚拟设备 用共享设备模拟独占设备 实现虚拟设备 5 概述 设备与系统的接口外部物理设备无法直接与CPU相连接的 存在以下差异 控制方式不同 CPU是数字化命令 而设备需要物理信号来控制传输方式不同 CPU以字节为数据传输单位 设备可能以位为单位速度不匹配 设备的工作速度要比CPU慢许多时序不一致 设备的定时控制电路 难以与CPU的时钟一致信息形式不同 CPU处理信息是数字的 设备则可能是模拟的总线 桥 端口 接口Busses Bridges Ports andInterfaces 6 第五章Linux设备管理 5 1概述5 2总线 桥 端口 接口5 3设备5 4设备管理相关技术 7 总线 桥 端口 接口 总线 bus 以总线为纽带 系统板上的部件都通过总线相连 所有的信号都要通过总线进行传输 aprocessorcommunicateswithitssurroundingdevicesisthroughaseriesofelectricalconnections line addressbusdatabuscontrolbuse g cpufetchainstruction北桥vs 南桥FSBfront sidebusI Obusvs superio 8 总线 桥 端口 接口 IntelHubsThenewerIntelsystemarchitecturehasmovedtotheconceptofhubsIHAIntelHubArchitectureGMCHGraphicsandMemoryControllerHubMCHMemoryControllerHubPCIexpressICHI OControllerHub 9 总线 桥 端口 接口 AMDHyperTransportPCIcompatible 10 总线 总线由CPU控制CPU通过总线访问内存和设备 以及控制在内存和设备之间传输数据独占使用方式总线采用独占使用方式 任何设备若需要直接和内存交换数据 先要申请总线使用权 获得使用权后独占总线进行通信数据交换字符设备CPU与慢速的字符设备交换数据时 由CPU控制设备与内存之间的数据交换 输入时 CPU从控制器中将数据读到CPU的内部寄存器中 再写到内存单元中 输出时则相反 将内存数据读到CPU的寄存器中 再写到控制器的数据寄存器中 块设备CPU与高速的块设备交换数据时 以DMA方式进行 DMA控制器先申请总线使用权 然后控制设备直接与内存传输数据 11 接口 出于通用性设计的考虑 计算机硬件结构都提供了一些标准的设备接口 这些接口遵照统一的标准来设计 不同的设备只要遵从同一标准即可通过该接口与系统连接 I O接口分为两类通用接口如串口 并口 USB接口专用接口IDE IntegratedDeviceElectronics 集成设备电路 SCSI接口一个I O接口可以带多个同类型的设备例如一个IDE接口可以带两个IDE磁盘驱动器 标准的I O接口为设备的开发和使用提供了方便 12 总线 桥 端口 接口 设备适配器与设备显卡vs 显示器声卡vs 音响网卡vs 网线设备适配器 控制器 通过总线插槽 ISA或PCI等 接入系统总线 13 总线 桥 端口 接口 设备资源I O设备与系统通信必须首先获得一些系统资源I O端口地址适配器中的每个I O端口寄存器都有一个唯一的地址 一个适配器所拥有的I O端口地址的总和称为该设备的I O范围 如COM1的I O范围为0 x03f8 0 x03ff 中断申请号IRQ设备申请中断使用的中断线号码缓冲区地址适配器中的缓冲区所映射的内存地址范围DMA通道号设备申请DMA使用的DMA通道号码在安装设备时 由系统为适配器分配这些资源 并保证各个设备的资源彼此不相冲突 14 I O设备的软件结构 15 第五章Linux设备管理 5 1概述5 2总线 桥 端口 接口5 3设备块设备请求队列I O调度函数通用设备驱动字符设备网络设备 时钟设备 终端设备5 4设备管理相关技术 16 设备 设备号主设备号majornumberusuallyreferredtoadevicedriverorcontroller次设备号minornumberwasaparticulardevicewithinthatcontroller主设备号标识设备的控制器 次设备号用来区分同一控制器下的不同设备实例 主设备号与设备的驱动程序一一对应 而次设备号供驱动程序内部使用 ll dev sda 17 设备 Linux2 6 通过devfs 设备文件系统 访问Withdevfs amodulecanregisteradevicebynameratherthanamajor minornumberpair 18 块设备 块设备 blockdevice 访问块设备ThedevicedriverregistersitselfatdriverinitializationtimeThisaddsthedrivertothekernel sdrivertablemappingthedevicenumber device snametotheblock device operationsstructure 19 块设备 访问块设备通用块设备层 GenericBlockDeviceLayer Latency requestqueue 20 请求队列 RequestQueuesandSchedulingI OWhenareadorwriterequesttraversesthelayersfromVFS throughthefilesystemdriversandpagecache iteventuallyendsupenteringtheblockdevicedrivertoperformtheactualI OonthedevicethatholdsthedatarequestedI O请求队列 requestqueue toorderthemanyblockI Orequeststhedevicesattemptingtooptimizesthroughputbutdoesnotindefinitelypostponerequests 在linux2 6中eachblockdevicehasitsownrequestqueuethatmanagesI OrequeststothatdeviceAprocesscanonlyupdateadevice srequestqueueifithasobtainedthelockoftherequestqueue 21 请求队列 requestqueueinclude linux blkdev hstructrequest queue 字段structlist headqueue head 指向I O请求队列头structrequest last merge 最近刚加入队列的请求elevator t elevator 电梯调度算法 三者之一 structrequest listrq read请求队列和write请求队列在Linux2 6内核 块设备通过在 init函数中调用request queue t blk init queue request fn proc rfn spinlock t lock 来初始化请求队列 drivers block ll rw blk c 22 I O调度 I Oschedulingalgorithmelevatoralgorithmmovingthediskheadbackandforth三类调度程序no op Fortheno operationI Oschedulerdeadline ForthedeadlineI Oscheduleras FortheanticipatoryI Oscheduler 23 I O调度 no opI OSchedulertakesarequestandscansthroughitsqueuetodetermineifitcanbemergedwithanexistingrequest Thisoccursifthenewrequestisclosetoanexistingrequest IfthenewrequestisforI Oblocksbeforeanexistingrequest itismergedonthefrontoftheexistingrequest IfthenewrequestisforI Oblocksafteranexistingrequest itismergedonthebackoftheexistingrequest 例如 request1请求读文件头 而request2请求读文件尾 24 I O调度 no opI OSchedulerIftheno opI Oschedulerfindsthatthenewrequestcannotbemergedintotheexistingrequestbecauseitisnotnearenough theschedulerlooksforaplacewithinthequeuebetweenexistingrequests IfthenewrequestcallsforI Otosectorsbetweenexistingrequests itisinsertedintothequeueatthedeterminedposition Iftherearenoplacestherequestcanbeinserted itisplacedonthetailoftherequestqueueno op的缺点可能导致某个request等待过久 25 I O调度 DeadlineI OSchedulerdrivers block deadline iosched creadrequestIfanapplicationmakesareadrequest ittypicallywaitsuntilthatrequestisfulfilledbeforecontinuing writerequestAwriterequestwillnotnormallycauseanapplicationtowait thewritecanexecuteinthebackgroundwhiletheapplicationcontinuesontoothertasks ThedeadlineI Oschedulerdefaultqueue 根据读写扇区位置的远近排成队列ReadqueueWritequeueanexpirationtimeInthereadandwritequeue requestsareorderedbytime FIFO 26 I O调度 DeadlineI OScheduler新请求到来 根据请求的类型 其被放到一个排好序的队列中 readqueue或者writequeue 处理请求 读请求优先 先检查readqueue的队首元素 若该请求已到期限 则马上处理若无read请求到期 则去检查writequeue的队首元素若无read请求和write请求到期 则调度defaultqueue no op 缺省的deadlineRead请求 秒write请求 5秒缺点 可能导致write请求饥饿 27 I O调度 AnticipatoryI OSchedulerattemptstoanticipatewhatthenextoperationisandaimstoimproveI Othroughputindoingso 与deadlineI Oscheduler异同相同点Readqueue writequeue defaultqueue不同点处理完一个请求后 Anticipatory并不马上处理其他请求 而是暂停6ms 预等待期 以等待一个位置临近的请求若在预等待期内 有一个临近区域的读请求 则处理该请求过了预等待期 则调度程序回归正常操作 和deadline调度一样 预等待调度的目标是 使磁头在磁盘的sector与sector之间移动的延迟最小化 28 I O调度 调度算法总结ThedefaultI OscheduleristheanticipatoryI Oschedulerbecauseitoptimizesthroughputformostapplicationsandblockdevices ThedeadlineI Oschedulerissometimesbetterfordatabaseapplicationsorthosethatrequirehighdiskperformancerequirements Theno opI OschedulerisusuallyusedinsystemswhereI Oseektimeisnearnegligible suchasembeddedsystemsrunningfromRAM 29 通用块设备驱动 Generic BlockDriverregister blkdev major dev name fops 注册structgendisk alloc disk intminors include linux genhd h创建gendisk结构体blk init queue request fn proc spinlock t 初始化I O队列voidadd disk structgendisk disk 使得内核对该块设备可见 30 设备驱动 Thehardwaredevicedriver直接操控底层硬件熟知底层设备的物理特性registerlocations I O timing 设备管理方式interrupt DMA封装对物理设备的操作提供open close read write等操作函数 31 其他设备 Characterdevicethecharacterdevicesendsastreamofdataserialdevices keyboardBlockdevice和characterdeviceAllLinuxdeviceI Oisbasedonfiles AllLinuxdeviceI OiseithercharacterorblockRandomaccessBlockdevice Yes vs characterdevice No RequestqueueBlockdevice需要requestqueue 而characterdevice不需要Interrupt对无buffer的characterdevice来说 每接受一个字符须发生中断而对于Blockdevice而言 一个数据块才发生一次中断 32 其他设备 NetworkDevicesNetworkdeviceshaveattributesofbothblockandcharacterdevicesLikeacharacterdevice atthephysicallevel dataistransmittedserially Likeablockdevice dataispacketizedandmovedtoandfromthenetworkcontrollerviadirectmemoryaccess DMA 33 其他设备 ClockDevicesClocksareI Odevicesthatcountthehardwareheartbeatofthesystem Withouttheconceptofelapsedtime Linuxwouldceasetofunction TerminalDevicesThemainconsole configurableatboottime isthefirstterminaltocomeuponaLinuxsystem Often agraphicalinterfaceislaunched andterminalemulatorwindowsareusedthereafter tty sendandreceivetextdata 34 第五章Linux设备管理 5 1概述5 2总线 桥 端口 接口5 3设备5 4设备管理相关技术中断DMA缓冲 35 中断 中断 interrupt 在计算机运行期间 当系统内部或外部发生了某个异步事件需要CPU处理时 CPU将暂时中止当前正在执行的程序 而转去执行相应的事件处理程序 待处理完毕后又返回原来被中断处 继续执行或者调度新的进程执行 这个过程就称为 中断 异步事件指与系统运行没有时序关系的 不可预期的事件用户按下键盘按键 磁盘传输数据完成 系统硬件出现故障等中断技术最早应用在I O传输过程中 它使外部设备和CPU的并行工作成为可能中断技术已扩大到设备之外的其他事件现在 凡是需要CPU干涉或处理的异步事件都采用中断的手段进行处理 可以看出 中断对于操作系统的意义重大 它是系统一切并发活动的基础 因而是操作系统最基本的技术 36 中断 中断源与中断分类引起中断发生的事件称为中断源 通常中断源是由硬件产生的信号 目的是通知CPU某个需要处理的事件 例如 当敲打键盘时 键盘控制器就会产生一个键盘中断源信号 中断种类I O中断 由设备数据传输过程中发生的中断属于I O中断时钟中断 周期性的时钟中断其他中断 由内部故障或程序故障引起的 异常 exception 电源掉电 CPU故障 除数为0 内存溢出 执行了陷入指令 37 中断 中断请求中断源通过中断线送到中断控制器的输入端 这称为中断请求 中断控制器一个硬件装置 它负责捕获中断请求 并以一定的方式向CPU提交中断 竞争由于同时可能会有多个中断信号产生 它们需要共用有限的中断控制线 因此 当设备要使用中断控制线时就要先进行中断请求 IRQ 以获得中断控制线的使用权 38 中断 中断响应CPU在收到来自中断控制器的中断信号后 暂停执行当前的进程 转入相应的中断处理程序进行处理 这个反应的过程称为中断响应 通常CPU在执行完一条指令后 会检查有无中断请求 如有 则会立即作出响应 由硬件和软件相结合的一整套中断机构实施中断响应由硬件实施 中断处理主要由软件实施中断实施过程保存现场中止当前进程的执行 对被响应的中断进行应答 保存当前进程的断点信息 主要是程序状态字PSW和程序计数器PC 中断处理转到中断处理程序入口恢复现场中断返回 39 中断 中断处理程序主要由软件实施 响应中断后 CPU转去执行相应的中断处理程序每个中断都对应一个特定的中断处理程序如时钟中断处理程序 键盘中断处理程序等在设备的驱动程序中包含了对该设备所有中断的处理程序中断向量表所有中断处理程序的入口地址都保存在一个中断向量表中CPU在响应中断时 根据中断源检索中断向量表 得到的中断向量中包含相应中断处理程序的入口地址和程序状态字 将中断向量加载到CPU中 在下一个指令周期CPU就会转去执行相应的中断处理程序 40 中断 41 DMA DirectMemoryAccess DMA 在以总线为中心的体系结构中 任何数据交换都要通过总线进行 总线控制权在CPU 为了减少CPU对I O传输过程的干预 引入了DMA方式 用来控制设备的批量数据传送DMAcontroller位于I Odevice与bus之间 通过DMA控制器控制设备 使其可以直接与主存交换数据 无须CPU参与数据传送不必经CPU的寄存器为中介 可直接从设备写入内存或从内存送入设备 42 DMA DMA传输过程DMA请求CPU通过I O指令对DMA控制器初始化 向DMA控制器发送要启动的设备号 数据

温馨提示

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

评论

0/150

提交评论