Linux基础教程(清华课件)-第5章设备.ppt

上传人:小飞机 文档编号:6511213 上传时间:2023-11-08 格式:PPT 页数:47 大小:333KB
返回 下载 相关 举报
Linux基础教程(清华课件)-第5章设备.ppt_第1页
第1页 / 共47页
Linux基础教程(清华课件)-第5章设备.ppt_第2页
第2页 / 共47页
Linux基础教程(清华课件)-第5章设备.ppt_第3页
第3页 / 共47页
Linux基础教程(清华课件)-第5章设备.ppt_第4页
第4页 / 共47页
Linux基础教程(清华课件)-第5章设备.ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《Linux基础教程(清华课件)-第5章设备.ppt》由会员分享,可在线阅读,更多相关《Linux基础教程(清华课件)-第5章设备.ppt(47页珍藏版)》请在三一办公上搜索。

1、Linux基础教程(1)操作系统基础,清华大学计算机基础教育课程系列教材 汤荷美 董渊 李莉 程志锐 编著,第5章 设 备,5.1 设备介绍5.2 数据传输5.3 I/O软件原理5.4 小结习题,计算机系统中所有的软硬件都是由操作系统控制和管理的,其中除了CPU和内存之外的几乎所有硬件通常统称为外部设备。操作系统中设备管理的任务是负责控制并操纵所有的设备,实现不同外部设备之间、外部设备和内存以及CPU之间的数据传输,使它们协同工作,在获得最佳效率、提供良好服务的同时,尽可能地提供统一的用户命令和函数调用接口,对用户屏蔽不同设备之间的差异。在Linux等操作系统中,所有的设备统一当作文件来处理,

2、称为设备文件,和其他文件一样,这种文件可以使用处理文件的标准系统调用打开、关闭和读写。,操作系统设备管理部分通常也采用分层结构,底层是设备相关部分,直接和相应的设备打交道,负责设备的具体控制,并向上层提供一致的访问接口,通常称为设备驱动程序。上层通常是和设备无关的,这个部分接受来自上层的具体访问请求,并根据实际情况把这些访问请求转向具体的设备驱动程序接口,和设备进行通信,接受驱动程序的执行结果。本章简要介绍设备管理中数据传输控制的基本原理,并以此为基础,学习设备分配概念及设备驱动程序。,5.1 设备介绍操作系统中用于设备管理的内核代码在整个内核中是数量最多的部分。外部设备给用户提供进行计算机基

3、本操作以及完成各种特定功能的接口,用户需要交给计算机处理的所有数据都必须通过特定的外部设备来传输到内存和CPU。设备可以被简单地看作是由机械部分和电子部分组成。在微机系统中,控制器一般都有自己的控制和状态寄存器,独立于系统的内存空间,所有设备的寄存器组成计算机的输入/输出空间(称为I/O空间),操作系统通过设备驱动程序访问I/O空间,管理设备控制器,由控制器具体操纵设备完成预定的任务。,5.1.1 设备分类外部设备可以按照不同的标准进行分类。从普通用户的角度,按照设备的使用特性来划分,普通微机的外部设备主要包括存储设备和输入输出设备。从操作系统管理的角度来看,按照设备传输信息的组织形式,外部设

4、备可以划分为字符设备、块设备和网络设备。这也是Linux操作系统进行设备管理过程中的划分方式。Linux系统中,每一个设备对应于一个设备文件,具有独立的设备号。主设备号描述相应的设备驱动程序,从设备号用来区分同一驱动程序控制下的不同设备实例。,5.1.2 设备实例磁盘磁盘是计算机系统中最常见的存储设备,IDE磁盘是现在PC上使用最广泛的硬盘类型,每个IDE控制卡支持两个独立的盘(可以是硬盘、光驱等),每个盘在Linux里表现为独立的块设备。操作系统本身以及大量的用户数据都存放在磁盘中,同时,Linux系统还使用一部分磁盘空间作为内存交换空间,实现虚拟内存管理。所有实际的磁盘都由多层盘片组成,磁

