Linux设备管理_002优质PPT.ppt
- 文档编号:14297968
- 上传时间:2022-10-21
- 格式:PPT
- 页数:43
- 大小:1.53MB
Linux设备管理_002优质PPT.ppt
《Linux设备管理_002优质PPT.ppt》由会员分享,可在线阅读,更多相关《Linux设备管理_002优质PPT.ppt(43页珍藏版)》请在冰豆网上搜索。
一般的打印机是一种独占资源,每次只能有一个程序使用打印机,但如果一个进程打开打印机而不使用它,那么其它的进程都无法打印。
创建一个特殊的守护进程(daemon)以及一个特殊的目录,称为Spooling目录。
这时,打印一个文件之前,进程首先产生完整的待打印文件并将其放在Spooling目录下。
当进程把该文件放到Spooling系统中之后就可以认为打印过程已经完成,虽然打印机还没有进行该文件的打印,因此也称为打印的“假脱机”过程。
而整个的打印作业由该守护进程进行处理,只有该守护进程能够真正使用打印机设备文件。
通过禁止用户直接使用打印机设备文件就解决了打印机的独占问题。
设备分配采用的数据结构,系统设备表STD,COCT,CHCT,DCT,设备分配流程图,进程P等待控制器,由进程P来的I/O请求,搜索SDT找到DCT指针,按分配策略选取占据该设备的进程,进程P被选中?
查DCT该设备忙?
检查该设备分配给进程P的安全性,安全吗?
该设备分配给进程P,A,按分配策略选取占据该设备的进程,进程P按分配策略入I/O等待队列,进程P等待该设备空闲,搜索DCT指针,找到COCT指针,控制器忙吗?
A,分配控制器给进程P,搜索COCT找到CHCT指针,通道忙?
分配通道给进程P,启动I/O,进程P等待通道,是,是,是,是,否,否,否,是,否,否,缓冲区管理技术,单缓冲区多缓冲区缓冲池,:
缓冲首部,I/O控制,I/O控制的实现,I/O控制过程在系统中可以按三种方式实现作为请求I/O操作的进程的一部分实现作为当前进程的一部分实现I/O控制由专门的系统进程I/O进程完成:
每类(个)设备设一专门的I/O进程,且该进程只能在系统态下执行整个系统设一I/O进程,全面负责系统的数据传送工作每类(个)设备设一个专门的I/O进程,但该进程既可在用户态也可在系统态下执行,小结,设备管理的基本过程设备管理用的数据结构通道、控制器、DMA、中断、缓冲区、数据传送控制方式主设备号、次设备号(对应驱动程序及其参数)设备分类设备分配算法I/O控制,LINUX输入/输出系统概述,Linux输入/输出的过程概述设备驱动程序基础Linux的中断处理设备驱动程序的框架字符设备驱动程序块设备驱动程序,概述,Linux文件系统的层次结构,返回,设备驱动分层结构,返回,设备驱动程序基础,总线:
CPU和I/O设备是通过总线连接起来。
PC机常见总线有ISA,PCI等等。
I/O地址空间:
所有设备的寄存器组成。
察看文件:
/proc/ioportsI/O数据传输:
忙等待、中断方式、DMA方式设备分类:
字符设备、块设备设备名:
主设备号(驱动程序)、次设备号(驱动程序的参数)设备文件:
在/dev目录下,在内核中由file结构表示。
设备驱动程序接口:
由file_operations数据结构完成。
文件系统数据结构,返回,设备号,例如:
mknod()创建设备文件,需要提供设备号,structfile_operationschardev_fops=open:
chardev_open,release:
chardev_release,read:
chardev_read,write:
chardev_write,;
structfile_operationsloff_t(*llseek)(structfile*,loff_t,int);
ssize_t(*read)(structfile*,char*,size_t,loff_t*);
ssize_t(*write)(structfile*,char*,size_t,loff_t*);
int(*open)(structinode*,structfile*);
int(*release)(structinode*,structfile*);
int(*ioctl)(structinode*,structfile*,unsignedint,unsignedlong),驱动程序接口(调用入口点),Linux的中断处理,1、中断类型外中断,陷阱(INTn),异常。
2、睡眠与唤醒驱动程序启动设备后,进入睡眠;
设备完成I/O后,向CPU发中断请求;
CPU根据中断请求找到睡眠的驱动程序,并唤醒继续处理。
3、中断共享中断向量表有限,对于外中断来说,其中断向量表项是共享的。
因此,共享项上有中断请求队列。
4、中断服务程序的上部和下部处理(bottom-half)上部执行快速(关中断),下部执行费时(开中断)。
Linux系统I/O层次结构,设备驱动程序向下与设备控制器接口:
定义如何与设备进行通信的协议(设备控制命令集合),设备驱动程序向上则面对文件系统,由文件系统为内核其他部分提供统一接口:
入口调用集合Operations:
(read、write等等),设备驱动程序框架,一个完整的设备驱动程序包括五个部分:
1、设备驱动程序的注册与注销(与系统引导的接口)注册:
在系统初始化/驱动程序模块加载时完成,建立了与文件系统的接口,文件系统可根据注册资料建立文件操作与具体设备驱动程序的映射关系。
注销:
在系统关闭/驱动程序模块卸载时完成2、设备的打开与关闭设备首先要打开才能读写,完成之后及时释放,针对不同设备有不同操作3、设备的读写操作在读写过程中,设备可能采用查询或者中断的方式来控制数据传输,针对不同的数据传输控制方式,驱动程序采取不同的管理方式实现具体的数据传输4、设备的控制操作5、设备的中断处理或者查询处理,设备驱动程序代码功能,驱动程序的注册与注销字符设备用:
register_chrdev向内核注册,unregister_chrdev从内核注销块设备用:
register_blkdev()向内核注册,unregister_blkdev从内核注销设备的打开与释放各自的open()和release()设备的读写各自的read()和write设备的控制操作各自的ioctl(),例如软盘弹出。
设备的中断和忙等待查询当设备不支持中断时读写采用忙等待查询设备状态。
字符设备驱动程序,并口打印设备驱动程序与内核接口Staticstructfile_operationslp_fops并口打印设备驱动程序与打印机设备接口Structlp_structlp_table注册与注销register_chrdev()unregister_chrdev(),structfile_operationschardev_fops=open:
/虚拟的内存字符设备,块设备驱动程序,IDE硬盘驱动程序与内核的接口staticstructfile_operationside_fopsIDE硬盘驱动程序与硬盘设备的接口structblk_dev_structvoid(*request_fn)(void);
structrequest*current_request;
structrequestplug;
structtq_strutplug_tq;
/启动具体磁盘I/O/drivers/block/ll_rw_blk.c中定义,Linux设备管理小结,设备分类:
块、字符、网络设备设备文件:
每个设备都与一个特殊文件对应文件系统屏蔽了设备的特殊性,通过文件系统使用设备I/O软件是控制外设与内存、外设与CPU进行数据交换的所有软件的统称Linux系统的I/O软件具有层次结构上层是文件系统:
负责设备命名、设备保护、缓冲区管理、设备分配;
提供方便用户使用的界面下层是设备驱动程序和中断处理程序:
驱动程序可以是独立的内核模块,可以动态地加载和卸载;
中断处理采用底半处理技术,提高中断处理的效率,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 设备管理 _002