《操作系统原理及应用(Linux)》-第6章-设备管理

上传人:壹****1 文档编号:567532100 上传时间:2024-07-21 格式:PPT 页数:55 大小:183.50KB
返回 下载 相关 举报
《操作系统原理及应用(Linux)》-第6章-设备管理_第1页
第1页 / 共55页
《操作系统原理及应用(Linux)》-第6章-设备管理_第2页
第2页 / 共55页
《操作系统原理及应用(Linux)》-第6章-设备管理_第3页
第3页 / 共55页
《操作系统原理及应用(Linux)》-第6章-设备管理_第4页
第4页 / 共55页
《操作系统原理及应用(Linux)》-第6章-设备管理_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《《操作系统原理及应用(Linux)》-第6章-设备管理》由会员分享,可在线阅读,更多相关《《操作系统原理及应用(Linux)》-第6章-设备管理(55页珍藏版)》请在金锄头文库上搜索。

1、 第第6章章 设备管理设备管理学习目标 I/O设备是计算机系统的一个重要组成部分。随着计算机技术的发展以及计算机应用的推广,I/O设备日趋多样化、复杂化和智能化。由于I/O设备种类种类繁多,它们的特性和操作方式差别很大,这使得设备管理成为操作系统中最繁杂且与硬件关系最密切的部分。通过本章学习,读者应该掌握以下内容:l数据传输方式l中断技术l缓冲技术l设备分配技术l设备独立性l设备驱动第六章第六章 设备管理设备管理1教学内容6.1 I/O6.1 I/O系统组成系统组成6.2 6.2 数据传输控制方式数据传输控制方式6.3 6.3 中断技术中断技术6.4 6.4 缓冲技术缓冲技术6.5 6.5 设

2、备分配设备分配6.6 SPOOLING6.6 SPOOLING系统系统6.7 I/O6.7 I/O控制过程控制过程6.8 6.8 磁盘磁盘I/OI/O6.9 LINUX6.9 LINUX系统的设备管理系统的设备管理 本章小结本章小结 6.1 I/O系统组成系统组成I/O系统是计算机系统中完成数据输入、输出的子系统。它包括输入/输出设备、相应于各设备的设备控制器,在大、中型计算机中,还配置了I/O通道。第六章第六章 设备管理设备管理36.1.1 I/O设备设备从不同的角度,可以对设备进行不同的分类。1. 按使用特性分类(1)存储设备(2)输入/输出设备2. 按传输速率分类(1)低速设备(2)中速

3、设备(3)高速设备3. 按信息传输单位分类(1)块设备(2)字符设备4. 按资源分配方式分类(1)独占设备(2)共享设备(3)虚拟设备第六章第六章 设备管理设备管理46.1.2 设备控制器设备控制器设备控制器是CPU和I/O设备之间的接口,它接收从CPU发来的命令,并去控制I/O设备工作,并向CPU发送中断信号。1. 设备控制器的功能(1)接收并识别来自CPU的命令(2)数据传输(3)记录设备的状态(4)识别设备地址和寄存器地址(5)差错控制第六章第六章 设备管理设备管理52. 设备控制器的组成第六章第六章 设备管理设备管理6寄存器数据寄存器CPU与控制器接口数据线地址线控制线I/O逻辑控制器

4、与设备接口1控制器与设备接口i数据状态控制数据状态控制控制器与设备接口控制/状态寄存器6.1.3 I/O通道通道I/O通道是一种专门负责I/O操作的小型处理机,它接受CPU的命令,独立地管理I/O操作过程,实现内存和设备之间的成批数据传输。通道相当于一个协处理器,类似于以前的微机中配置的数学协处理器。通道有自己的一套简单的指令系统,可以构成通道程序,通过独立执行通道程序来完成CPU交付的I/O操作。第六章第六章 设备管理设备管理76.2 数据传输控制方式数据传输控制方式6.2.1 程序直接控制方式程序直接控制方式 由程序直接控制内存与I/O设备之间的数据传输,又称为“忙等”方式或循环测试方式。