5、盘的物理结构示意图参看图5.1。磁盘的扇区个数、磁头个数和柱面个数三个数据称为磁盘的基本几何参数。如果知道每个扇区的具体容量(单位扇区容量),整个磁盘的容量就是这三个几何参数和单位扇区容量的乘积。,图5.1 磁盘设备结构示意图,磁盘数据的读写需要一定的时间,这个时间具体由三个部分组成,一是磁头跨越磁道径向移动到要读写道的时间,一般称为寻道时间;二是要读写磁道等待数据移动到磁头位置的时间,称为旋转延迟时间;三是具体读写数据的时间,称为数据传输时间。在实际的使用过程中,通常把整个磁盘划分为小的管理单元,称为磁盘分区(partition)。在Linux系统中,每一个磁盘分区都可以安装一个独立的文件系

6、统,具有独立的设备号,主设备号对应着磁盘本身,从设备号对应于该磁盘上具体的分区,同时,系统还使用惟一的设备文件来表示磁盘分区,比如设备文件/dev/hda5,hda表示该磁盘的IDE接口上的第1个磁盘(依此类推,hdb、hdc表示该接口上第2、,第3个磁盘等等),对应于主设备号,5是它的从设备号。,5.2 数据传输数据在外部设备与处理机、内存之间的传输控制,是操作系统设备管理的主要功能,从设备到内存和处理机的数据传输称为输入(input),从内存和处理机到设备的传输称为输出(output),因此数据传输也通常称为数据I/O。一般的PC中,CPU、内存通过系统总线连接在一起,总线定义了所有设备之

7、间通信的协议,各种设备都直接或者间接地连接在总线上,设备和处理机以及内存之间的数据传输必须通过总线来实现。数据传输控制要求能够实现数据在外部设备和内存、CPU之间快速、可靠的传送,充分发挥设备资源的能力,同时使用尽可能少的系统开销。,5.2.1 数据传输控制方式PC机中常用的数据传输控制方式包括程序直接控制、中断和内存直接访问三种。1.程序直接控制程序直接控制方式就是由用户进程来直接控制内存,或者CPU和外部设备之间的数据传输。用户进程是数据传输的控制者,在进程执行过程中需要传输数据时,通过CPU启动外部设备,继续占用处理机,进入查询测试等待。该进程不停地查询设备是否准备好,一旦数据准备好,完

8、成数据传输,继续下面的执行。,在整个传输过程中,用户进程一直占用CPU,而CPU所做的大量工作是查询设备的状态,因此这种传输方式也称为查询测试方式。如果采用这种方式来传输大量的数据,由于外部设备的速度比CPU要慢很多,因此大量的时间浪费在查询上,设备的利用率可以得到一定程度的保证,但是CPU资源却得不到有效的利用。2.中断方式针对程序直接传输浪费CPU资源的缺陷,引入了中断(interrupt)技术。中断方式要求CPU和外部设备之间有相应的中断请求线,外部设备可以通过中断请求线打断CPU正在进行的工作,转入相应的操作。,中断方式下,当用户进程执行过程中需要数据传输时,通过CPU启动外部设备,自

9、己放弃处理机资源,进入等待状态,外部设备进行相应的数据准备工作,而CPU可以经过调度被其他进程所使用。直到外部数据准备完成之后,设备通过中断请求线发出中断,发生调度,CPU转入中断处理程序,进行相应的数据操作,而等待数据传输的进程被唤醒转入就绪状态,在适当的时候占有处理机,并得到数据继续执行。利用中断方式,在用户进程等待设备准备数据到发出中断这一段时间内,CPU可以执行其他进程,提高了处理机和外部设备的并行程度,一定程度上解决了处理机资源浪费的问题。但是,如果设备每,一次进行数据传输都只能准备少量的数据的话,系统的效率也得不到有效的提高。每次只传输少量数据,每次都要发生中断,需要进行多次进程调

