欢迎来到天天文库
浏览记录
ID:38600927
大小:235.00 KB
页数:40页
时间:2019-06-16
《《Linux设备管理》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4讲Linux设备管理设备管理的目标计算机的设备进行管理有两大目标:一是提高设备的利用率;二是方便用户使用。课程内容:Linux设备管理分类Linux设备驱动程序的接口Linux磁盘高速缓存管理Linux的字符设备缓冲区管理Linux的设备驱动Linux系统I/O软件层次结构一、Linux中设备的分类与表示(1)字符设备如键盘、鼠标、显示器、打印机等。通常用于输入输出,作为人和计算机之间的接口,信息的存取以字符为单位进行。(2)块设备如磁盘、磁带等,用于存储信息,它对信息的存取控制是以信息块为单位的。特别文件每个设备都有自己的设
2、备名,用户通过设备名来访问具体物理设备,设备名存放在/dev目录下。硬盘:/dev/hda,/dev/sda软盘:/dev/fd0光盘:/dev/cdrom鼠标:/dev/psaux(ps/2)/dev/input/mice(USB)打印机:/dev/lp控制台:/dev/console网卡:/dev/eth0但是像块设备磁盘、磁带上的普通文件和目录不是特殊文件。二、Linux设备驱动程序的接口1、文件系统与设备驱动程序的接口Linux系统中,用户程序通过文件操作方式如打开、关闭、读写等来使用设备,由文件系统转入设备驱动程序。在L
3、inux中系统提供块设备开关表和字符设备开关表作为核心与设备驱动程序之间的接口。每一种设备类型在表中占用一个表目,包含若干数据项,其中有一项为该类设备驱动程序入口地址,在系统调用时引导核心转向适当的驱动程序接口。块设备开关表字符设备开关表操作主设备号OpenCloseReadWrite0驱动程序入口地址驱动程序入口地址驱动程序入口地址驱动程序入口地址1驱动程序入口地址驱动程序入口地址驱动程序入口地址驱动程序入口地址操作主设备号OpenCloseStrategy(read/write)0驱动程序入口地址驱动程序入口地址驱动程序入口地
4、址1驱动程序入口地址驱动程序入口地址驱动程序入口地址2、文件的系统调用过程对设备特殊文件的系统调用,根据文件类型转入块设备开关表或字符开关表进行打开、关闭块设备或字符设备的操作。字符设备特殊文件的系统调用Read、Write转向字符开关表中指示的设备驱动程序,而对普通文件或目录文件的Read、Write系统调用则通过高速缓冲模块转向设备驱动模块中的策略(Strategy)过程。文件系统对字符设备特殊文件的系统调用openclosereadwrite对块设备文件的系统调用openclose对普通文件的系统调用readwrite高速缓
5、冲模块字符设备开关表块设备开关表字符设备块设备中断向量表openclosereadwrite字符设备驱动程序设备中断处理程序openclosestrategy块设备驱动程序设备中断处理程序三、Linux磁盘高速缓存管理1、磁盘高速缓存策略Linux磁盘缓冲管理策略试图把尽可能多的有用数据保存在缓冲区中。从磁盘中读数据时,文件系统先从磁盘高速缓存中读,如果数据已在高速缓存中,则不必启动磁盘I/O,直接在高速缓存中读取;如果数据不在高速缓存中,则启动磁盘时I/O,从磁盘读取数据送往高速缓存,进程再从高速缓存中读取数据。Linux采取了
6、“延迟写”策略。2、磁盘缓冲区管理的数据结构Linux使用多个内存缓冲区进行磁盘缓冲,为了合理有效地使用这些缓冲区,设置了一定的数据结构按照一定策略进行管理。管理的依据是缓冲区的相关信息,为了能访问这些信息,必须将其按一定的数据结构进行组织。每一个缓冲区建立“缓冲首部”来存放该缓冲区的相关信息缓冲首部设备号dev设备缓冲区队列后向指针b-back块号blkno空闲缓冲区队列前向指针Av-forw状态flag空闲缓冲区队列后向指针Av-back设备缓冲区队列前向指针b-forw忙标志位BUSY:缓冲区当前是否忙有效位AVE:缓冲区包
7、含的数据是否有效延迟写位DELWR:是否延迟写写标志位WRITE:是否正在把缓冲区的内容写到磁盘上读表示位READ:是否从磁盘往缓冲读取信息等待位WAIT:是否有一个进程正在等待该缓冲区空闲缓冲区队列(BUSY=0)Av-forwAv-backAv-forwAv-back……Av-forwAv-back设备缓冲区队列(BUSY=1)b-forwb-backbv-forwbv-back……b-forwb-back3、Linux磁盘缓冲区管理算法①高速缓冲区的分配当某进程要从一个磁盘读取数据时,先检查要读取的磁盘块是否包含在某个缓冲区
8、中,如果不在,则从空闲缓冲区队列中分配给它一个空闲缓冲区;当某进程要将数据写入磁盘时,先看一下要写的磁盘块是否在某个缓冲区,如果不在则为这个磁盘块分配一个空闲缓冲区。被分配的空闲缓冲区从空闲缓冲区队列中退出,进入相应设备的设备缓冲区队列,该缓冲区的
此文档下载收益归作者所有