5、详细而言,即当要在内存和I/O设备之间进行信息传输时,由CPU向相应的设备控制器发出命令,由设备控制器控制I/O设备进行实际操作。在I/O设备工作时,CPU执行一段循环测试程序,不断测试I/O设备的完成状况“忙等”,以决定是否继续传输下一个数据。若设备未完成此次数据传输,则继续测试,若设备完成了此次数据传输,则进行下一次数据传输或继续执行程序。第六章第六章 设备管理设备管理86.2.2 中断控制方式中断控制方式 当要在主机和I/O设备之间进行信息传输时,由CPU向相应的设备控制器发出命令,由设备控制器控制I/O设备进行实际操作,每次的数据传输单位是设备控制器的数据缓冲寄存器的容量。在I/O设备

6、工作时,相应进程放弃处理机,处于等待状态,由操作系统调度其它就绪进程占用CPU。I/O操作完成时,由设备控制器向CPU发出中断信号,通知CPU本次I/O操作完成,然后由CPU 执行一个中断处理程序,对此情况做出相应反应。中断处理过程一般是这样的:首先保护现场;然后将等待I/O操作完成的进程唤醒,使其进入就绪状态;然后转进程调度。第六章第六章 设备管理设备管理96.2.3 DMA方式方式 引入原因:减少中断次数,提高CPU利用率。 减少中断次数,有两种方法: (1)增大数据缓冲寄存器的容量。 (2)另外配置一个数据传输控制器件,进行成批数据传输。 DMA方式的数据传输单位是数据块,仅在数据块传输

7、结束时才向CPU发出中断信号,从而减少了中断次数。第六章第六章 设备管理设备管理106.2.4 通道控制方式通道控制方式 为了提高计算机系统的运行效率,就要使CPU摆脱繁忙的I/O事务,而配置专门处理I/O事务的机构通道。通道是一个专门进行I/O操作的处理机,它接受主机的命令,独立地执行通道程序,对外部设备的I/O操作进行控制,在内存和外设之间直接进行数据传送。当主机交付的I/O任务完成后,通道向中央处理机发出中断信号,请求CPU处理。第六章第六章 设备管理设备管理116.3 中断技术中断技术6.3.1 中断的概念中断的概念 所谓中断,是指处理机在执行进程的过程中, 由于某些事件的出现, 中止

8、当前进程的运行, 转而去处理出现的事件, 待处理完毕后返回原来被中断处继续执行或调度其他进程执行。第六章第六章 设备管理设备管理126.3.2 中断源中断源 引起中断的事件称为中断源。计算机中的中断源种类有很多,大致可分为: 1. 强迫性中断源 (1)硬件故障 如电源故障、主存储器故障,等等。 (2)程序性错误 由执行机器指令引起的错误,如除数为零、操作数溢出、非法指令、目态下使用特权指令、地址越界等等。 (3)外部事件 时钟中断、重启动中断等。 (4)I/O中断事件 外设完成I/O操作或I/O操作出错,如打印完成、打印缺纸等。 2. 自愿性中断源 指进程执行访管指令请求OS服务,如请求分配外

9、设、请求I/O等。由访管指令引起的中断称为访管中断。第六章第六章 设备管理设备管理136.3.3 中断响应中断响应 中断源向CPU发出请求中断处理信号称为中断请求。当中央处理机发现有中断请求信号时,中止当前程序的执行,并自动进入相应的中断处理程序的过程称为中断响应。中断响应由硬件中断机构完成。第六章第六章 设备管理设备管理14 中断响应的过程:(1)保护被中断进程的现场。为了在以后能从断点处继续执行被中断的进程,系统必须保存当前程序状态字PSW和程序计数器PC的值。(2)分析中断原因,转入相应的中断处理子程序。只要将中断处理程序的入口地址送入程序计数器,将程序状态字送入程序状态字寄存器,便转入

10、了中断处理程序。第六章第六章 设备管理设备管理156.4 缓冲技术缓冲技术6.4.1 缓冲的引入缓冲的引入 引入缓冲技术的原因: (1)减少读块设备的次数 (2)减少对CPU的中断次数,放宽对中断响应时间的限制。 (3)用于无法直接通信的设备间的中转站 (4)解决程序所请求的逻辑记录大小和设备的物理记录大小不匹配的问题。 (5)加快进程(作业)的推进速度 在需要采取缓冲技术的场合,可以采用以下几种不同的缓冲技术:单缓冲、双缓冲、循环缓冲、缓冲池。第六章第六章 设备管理设备管理166.4.2 单缓冲单缓冲在单缓冲方式中,当用户进程发出I/O请求时,操作系统便在内存中为其分配一个缓冲区。其数据输入