10、度和进程现场切换,就要耗费大量的CPU资源。同时,如果有多个设备同时进行大规模的数据传输,整个系统中的中断次数会急剧增加,造成CPU无法及时响应中断,出现数据丢失的情况。因此,必须采取一定的措施保证设备在一次中断发生之前进行相当规模的数据传输。3.直接内存访问直接内存访问(Direct Memory Access,DMA)可以用来解决中断方式的上述问题,它在外部设备和内存之间开辟直接的数据通道,设备控制器具有。,更强的功能,可以窃取CPU的一个工作周期,不需要CPU的参与直接把数据放入到内存中指定的位置。DMA方式传输数据时,正在执行的用户进程通过CPU发出数据传输请求,同时把数据存放地址和数

11、据量这些主要参数通知DMA控制器,用户进程转入等待状态,CPU可以执行其他进程,外部设备不断地窃取CPU的工作周期,把准备好的数据不断地写入内存相应的位置,直到所要求的数量全部完成或者发生错误,才通过中断线通知CPU进行相应的中断处理,这时需要数据的用户进程转入就绪状态,在适当的时间占用CPU继续执行。在整个数据传输过程中,DMA控制器只是获取CPU的工作周期,并不要求它做额外的处理,只是到全部数据传输完成,或者出现错误才发生中断,这样就可以保证使用尽可能少的中断来完成尽可能多的数据传输。在前两种数据传输控制方式中,数据传输都是围绕CPU开展的,CPU得知设备准备好数据之后,直接控制数据的传输

12、,把它们放到内存中适当的位置,由用户进程使用,二者的差别是CPU获得设备状态的方式不同,前者靠不断地查询,后者是靠设备发送中断请求。而在DMA方式中,数据交换是围绕内存进行的,外部设备和内存之间直接进行数据传输,数据传输过程中不需要CPU的干预,只有数据传输完成之后才通知CPU。,5.2.2 数据传输关键技术从上面的介绍可以看到,中断技术在整个数据传输过程中占有相当重要的地位,它是提高外部设备和CPU的并行程度、改善系统整体性能的关键。另外一个关键技术是缓冲,利用这样的技术,可以大大地减少外部设备的访问次数,实现系统整体性能的提高。1.中断中断是指计算机在执行期间,系统内发生任何非寻常的或非预

13、期的急需处理事件,使得CPU暂时中断当前正在执行的程序,而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处,继续执行或者调度新的进程执行的过程。引起中断发生的,事件称为中断源,在计算机系统中,外部设备数据传输过程中发生的中断属于I/O中断,是中断源中的一大类,其他中断源有周期性的时钟中断、电源掉电产生的中断等等。中断源向CPU发出的请求中断处理信号称为中断请求,而CPU收到中断请求后转入相应的事件处理程序称为中断响应。按照中断源产生的位置,中断分为内中断和外中断。内中断由处理机和内存内部产生,通常也称为陷阱,它包括程序运算引起的各种错误和分时系统中的时间片中断等等。外中断由处理机和内

14、存之外的设备发出,包括上面讲到的I/O中断和时钟、电源中断等等。,并不是所有中断请求都会得到及时的响应。很多情况下,比如系统正在进行进程调度或者内存调度操作,为了保证操作的封闭性,这时不允许CPU响应中断,这种情况称为禁止中断或者关中断。CPU禁止中断,完成必要的操作之后必须通过硬件重新设置才能够接收中断,这个过程称为开中断。关中断之后,CPU不接受任何中断请求。另外一种情况是CPU可以有选择地响应某些中断,称为中断屏蔽。中断屏蔽是指中断请求产生之后,系统用软件方式有选择地封锁部分中断,而允许其余部分中断仍然能够得到响应。并不是所有中断请求都具有平等地得到响应的权利,根据中断源的紧急程度,操作

