版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机操作系统张柏礼bailey_zhang@计算机科学与工程学院14设备管理基本概念I/O控制方式I/O设备分配设备驱动24设备管理:基本概念I/O设备又称为外部设备(外设),外围设备广义上的I/O设备:计算机系统中用于人机交互或与其他机器通讯的所有设备,如显示器、键盘,打印机,网卡,还包括所有的存储设备,如磁盘,磁带等狭义上的I/O设备:不包括存储设备I/O设备的分类按使用特性分输入输出设备:键盘、鼠标、扫描仪、麦克风、音箱等存储设备:磁盘、磁带、光盘网络通讯设备:各种网络接口、调制解调器34设备管理:基本概念按信息交换的单位分块设备:数据交换的单位是数据块,如磁盘,磁带(基本等价于存储设备)字符设备:数据交换的单位是字节,如终端键盘、打印机、网络接口(基本等价于输入输出和网络通讯设备)按共享属性分独占设备:临界资源,并发进程需互斥地使用这类设备,它一段时间内只能由一个进程独占,直到其使用完毕或主动释放共享设备:多个进程可以交替的使用这类设备,不必等另一个进程使用结束后才能访问,但某一个时刻只允许一个进程访问,如磁盘可以供多进程交替使用,在某一个进程A传输数据的时刻,其他进程是不可以使用,但在进程A完成这次磁盘指令后,下一个指令下达前,磁盘可被其他进程使用虚拟设备:通过虚拟技术将一台独占设备变换成多台逻辑设备,供多个进程同时使用44设备管理:基本概念I/O设备控制器通常I/O设备并不是直接与CPU通讯,而是与I/O设备控制器进行通讯,设备控制器是处理机和设备之间的接口,它负责接收从CPU发来的命令,并去控制I/O设备工作设备控制器的主要功能接受和识别命令数据交换设备状态的了解和报告地址识别设备控制器的组成设备控制器与处理机的接口设备控制器与设备的接口I/O逻辑54设备管理:基本概念设备管理的基本功能I/O控制设备分配设备驱动缓冲区管理 并行操作64设备管理基本概念I/O控制方式I/O设备分配设备驱动74设备管理:I/O控制方式I/O控制I/O设备的输入输出控制方式随着计算机技术的发展也在不断的发展其主要方向是不断地减少主机CPU对输入输出的控制,将主机从繁琐低速的I/O事务中解脱出来,去完成更多数据处理的任务,提高CPU的利用率I/O控制的发展经历了四个阶段程序直接I/O控制方式中断I/O控制方式DMAI/O控制方式通道I/O控制方式84设备管理:I/O控制方式程序直接I/O控制又称为忙—等方式、轮巡方式和循环测试方式用户程序直接控制CPU与外设的数据传送,这种方式的控制者是用户进程,其硬件体系结构如图设备控制器上有三个寄存器,控制寄存器、状态寄存器、数据寄存器通过memory-mappedI/O技术,使三个寄存器都具有内存的地址,从而CPU可以直接与它们交互94设备管理:I/O控制方式当进程需要从外设输入数据时(1)通过CPU发出设备启动指令到控制寄存器(2)进程进入测试等待状态,不断地用测试指令检查状态寄存器是否有完成标志(3)当外设将单字节数据送入数据寄存器后,状态寄存器设置完成标志(4)进程检测到完成标志后,将数据从数据寄存器中读走(5)如还需输入数据,则回到(1)继续,否则完成I/O当进程需要输出数据到外设时,同样发出启动命令,并等待设备准备好之后才能输出数据优势:硬件结构简单,输入输出程序也相当简单劣势:CPU的高速性和I/O设备的低速性矛盾突出,导致CPU大多数时间都用于循环检测,CPU利用率很低,外设无法并行,只能串行一旦外设故障,状态寄存器失效,可能导致CPU“死等”104设备管理:I/O控制方式中断I/O控制方式当某进程需要启动某个外设工作时CPU向设备控制器发送一条I/O指令,然后返还执行其他任务设备控制器具有一定的智能,受到指令后,按指令要求控制设备,进行数据的输入输出,这时外设和CPU处于并行操作当输入/输出的数据进入数据寄存器后,设备控制器便向CPU发送一中断信号,CPU响应中断后,发送指令给设备控制器,由设备控制器将数据写入内存或由内存写入数据寄存器在外设输入/输出数据过程中,无需CPU的干预,只有外设输入/输出结束时,才需要花很短的时间进行中断处理如终端输入一个字符的数据约为100ms,而将字符由数据寄存器送入内存缓冲区的时间为0.1ms,如用程序直接I/O方式,CPU的99.9ms处于忙—等状态,而采用中断控制,CPU可以将这99.9ms用于处理其他事情中断方式使CPU和外设可以并行运行,提高了系统资源利用率和吞吐量,并具有实时响应能力,可以及时处理异常问题,提高了系统的可靠性114设备管理:I/O控制方式直接存储器访问控制方式(DMA方式)中断方式的效率比程序直接I/O高得多,但中断方式仍以字节为单位,每进行一个字节的传送,CPU都要干预一次,对于块设备的数据传输,由于数据量很大且传送速率很高时,中断这种方式就显得比较低效DMA方式则是针对块数据的传输,对设备控制器的功能进行了扩充,形成了DMA控制器(DMAC),增加地址寄存器(用于指明被传输数据的内存地址)、长度计数器(被传输数据的总字节数)以及数据缓冲寄存器124设备管理:I/O控制方式DMA方式在内存和外设之间进行成块数据传送过程中,不需要CPU的干预,仅在成块数据读写开始和结束时需要CPU的参与DMA方式的数据块传送过程可分为三个阶段,以从磁盘读入数据为例预处理阶段:当CPU要从磁盘读入一数据块,便向磁盘控制器发送一条读命令,包含数据读入的磁盘物理地址读入数据的字节数读入数据后存放的内存地址 然后,对DMAC进行初始化和启动,这时CPU可以去处理其他任务134设备管理:I/O控制方式数据传送阶段:由DMAC控制总线进行数据传输DMAC从磁盘读入一个字符,并送入数据寄存器申请一个总线周期将该数据写入指定的内存地址中,并将数据计数器减1如减1后不为0,则DMAC继续从磁盘读取数据如数据计数器减1后为0,表明数据传送结束,DMAC发送中断至CPU后处理阶段:CPU响应中断,进入中断服务程序,检查数据,决定是否结束传输144设备管理:I/O控制方式通道I/O控制方式DMA相对于中断方式,将CPU的干预由每个字节为单位,减少到以数据块为单位,但CPU每发出一次I/O指令,只能读写一个连续的数据块,如果需要一次读写多个离散的数据块,则需CPU发出多条I/O指令发生多次中断 通道相当于一个具有专门用于输入输出的处理机,具有特定的指令和程序,可以执行通道进程代替主机CPU实现更为复杂的数据传送,完成更多的功能如当CPU要完成多组数据的读写,只需要将相关指令一次性发送给通道,通道接收到指令后,执行通道程序即可自行完成这多组数据的读写通道按照信息交换方式的不同,在一个系统中可以设立三种类型的通道字节多路通道:用于连接多台低速的外设,以字节为传输单位,各设备轮流占用一个时间片,是一种简单的共享通道154设备管理:I/O控制方式164设备管理:I/O控制方式选择通道:用于连接多台高速的外设,以数据块为传输单位在某段时间,通道只能选择一个外设进行I/O操作,只有一个输入输出操作完成后,才能与其他设备相连由于数据传输的时间很短,I/O操作更多的时间用在寻址等其他方面,如读写磁盘数据,磁盘臂移动寻址需要很长的时间,这时通道只能空等,所以通道利用率不高数据多路通道:对选择通道的改进,其主要思想是当设备进行数据传送时,通道为其服务当设备在执行寻址等控制性动作时,通道暂时断开与这个设备的连接,挂起该设备的通道程序,为其他设备服务这样提高了通道的利用率(相当于通道变成了一个多道系统)通道方式是一种比DMA更为高效的方式,可以进一步减轻CPU的负担,提高CPU和外设的并行能力17设备管理基本概念I/O控制方式I/O设备分配设备驱动184设备管理:I/O设备分配设备分配与回收每个进程进行I/O传送前必须拥有设备的使用权进程必须向系统提出设备申请,使用完毕后及时归还作为设备管理机构,应响应进程的设备请求,在条件许可的情况下把设备分配给申请者,同时能够及时回收设备设备分配中的数据结构(1)设备控制表DCB,一台外设一个,是外设存在的唯一标志设备标识设备类型设备状态挂起进程队列相连通道其他194设备管理:I/O设备分配(2)通道控制块CHCB,和通道一一对应,其中保存与通道有关的全部信息通道标识通道状态等待通道的进程队列控制器列表(3)系统设备表SDT:整个系统一张,记录系统中所有设备的概要信息所有I/O设备的类型各类设备的数量DCB的表地址各类设备的驱动程序的入口204设备管理:I/O设备分配设备分配的原则高效率,充分利用设备,使设备尽可能忙安全性,避免不合理的分配方法造成的进程死锁与物理设备无关性,用户请求的是逻辑设备,分配程序根据当前请求和设备分配情况,在相应类别的设备中选择一个空闲物理设备将其分配给申请者,而不支持用户直接对物理设备的请求214设备管理:I/O设备分配设备分配方式静态分配在进程运行前,由系统按资源清单一次性满足设备要求,一旦分配后,设备资源一直为进程所占用,直到进程结束静态分配不会出现死锁,但设备利用率低动态分配在进程运行过程中提出输入输出请求,分为(1)单请求:发出I/O请求后立即进入挂起状态,直到I/O请求完成才唤醒,保证设备分配的安全性,因为它不具有死锁的必要条件(请求保持条件),但进程运行慢,设备利用率低(2)多请求:允许进程发出I/O请求后继续运行,必要时发出其他的I/O请求,这样进程进展快,设备利用率高,但容易发生死锁224设备管理:I/O设备分配设备分配算法先请求先分配(先来先分配)优先级高者优先分配分配算法流程(1)根据被申请I/O设备的类型查找系统设备表SDT(2)在SDT中找到该类设备,检查可用的数量如小于等于0,则表明此类设备没有空闲,进程进入此类设备的阻塞等待队列如果大于0,根据该项中DCB指针检索该类设备的DCB表,找到一个空闲设备将其分配给进程,并将SDT表中该类设备的可用数量减1(3)进程获得设备后,从DCB表中找到相连的通道,进行通道使用的申请如通道忙,则进程进入该通道的等待队列如通道空闲,则将通道分配给进程,返回设备申请成功标志23设备管理基本概念I/O控制方式I/O设备分配I/O设备驱动244设备管理:I/O设备驱动I/O软件的层次结构I/O设备管理软件分层构造思想将系统输入输出的功能组成一系列的层次每个层次完成输入输出的功能的一个子集每一个层次功能实现都依赖其下层所完成的更底层的功能,并屏蔽这些功能的实现为上层提供各种服务某一层次的修改不会引起其上层和下层代码的修改其主要目标是实现设备独立性,即除了直接与设备直接打交道的底层软件外,其他部分的软件并不依赖于硬件254设备管理:I/O设备驱动层次结构的组成(1)用户空间软件实现I/O功能的大部分软件属于操作系统,但用户程序中有一小部分因输入输出需要而和I/O库函数相连,因此也归到I/O系统的一部分如C函数库中fopen(),fwrite()等函数,这些库函数运行在用户态,他们往往没有做太多的事情,只是简单调用操作系统的系统调用函数如open(),write(),但pringf(),scanf()等函数还是确实做了很多实际的工作(主要是格式的转换)(2)与设备无关的操作系统软件与设备无关的I/O软件和设备驱动一般都是在OS内核,两者的界定随操作系统的不同而变化I/O软件中大部分属于与设备无关的软件,它对上层提供系统调用接口,对下通过设备驱动接口调用设备驱动程序264设备管理:I/O设备驱动与设备无关的I/O软件主要完成的功能274设备管理:I/O设备驱动(3)中断处理程序I/O设备产生的中断应尽量放到操作系统的底层进程处理,让其他部分软件尽可能少和它发生联系当进程进行I/O操作时,将被阻塞至I/O操作结束中断发生时,由中断处理程序执行相应的操作并将其由阻塞状态改为就绪状态,中断处理程序同时检查设备请求队列获取下一个设备驱动请求,并驱动设备如当用户程序试图从磁盘读取一个数据块时,调用系统调用:检查数据块缓存是否有该数据块,如没有,则调用设备驱动向硬件发出请求,用户进程随即进入阻塞磁盘根据设备驱动发送的指令将数据读入内存,完成数据传输后,设备控制器发出一个中断,激活中断处理程序中断处理程序则从设备获取返还值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论