11、的过程是这样的:当一个用户进程要求输入数据时,操作系统控制输入设备将数据送往缓冲区存放,再送往用户进程的数据存储区。第六章第六章 设备管理设备管理176.4.3 双缓冲双缓冲为输入或输出操作设置两个缓冲区buffer1和buffer2。当进程要求输入数据时,首先输入设备将数据送往缓冲区buffer1,然后进程从buffer1中取出数据进行处理;在进程从buffer1中取数据的同时,输入设备可向缓冲区buffer2中送入数据。当buffer1中的数据取完时,进程又可不需等待地从buffer2中提取数据,同时输入设备又可将数据送往buffer1。如此交替使用buffer1和buffer2两个缓冲区

12、。当进程进行输出时的操作与输入类似。第六章第六章 设备管理设备管理186.4.4 循环缓冲循环缓冲循环缓冲技术是在内存中分配大小相等的存储区作为缓冲区,并将这些缓冲区连接起来,每个缓冲区中有一个指向下一个缓冲区的指针,最后一个缓冲区的指针指向第一个缓冲区第六章第六章 设备管理设备管理196.4.5 缓冲池缓冲池上述缓冲机制是针对某特定的I/O进程和计算进程,是专用缓冲结构,而不是针对整个系统的公用缓冲结构。当系统较大时,会有很多这样的缓冲结构,这不仅要消耗大量的内存空间,而且其利用率不高。为了提高缓冲区的利用率,目前普遍采用公用缓冲池结构,在缓冲池中设置了可供多个并发进程共享的缓冲区。第六章第

13、六章 设备管理设备管理206.5 设备分配设备分配6.5.1 与设备分配相关的因素与设备分配相关的因素1. I/O设备的固有属性 独占设备:这类设备被分配给一个进程后,就被该进程独占使用,其他任何进程不能使用,直到该进程使用完毕(不再使用)主动释放为止。 共享设备:是指可以由多个进程交替使用的设备。如磁盘机。第六章第六章 设备管理设备管理212. I/O设备的分配算法(1)先来先服务算法 在先来先服务算法中,对同一设备,按并发进程中I/O请求发出的时间先后,将I/O请求块排队。当设备可用(可以分配)时,则将设备分配给队首元素对应的进程,即最先对此设备提出I/O请求的进程。(2)优先级算法 按一

14、定原则设置进程的优先级,按进程的优先级由高到低的顺序对各并发进程对同一设备的I/O请求块排队。当设备可用(可以分配)时,则将设备分配给队首元素对应的进程在对同一设备提出I/O请求的并发进程中优先级最高的进程。第六章第六章 设备管理设备管理223. 设备分配的安全性对独占设备的静态分配不会引起死锁。在对共享设备进行动态分配时,从系统安全性角度看,有两种分配方式。(1)安全分配方式(2)不安全分配方式第六章第六章 设备管理设备管理234. 设备无关性设备无关性是指,当在应用程序中使用某类设备时,不直接指定具体使用哪个设备,而只指定使用哪类设备,由操作系统来为进程分配具体的一个该类设备。6.5.2

15、虚拟设备技术虚拟设备技术用一共享设备高速存储设备(如高速磁盘机)上的存储区域模拟独占设备。虚拟设备技术的关键是预输入、缓输出。预输入:在作业执行前,操作系统先将作业信息从独占设备预先输入到高速外存中。此后,作业执行中不再占有独占输入设备,使用数据时不必再从独占设备输入,而是从高速外存中读取。缓输出:在作业执行过程中,当要进行输出操作时,不必直接启动独占设备输出数据,而可以先将作业输出数据写入高速外存中,在作业执行完毕后,再由操作系统来组织信息输出。第六章第六章 设备管理设备管理246.6 SPOOLING系统系统6.6.1 什么是什么是SPOOLING系统系统 SPOOLING(Simulta

16、neaus Peripheral Operating On Line)的含义是外围设备同时联机操作,又称为假脱机操作。它不需要额外配置卫星机,而是将输入输出设备同时连接在主机上。它是对脱机输入输出的模拟。用一道输入程序模拟脱机输入时的卫星机,通过通道把低速设备上的数据传送到高速磁盘上;用另一道程序模拟脱机输出时的卫星机,通过通道把数据从磁盘传送到低速的输出设备上。第六章第六章 设备管理设备管理256.6.2 SPOOLING系统的组成系统的组成第六章第六章 设备管理设备管理26输出设备输入设备输入缓冲区输出缓冲区内 存磁 盘输入井输出井图6-8 SPOOLING系统输入进程输出进程6.7 I/