15、系统对不同的中断请,求赋予不同的优先级。如果两个中断请求同时发生,优先级高的中断有权在优先级低的中断之前得到响应。各种中断源的优先级在系统设计时设置完成。而CPU收到中断请求后,首先要进行进程切换,原来正在执行的进程放弃处理机,保护现场完成之后,转入相应的事件处理程序,进行中断处理。一台PC机中断号的个数是有限的,在Linux系统中,中断号当前使用情况记录在文件/proc/interrupts中。如果安装了很多设备,大家就必须采取一定的措施来共享有限的中断号资源,称为中断共享,实现中断共享需要设备和中断处理程序两个方面的支持,一方面CPU能够通过询问设备而知道该设备是否产生过中断,另一方面中断

16、处理程序能够向前传递别的设备产生的中断信号。,2.缓冲缓冲是计算机系统中为了解决外部设备和CPU之间处理速度的匹配问题,减少外部设备中断请求次数而设置的暂时存放数据的区域。根据数据传输控制方式,可以有两种实现方式。一是采用硬件缓冲器,在外部设备中设置缓冲,外部设备每次传输数据之前,可以利用缓冲器准备更多的数据,提高每一次传输的数据量,减少传输的次数。可以想象,如果某个设备每次只准备一个字节,传输1KB数据需要发生一千多次中断请求,即便是DMA方式,也需要一千次获取CPU工作周期,每次传输都要获取总线使用权,对其他进程的影响会是很大的。如果该设备设置1KB大小的缓冲器,可,以先把数据都准备在缓冲

17、中,然后只需要一次中断,一次性掌握CPU和总线就可以完成数据传输,系统的效率可以得到明显的改善。另一种方法是在内存中划分专用的数据缓冲区,所有的数据I/O都要经过这些缓冲区,每次发生数据传输后并不清除缓冲区中数据,下一次访问数据时首先在缓冲区中查找,如果缓冲区中有,则不需要启动外部设备就可以得到需要的数据,如果缓冲区中没有需要的数据,再启动设备。这样,经过一段时间的积累,经常访问的数据基本都在缓冲区中,系统启动设备的次数就大大降低,可以提高数据I/O的整体效率。前一种实现方法主要是设备的硬件本身增加了缓冲器,属于硬件缓冲,后一种方法则主要由操作系统,来实现,称为软缓存。在Linux系统中,I/

18、O过程中使用了多种缓冲区,其中最主要的是由文件系统来管理,用来实现块设备I/O的块高速缓冲区,第6章“文件系统”中,将结合块高速缓冲区进一步讨论缓冲技术的实现和管理。5.3 I/O软件原理I/O软件是控制外部设备与内存、处理机进行数据交换的所有软件的通称。其主要的任务是充分发挥各种设备的作用,屏蔽各种设备的特殊性,在保证系统具有较高的整体性的同时,尽可能向用户提供一个友好、清晰、规范和设备独立的配置及使用界面。计算机系统的I/O软件也同样具有层次结构。,5.3.1 Linux系统I/O软件层次结构操作系统中I/O软件大多数都可以看作是分层结构,图5.2给出了Linux系统I/O软件层次结构示意

19、图。,图5.2 Linux系统I/O软件层次结构示意图,在Linux系统中,I/O软件和文件系统是紧密联系的,文件系统提供了用户访问设备、进行数据I/O操作的一致性接口,这个部分是设备独立的,用户可以采用统一的方式访问不同的设备,文件系统中实现了设备管理的设备无关性。在Linux系统中设备都是按照文件的方式命名的,每一个设备是一个特殊类型的文件,从用户使用的角度来看,对设备的访问也等同于对文件的访问,具体的设备操作由文件系统根据情况映射到具体的设备驱动程序来完成。所有的设备都采用和文件相同的访问权限控制方法,这种访问权限的控制和用户联系在一起,有效地实现了设备的保护和设备数据的保密。,缓冲区管