17、O控制过程控制过程当用户进程通过系统调用提出I/O请求时,从系统响应此请求开始,至系统完成用户要求的I/O操作,并唤醒相应的等待I/O完成的进程为止,这整个过程称为I/O控制过程。I/O控制过程包括以下步骤:(1)响应I/O请求,为在具体物理设备上进行I/O操作做准备。包括将逻辑设备名转换为物理设备名(设备分配)、I/O请求的合法性等。(2)设备驱动,控制设备完成I/O操作,对每类设备分别设置不同的设备驱动程序。(3)中断处理,I/O操作完成之后,设备控制器向CPU发送中断信号,CPU响应后转向相应的中断处理程序进行善后处理。第六章第六章 设备管理设备管理276.8 磁盘磁盘I/O6.8.1

18、磁盘存储格式磁盘存储格式 磁盘可包含一个或多个圆形盘片,每片有两面。每面首先划分为若干半径不同的同心磁道,然后将每个磁道等分为若干扇区。各磁道虽然周长不同,但存储容量相同,各扇区的存储容量也相同,一般每个扇区的容量为512字节,内层磁道的存储密度比外层磁道高。磁盘存储空间分配以整数N个扇区为单位,称为簇,在不同的操作系统中,N可有不同的取值。这样一个文件在磁盘上占有整数个簇,一个簇只能分配给一个文件使用。磁盘I/O以扇区为单位,一次传送一个扇区。第六章第六章 设备管理设备管理286.8.2 磁盘磁盘I/O性能性能一般以磁盘存取速度来衡量磁盘I/O性能。对磁盘的存取操作包括三个步骤:首先磁头径向

19、运动到指定磁道,然后旋转盘片,将指定要访问的扇区旋转到磁头下,使磁头处于扇区开始位置,然后开始读或写数据。因此磁盘访问时间可以分为以下三部分。(1)寻道时间Ts这是把磁头移到指定磁道上用的时间。(2)旋转延迟Tr这是指定扇区旋转到磁头下经历的时间。第六章第六章 设备管理设备管理29(3)传输时间Tt 这是指把数据从磁盘读出或向磁盘写入数据所经历的时间。由读写的字节数和磁盘旋转速度决定。 其中,b为一次读写的字节数,r为磁盘每秒的转数,N为每条磁道的字节数对磁盘的访问时间为三部分时间之和:T=Ts + Tr + Tt。在这三个时间中,寻道时间和旋转延迟与读写的字节数无关,寻道时间所占比例最大。第

20、六章第六章 设备管理设备管理306.8.3 磁盘调度磁盘调度1. 先来先服务算法 这种调度算法按进程请求访问磁盘的时间先后次序进行调度。此算法的优点是实现简单,且公平,每个进程的磁盘I/O请求都能依次得到处理,不会出现某一进程的请求长时间得不到满足的情况。缺点是未对寻道进行优化,平均寻道时间较长。第六章第六章 设备管理设备管理312. 最短寻道时间优先算法 该算法选择这样的磁盘I/O请求,其要访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。此算法只从当前角度考虑,没有考虑全局,表面看来平均寻道时间应该最短,但是不一定。第六章第六章 设备管理设备管理323. 扫描算法扫描算法不仅

21、考虑到要访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向。例如,当磁头正在从里向外移动时,扫描算法选择的下一个访问对象,是在当前磁头所在磁道之外的距离当前磁道最近的磁道。这样从里向外地访问,直至再无更外的磁道需要访问时,磁头才返回从外向里移动,同样每次也是选择当前磁道之内的距离最近的磁道,到头后再返回,从里向外移动访问。由于此算法中磁头移动的规律很象电梯的运行,因此又称为电梯调度算法。第六章第六章 设备管理设备管理334. 循环扫描算法规定磁头单向移动。例如,只从里向外移动,当磁头移到最外的磁道并访问后,磁头立即返回到最里的要访问的磁道,再从里向外移动。第六章第六章 设备管理设备

22、管理346.8.4 磁盘高速缓存磁盘高速缓存当进程从磁盘读取数据时,为了提高读盘速度,可以采用缓冲技术。即在内存中开辟一个缓冲区用于接收从磁盘读取的数据,这个缓冲区称为磁盘高速缓存,缓冲区的大小与磁盘块相匹配。其工作原理类似于内存和CPU之间的高速缓存。当有一进程请求访问某盘块中的数据时,先去查看磁盘高速缓存,看其中是否有进程所需访问的盘块数据的拷贝。若有,则直接从磁盘高速缓存中提取数据,而不必访问磁盘;若没有,则先将所需盘块读到磁盘高速缓存,然后从中提取数据送往请求进程的数据存储区。第六章第六章 设备管理设备管理356.9 LINUX系统的设备管理系统的设备管理6.9.1 LINUX系统设备

23、管理的特点系统设备管理的特点 LINUX系统把设备分为两类: (1)块设备。用于存储信息,它对信息的存取是以信息块为单位的,如通常使用的磁盘、磁带等。 (2)字符设备。通常用于输入输出,作为人和计算机之间的接口,它对信息的俄存取是以字符为单位进行的,如键盘、鼠标、显示器、打印机等。 LINUX系统把I/O设备看作文件,称为特别文件。第六章第六章 设备管理设备管理366.9.2 LINUX设备驱动程序的接口设备驱动程序的接口1. 文件系统与设备驱动程序的接口第六章第六章 设备管理设备管理37对字符设备特殊文件的系统调用 open close read write 文 件 系 统 open clo

24、se read write对块设备文件的系统调用对普通文件的系统调用 字符设备开关表 块设备开关表 open close read write 字符设备驱动程序 设备中断处理程序 open close strategy 块设备驱动程序设备中断处理程序块设备字符设备 中断向量表高速缓冲模块设备驱动设备中断设备中断设备驱动图6-9 文件系统与设备驱动程序的接口2. 设备开关表 LINUX系统把块设备和字符设备又分别细分为若干类。如:块设备可分为硬盘、软盘、磁带、光盘等类,字符设备可分为终端设备、打印机等。为指定一类设备,将设备类从0开始顺序编号,称为主设备号;同一类的设备可能有许多,为了指定一台具

25、体设备,需要一个次设备号来标识。因此,在指定一台具体设备时要给出:块设备/字符设备、主设备号、次设备号。第六章第六章 设备管理设备管理38 设备开关表相当于一个二维矩阵,每一行含有同一类设备的驱动程序入口地址,主设备号与行号一一对应;每一列是完成不同操作(open、close、read、write)的驱动程序的入口地址。第六章第六章 设备管理设备管理396.9.3 LINUX的磁盘高速缓存的磁盘高速缓存1. 磁盘高速缓存 对文件系统的一切存取操作,都能通过直接从磁盘上读或往磁盘上写来实现,但磁盘I/O的速度较慢,因此使系统性能较低。为了减少对磁盘的存取频率,LINUX使用了磁盘高速缓存技术。L

26、INUX磁盘缓冲管理策略是试图把尽可能多的有用的数据保存在缓冲区中。磁盘缓冲管理模块位于文件系统与块设备驱动程序之间。第六章第六章 设备管理设备管理40当从磁盘中读数据时,文件系统先从磁盘高速缓存中读,如果数据已在高速缓存中,则可以不必启动磁盘I/O,如果数据不在高速缓存中,则启动磁盘I/O,从磁盘读取数据送往高速缓存,进程再从高速缓存中读取数据。当进程往磁盘上写数据时,先往高速缓存中写,以便随后又读它时,能从高速缓存中读取,而不必启动磁盘读取。LINUX采取了“延迟写”策略,即:如果缓冲区还没有写满,则不急于把缓冲区的内容写到磁盘上,而是在缓冲管理数据结构中对该缓冲区设置延迟写标志,当高速缓