20、理和设备分配也是由文件系统完成的。这里的缓冲区主要指内存中开辟的软缓冲区,它是关系到整个系统效率的关键技术之一。对于系统中的磁盘等共享设备,可以在文件系统的管理下同时为多个用户服务,而对于打印机等独占设备,则属于临界资源,某一个特定时刻通常只能为一个用户提供服务,这两种不同类型的设备必须分别采取不同的分配方式。处理和管理硬件控制器的软件是设备驱动程序。在Linux系统中,每个设备驱动程序都是内核的一部分,它们提供设备与系统引导程序的接口,可以在启动过程中对设备进行初始化,还提供面向设备无关部分的接口,接受上层设备无关软件的I/O请求,,最后通过向下的设备控制器接口,采用查询或者中断方式操纵设备

21、控制器,来和具体设备进行数据传输。Linux系统的设备驱动程序通常可以采用模块(modules)的方式来设计,在系统引导完成之后,可以动态地加载或卸载,节将介绍这方面的知识。除了少量使用查询方式的设备之外,计算机系统中大多数设备都利用中断来控制数据的传输。中断发生之后,CPU将保存现场并切换到中断处理程序。一般情况下,中断处理过程中不允许再响应其他中断,至少不能响应具有相同、或者更低优先级的中断,为了不影响其他中断的正常响应,中断处理过程必须要尽可能快地完成。,实际上,要保证每一个中断处理程序都很快执行完是不太现实的。Linux采用了一种特殊的方式来实现中断处理的快速完成,称为底半(botto

22、m half)处理的技术。每一个中断处理程序,实际上都可以划分为两个部分一个部分响应中断请求,传输相关数据,通常只是中断处理工作中很小的一部分;另一个部分处理和发生中断的设备相关的各种数据结构,解决设备状态信息和操作模式的转换等各种善后工作,这个部分通常要和设备进行通信,需要更多的时间。根据中断处理程序的这种特点,Linux系统中把一个中断处理分隔为两个部分:快速的上半部分(top half,顶半)和慢速的下半部分(bottom half,底半)。顶半只处理很少一部分,工作,通常负责处理硬件发出的请求,解决数据传输问题,必须快速执行,尽可能保证在下一个中断产生之前完成。底半处理该设备相关的数据

23、结构和设备状态控制信息等比较费时的工作,时间方面的要求不很高,同时也允许响应其他中断请求。因此,Linux中断处理程序可以分为顶半和底半两个部分,中断发生之后,中断处理的顶半首先快速执行,处理完成之后就可以接受其他中断,剩下的底半部分放到一个特定的队列中,由内核提供的特殊机制负责在适当的时机统一执行。这样,既可以保证中断处理程序的完整性,又可以快速响应其他中断,保证系统具有良好的响应特性。,当一个用户进程发出I/O请求之后(比如,在用户进程中执行了一个设备读取的函数调用,这个I/O请求直接发送给文件系统),文件系统根据函数调用参数确定需要读取的设备,先进行设备访问权限的检验,如果合法则继续进行

24、,否则就返回错误信息。文件系统为这个读取工作申请适当的缓冲区,如果发现需要的数据在缓冲区中已经存在,直接从缓冲区中读取数据,向用户进程返回I/O应答,整个读取过程完成。,如果缓冲区中没有需要的数据,文件系统根据情况进行设备分配,向下层的设备驱动程序发送具体的读取请求。驱动程序利用上层传来的数据信息,操纵设备控制器读取数据,发出读取命令后进入等待状态,设备则进行具体的数据准备工作,CPU则可以转向其他进程。外部设备数据准备完成之后,发出中断请求,转入中断处理程序完成负责中断响应和数据传输的顶半部分,中断处理的底半部分在适当的时候再由内核去完成,唤醒设备驱动程序把数据放入相应的缓冲区中,返回缓冲区

25、状态给文件系统。然后由文件系统从缓冲区中读取数据给用户进程,返回I/O应答。,在设备读写过程中,比较慢的是设备和内存之间进行数据交换的过程,特别是设备准备数据的过程,而从缓冲区中读取数据是内存不同位置之间的数据传输,速度要快得多。对于经常访问的设备,要读取的内容已经在缓冲区中的情况占绝大多数,因此通过缓冲区的使用,外部设备读写的效率可以得到很大的提高,当然,这种效率是以系统本身的复杂性为代价的。,5.3.2 Linux设备驱动程序设备驱动程序是设备管理的主要软件之一,它负责控制各种设备,是向文件系统提供一致性界面的关键层。每个设备都必须由特定的设备驱动程序来管理,由于设备本身种类繁多,性能各异

26、,造成了系统中设备驱动程序也有很多种类,驱动程序代码占整个系统内核代码的大多数。但是这些针对不同设备的驱动程序都使用基本相同的接口与内核其他部分通信,设备的特殊性在这个层次中深深地隐藏起来,这给用户以及系统其他部分使用和管理设备带来了极大的方便。,在第1章学习操作系统基础知识的时候,曾经介绍过,Linux内核基本采用模块结构,不同的内核子系统按照模块来构建,作为一个整体存在于系统内存中,属于单内核(或宏内核)模式,这使得系统具有相当高的运行效率,但是系统的可扩展性及可移植性受到一定的影响。与之相对应的是微内核模式,微内核中大部分内核模块都作为独立的进程,它们之间通过消息通信,模块之间互相提供服

27、务。,采用微内核模式的操作系统中,用户可以方便地添加新的组件,实现设备驱动等新的功能,相对来讲,单内核模式中添加新组件要困难得多。Linux 系统采用模块(modules,也称为模组)技术,来支持动态装载和卸载的模块,动态装载或卸载时甚至不需要重新启动计算机。利用模块技术,就可以方便地在单内核结构中添加新组件或卸载不再需要的内核组件。每一个模块都是核心的一部分,都运行于系统态,和其他内核部分具有相同的权限,因此,有漏洞的模块会给系统的性能和稳定性带来不利的影响,而恶意的模块就可能成为一个逻辑炸弹或病毒的良好载体,对系统的安全造成威胁。,除了系统启动过程中所必须的设备(如键盘、磁盘设备等)之外,

28、其他大多数设备以及伪设备(网络设备、文件系统等)的设备驱动程序,都是采用模块方式来管理的。在系统启动完成之后,系统管理员可以利用相关的命令来查看、加载、卸载各种驱动程序模块。Linux设备驱动程序基本结构早期,Linux系统支持的设备驱动程序大多数是业余高手们开发的,随着Linux的不断发展,越来越多设备生产厂商也开始提供驱动程序。所有驱动程序都是内核的一部分,驱动程序的结构和接口都有相当规范的定义。,给Linux写设备驱动程序是一件相当容易的事,而且很多人都在做这样的工作,这里不打算介绍具体的开发过程,这方面的资料网上很多。如果某一天,你发现你的某一个设备无法驱动,首先应该到网上去找找,说不

29、定有人碰到和你同样的问题,而且已经写好了这样的驱动程序,实在不行,自己动手花一两天时间,应该就可以完成了。这里只简单介绍驱动程序的基本结构。根据图5.2所示的I/O软件结构图,设备驱动程序向下的接口是面对设备控制器的,它定义了驱动程序如何与设备进行通信的协议;向上面对的是文件系统,它通过文件系统为内核其他部分提供统一的接口,用户的设备操作通过文件系统来映射到具体的,设备驱动程序,这一部分接口对于所有设备驱动程序几乎都是相同的;此外,还应当提供与系统引导的接口,这是在系统启动过程或者加载设备驱动模块时,初始化设备所必需的。一个完整的设备驱动程序通常包括五个部分:设备驱动程序的注册与注销、设备的打