27、存中的数据延迟到必须往磁盘上写的时候才进行写盘操作。第六章第六章 设备管理设备管理412. 磁盘缓冲管理的数据结构LINUX中使用多个内存缓冲区进行磁盘缓冲,为了合理有效地使用这些缓冲区,必须按一定策略进行管理。管理的依据是缓冲区的相关信息,为了能访问这些信息,必须将其按一定的数据结构进行组织。首先,对每个缓冲区,建立“缓冲首部”来存放该缓冲区的相关信息。其内容有:设备号dev:缓冲区内包含的信息所属设备的设备号。块号blkno:该缓冲区对应的磁盘的物理块号。状态flag:描述了缓冲区的当前状态。包括:第六章第六章 设备管理设备管理42 忙标志位BUSY:缓冲区当前是否正忙。 有效位AVE:缓

28、冲区包含的数据是否有效。 延迟写位DELWR:是否延迟写。 写标志位WRITE:是否正在把缓冲区的内容写到磁盘上。 读标志位READ:是否从磁盘往缓冲区读取信息。 等待位WAIT:是否有一个进程正在等待该缓冲 区。设备缓冲区队列前向指针b-forw设备缓冲区队列后向指针b-back空闲缓冲区队列前向指针av-forw空闲缓冲区队列后向指针av-back第六章第六章 设备管理设备管理43要对所有缓冲区进行管理,必须将所有缓冲首部组织成一定的数据结构,LINUX建立了两个缓冲区队列:空闲缓冲区队列和设备缓冲区队列。为了对缓冲区进行分配,把所有的空闲缓冲区组织成一个队列。此队列中的所有缓冲区的忙标志

29、位BUSY均为0。该队列是一个双向循环链表。设备号dev块号blkno状态flagb-forwb-backav-forwav-back第六章第六章 设备管理设备管理44对于每类设备都建立一个设备缓冲区队列,是与该类设备有关的所有缓冲区构成的队列。此队列中的所有缓冲区首部的忙标志位BUSY均为1。该队列是一个双向循环链表。任何缓冲区首部,要么位于空闲缓冲区队列中,要么位于设备缓冲区队列中。第六章第六章 设备管理设备管理453. LINUX磁盘缓冲区管理算法LINUX提供的磁盘高速缓冲区不属于某进程专用,而是由多进程共享,由操作系统进行统一管理。为了提高使用效率,必须采取适当的管理策略。当某进程要

30、从一个磁盘读取数据时,先检查要读取的磁盘块是否包含在某缓冲区中,如果不在,则从空闲缓冲区队列中分配给它一个空闲缓冲区;当某进程要将数据写入磁盘时,先看一下要写的磁盘块是否在某缓冲区中,如果不在则为这个磁盘块分配一个空闲缓冲区。被分配的空闲缓冲区从空闲缓冲区队列中退出,进入相应设备的设备缓冲区队列,该缓冲区的BUSY位置1。 第六章第六章 设备管理设备管理46当缓冲区的信息读到相应进程的内存区后,或进程信息写到缓冲区后,便释放进程使用的缓冲区,将flag中的BUSY位置0,送入空闲缓冲区队尾,即使置为延迟写的缓冲区也送入空闲缓冲区队列。这样可以使有限的缓冲区得到充分利用,满足多个并发进程的需求。

31、当一个缓冲区被送往空闲缓冲区队尾时,并不退出设备缓冲区队列,而仍然留在原队列中。这样做的原因是:此次使用完毕送往空闲缓冲区队列的缓冲区,其保存的信息可能被再次访问。如果将其保留在设备缓冲区队列中,当后来要读取的磁盘数据仍然保留在此缓冲区中时,可以直接从此缓冲区读,而不必启动磁盘I/O,提高了读盘速度。这正是使用磁盘高速缓存的目的。 第六章第六章 设备管理设备管理47如果要将一个使用完毕送入空闲缓冲区队列的缓冲区重新分配给其他设备,则可以将该缓冲区同时从空闲缓冲区队列和原设备缓冲区队列中抽出,送入新的设备缓冲区队列。因为被使用过的缓冲区放在空闲缓冲区队列的末尾,随着不断地从空闲缓冲区队列上摘下缓

32、冲区,后面的缓冲区会不断向队首移动。如果一个延迟写标志位为1的缓冲区移到空闲缓冲区队列的头部,当其被重新分配之前,要先把其内容写到相应设备的指定磁盘块中。第六章第六章 设备管理设备管理486.9.4 LINUX的字符设备缓冲区管理的字符设备缓冲区管理1. 字符缓冲区及其队列 LINUX中为字符设备的数据传输设置了一个公用的字符缓冲池,该缓冲池内含有若干个缓冲区,但每个缓冲区很小,只含几个或几十个字节。为合理使用这些缓冲区,将其组织成为一定的数据结构。同块设备缓冲区的管理类似,建立了空闲字符缓冲区队列和设备字符缓冲区队列。每个字符缓冲区由四部分构成:该缓冲区第一个字符的位置、最后一个字符的位置、

33、指向下一个字符缓冲区的指针、字符缓存区。第六章第六章 设备管理设备管理49第六章第六章 设备管理设备管理50首字符位置末字符位置指向下一字符缓冲区字符缓存区字符缓冲区对字符缓冲区的操作是每次送入一个字符或取出一个字符。送入字符在字符缓存区的尾部进行,即放在最后一个字符的后面;取出字符从字符缓存区的首部进行,即取第一个字符。最后一个字符的位置不一定是字符缓存区的末尾,随着不断往字符缓存区中放入字符,最后一个字符的位置会向后推移,直至字符缓存区的末尾;第一个字符的位置不一定是字符缓存区的开始位置,随着不断地从缓冲区中取出字符,第一个字符的位置不断后移直至字符缓存区的末尾。第六章第六章 设备管理设备

34、管理512. 空闲字符缓冲区的分配和回收在一进程用字符设备进行I/O操作时,文件系统为该字符设备分配一个空闲缓冲区。分配时要检测空闲缓冲区队列,当队列非空时,从队首取下一个空闲缓冲区分配给该字符设备,送入该字符设备的字符缓冲区队列,并把指向该缓冲区的指针返回给调用进程;当队列空时,表明已经没有缓冲区可分配,则请求I/O操作的进程被阻塞。当字符缓冲区中的数据被提取完后,便释放该缓冲区,将该缓冲区送入空闲字符缓冲区队列的首部。(空闲字符缓冲区队列其实是一个栈。)若此时有因申请空缓冲区而阻塞的进程,则将其唤醒。第六章第六章 设备管理设备管理52本章小结本章小结本章讲述了I/O系统构成、数据传输控制方

35、式、中断技术、缓冲技术、设备分配技术、SPOOLING系统、I/O控制过程、LINUX系统的设备管理。I/O设备与主机(CPU、内存)之间的通信不是直接的,而通过设备控制器,设备控制器是I/O设备和主机之间的接口。在大型计算机系统中,为了使I/O操作和计算充分并行,设置了专门负责I/O操作控制的通道。I/O设备和进程之间的数据传送的控制方式通常有4种:程序直接控制方式、中断控制方式、DMA方式和通道控制方式。第六章第六章 设备管理设备管理53中断技术是计算机系统中普遍采用的一种关键技术,引入这一技术的主要原因是使CPU和设备并行工作。缓冲技术有多种用途。缓冲的设置方式有硬缓冲和软缓冲,缓冲技术

36、分为针对某进程/作业的专用缓冲机制和针对整个系统的公用缓冲机制。专用缓冲机制有:单缓冲、双缓冲、循环缓冲,公用缓冲机制有公用缓冲池。设备分配与很多因素相关。本章就设备的三种类型:独享设备、共享设备及虚拟设备介绍了独享分配、共享分配和虚拟分配技术。SPOOLING技术通常用于多道批处理系统,采用了通道技术、中断技术、多道程序设计技术、虚拟设备技术,使外围设备和主机充分并行操作,大大提高了主机和设备的利用率。第六章第六章 设备管理设备管理54I/O控制过程从用户进程提出I/O请求开始,包括三个步骤:响应用户进程的I/O请求做准备工作、设备驱动、设备中断处理。其中关键步骤是设备驱动,设备驱动程序是驱动物理设备和DMA控制器或I/O控制器进行I/O操作的子程序集合,直接与硬件打交道。设备驱动程序与设备中断处理程序配合工作,完成用户进程交付的整个I/O操作。LINUX系统设备管理的特点是把设备分为块设备和字符设备,将设备作为特殊文件,用户可以像使用普通一样使用设备文件。第六章第六章 设备管理设备管理55

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号