30、开与释放、设备的读写操作、设备的控制操作,以及设备的中断或者查询处理。,驱动程序的注册是在系统初始化或驱动程序模块加载时完成的,主要实现设备的初始化准备工作,与之对应,驱动程序注销是在系统关闭或者驱动程序模块卸载时完成,二者属于设备驱动程序和系统引导的接口。注册之后,同时也就建立了和文件系统的接口,文件系统根据注册过的资料,就可以建立文件操作与具体设备驱动程序的映射关系。和普通文件类似,设备首先要打开才能够进行读写操作,而且完成操作之后也要及时地释放,释放设备私有数据占据的内存、关闭设备等等,以确保下次可以正常打开和使用设备。在设备驱动程序这个层次上,这些操作针对不同的设备要由不同的函数来完成

31、。,在读写过程中,设备可能采用查询或者中断的方式来控制数据传输,针对不同的数据传输控制方式,驱动程序采取不同的管理方式实现具体的数据传输。,5.4 小结本章介绍了Linux设备管理方面的基础知识。在Linux系统中,根据系统管理方式的不同,设备可以分为字符设备、块设备和网络设备三类,所有的设备基本都是按照特殊的文件设备文件来对待。因此,在操作系统使用过程中,设备的特殊性都为文件系统所屏蔽,用户命令、系统调用,以及内核其他部分只能通过文件系统,以统一的模式来使用设备。,可以使用不同的方式控制外部设备、CPU和内存之间的数据传输,PC机通常使用的方式有程序直接控制(查询)、中断,以及内存直接访(D

32、MA)。提高数据传输效率的另一个有效手段是缓冲,可以在设备上增加缓冲器,设备每次传输数据之前可以准备更多的数据,扩大设备与CPU或内存之间一次数据传输的规模,减少中断次数,称为硬缓冲,这种方法增加了硬件设备的成本和复杂度。也可以在内存中开辟缓冲区,设备与CPU或内存之间的数据传输都通过这样的缓冲区保留备份,下一次用户进程需要数据传输时首先在缓冲中寻找,如果已经存在于缓冲中,就不需要再启动外部设备,从而节约了大量的时间,这种方式称为软缓冲,在Linux系统中统一由文件系统管理。,I/O软件是控制外部设备与内存、处理机进行数据交换的所有软件的通称。Linux系统的I/O软件具有层次结构,上层是文件

33、系统,它负责设备命名、设备保护、缓冲区管理以及设备分配等工作,屏蔽各种的设备特殊性,向用户提供一个友好、清晰、规范和设备独立的配置、使用界面,用户可以像使用普通文件那样进行设备操作;下层主要是设备驱动程序和对应的中断处理程序,Linux系统中大多数设备驱动程序都是独立的内核模块,可以动态地加载和卸载,同时采用独具特色的底半处理技术来完成中断处理,提高中断处理的效率。层次构造的Linux系统I/O软件中,所有模块协同工作,可以充分发挥各种设备的作用,同时保证系统具有较高的整体性。,习题5-1 数据传输控制方式有哪几种?比较它们的优缺点。5-2 什么是中断、中断处理和中断响应?为什么要引入中断?5

34、-3 在你的机器中,键盘和CPU、内存之间的数据传输使用什么方式控制?如果有一次计算机不再响应任何键盘命令,你认为是什么原因?有办法解决吗?5-4 什么是缓冲?为什么引入缓冲?5-5 在Linux系统中,为什么我们可以像使用文件一样操作一个设备?,5-6 Linux文件系统在整个I/O软件中处于什么地位?5-7 什么是设备驱动程序?Linux系统中,用户怎么使用设备驱动程序?5-8 下面各项工作是在I/O软件的哪一层完成?(a)磁盘写操作、计算磁道、扇区和磁头(b)维护磁盘读写高速缓冲(c)读取设备状态寄存器(d)检查用户是否可以访问某个设备5-9 如果你新装的声卡不工作,你如何解决这个问题?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号