操作系统设备管理ppt课件.ppt
《操作系统设备管理ppt课件.ppt》由会员分享,可在线阅读,更多相关《操作系统设备管理ppt课件.ppt(97页珍藏版)》请在三一办公上搜索。
1、第5章 设备管理,首先回顾操作系统的总体构架,定位设备管理所处地位然后学习设备管理的基本原理最后了解LINUX设备管理实例,操作系统整体结构,操作系统的基本组织结构,Linux文件系统,设备管理,引言输入/输出硬件输入/输出软件LINUX输入/输出系统概述小结,引言,硬件设备与控制软件之间的联系:设备控制器内存映射地址处理机 驱动程序I/O管理程序文件系统用户的I/O请求设备管理的主要任务设备分配实现数据传输提供用户使用接口提高并行操作度设备管理程序提供的功能为进程管理提供接口(将进程的请求转给设备管理)实施设备分配(设备分类、调度算法、等待队列)实现设备之间以及设备与CPU之间并行操作(DM
2、A、通道)缓冲区管理,输入/输出硬件,电子设备设备分类字符设备块设备设备控制器DMA存储器直接存取通道,内核的输入/出结构,PCI系统示意图,PC系统结构与PCI总线,典型的PC总线结构,磁带,磁盘,磁盘设备结构,两种输入/输出模式,输入输出设备特点,Intel奔腾处理器中断向量表,输入/输出软件,输入/输出软件的作用数据传送控制方式程序直接控制方式中断方式DMA方式通道控制方式中断处理过程驱动程序所处地位与设备无关的I/O软件(文件系统功能)用户层的输入/输出软件(使用read/write)设备分配缓冲区管理I/O进程控制,输入/输出软件的作用,输入/输出请求的提交周期,程序直接控制方式,中
3、断控制方式的传送结构,中断控制方式的处理过程,完成了吗?,中断驱动的输入/出周期,DMA,DMA传输步骤,DMA方式的数据传送处理过程,通道方式的数据传送结构,通道控制方式的描述过程,从CPU执行指令的角度来描述对通道的控制方式 : Channel control procedure: repeat IRMpc pcpc+1 execute(IR) if require accessing with I/O Device then Command (I/O operation,Address of I/O device,channel) fi if I/O Done Interupt then
4、 Call Interrupt processing control fi until machine halt Interrupt processing control procedure ,中断处理过程,用户进程请求设备服务的流程,设备无关软件的功能 (设备文件),用户层输入/输出软件,I/O操作的库例程例如:read(fd,buf,nbytes)是读文件的系统调用,由它调用的库函数read会与用户程序连接在一起,放在可执行程序中。 Spooling系统“Simultaneous Peripheral Operation On-Line”Spooling是在多道程序系统中处理独占设备的一种
5、方法。例如:一般的打印机是一种独占资源,每次只能有一个程序使用打印机,但如果一个进程打开打印机而不使用它,那么其它的进程都无法打印。 创建一个特殊的守护进程(daemon)以及一个特殊的目录,称为Spooling目录。这时,打印一个文件之前,进程首先产生完整的待打印文件并将其放在Spooling目录下。当进程把该文件放到Spooling系统中之后就可以认为打印过程已经完成,虽然打印机还没有进行该文件的打印,因此也称为打印的“假脱机”过程。而整个的打印作业由该守护进程进行处理,只有该守护进程能够真正使用打印机设备文件。通过禁止用户直接使用打印机设备文件,从而解决了打印机的独占问题。,SPOOLi
6、ng系统示意图,设备分配采用的数据结构,系统设备表SDT,DCT,通道,设备分配流程图,进程P等待控制器,由进程P来的I/O请求,搜索SDT找到DCT指针,按分配策略选取占据该设备的进程,进程P被选中?,查DCT该设备忙?,检查该设备分配给进程P的安全性,安全吗?,该设备分配给进程P,A,按分配策略选取占据该设备的进程,进程P按分配策略入I/O等待队列等待该设备空闲,搜索DCT指针,找到COCT指针,控制器忙吗?,A,分配控制器给进程P,搜索COCT找到CHCT指针,通道忙?,分配通道给进程P,启动I/O,进程P等待通道,是,是,是,是,否,否,否,是,否,否,通道,设备状态表,缓冲区管理技术
7、,单缓冲区多缓冲区缓冲池,缓冲首部,缓冲区技术,双机通信时缓冲技术示意图,缓冲池示意图,参见SPOOLing系统,I/O控制,使用系统调用执行输入/出流程,I/O控制的实现,I/O控制过程在系统中可以按三种方式实现作为请求I/O操作的进程的一部分实现作为当前进程的一部分实现I/O控制由专门的系统进程 I/O进程完成:每类(个)设备设一专门的I/O进程,且该进程只能在系统态下执行整个系统设一I/O进程,全面负责系统的数据传送工作每类(个)设备设一个专门的I/O进程,但该进程既可在用户态也可在系统态下执行,原理部分小结,设备管理的基本过程设备管理用的数据结构通道、控制器、 DMA、中断、缓冲区、数
8、据传送控制方式(直接、中断、DMA、通道)主设备号、次设备号(对应驱动程序及其参数)设备分类(字符、块设备、网络设备)设备分配算法I/O控制,设备管理,引言输入/输出硬件输入/输出软件LINUX输入/输出系统概述小结,缓冲区管理技术,单缓冲区多缓冲区缓冲池,缓冲首部,缓冲区技术,双机通信时缓冲技术示意图,缓冲池示意图,参见SPOOLing系统,I/O控制,使用系统调用执行输入/出流程,I/O控制的实现,I/O控制过程在系统中可以按三种方式实现作为请求I/O操作的进程的一部分实现作为当前进程的一部分实现I/O控制由专门的系统进程 I/O进程完成:每类(个)设备设一专门的I/O进程,且该进程只能在
9、系统态下执行整个系统设一I/O进程,全面负责系统的数据传送工作每类(个)设备设一个专门的I/O进程,但该进程既可在用户态也可在系统态下执行,原理部分小结,设备管理的基本过程设备管理用的数据结构通道、控制器、 DMA、中断、缓冲区、数据传送控制方式(直接、中断、DMA、通道)主设备号、次设备号(对应驱动程序及其参数)设备分类(字符、块设备、网络设备)设备分配算法I/O控制,磁盘调度算法,LINUX输入/输出系统概述,Linux输入/输出的过程概述 设备驱动程序基础 Linux的中断处理设备驱动程序的框架字符设备驱动程序块设备驱动程序,概述,Linux文件系统的层次结构,返回,设备驱动分层结构,设
10、备驱动程序基础,总线:CPU和I/O设备是通过总线连接起来。 PC机常见总线有ISA,PCI等等。I/O地址空间:所有设备的寄存器组成。 察看文件:/proc/ioportsI/O数据传输:忙等待、中断方式、DMA方式设备分类:字符设备、块设备设备名:主设备号(驱动程序)、次设备号(驱动程序的参数)设备文件:在/dev目录下,在内核中由file结构表示。设备驱动程序接口:由file_operations数据结构完成。,文件系统数据结构,返回,设备号,例如:mknod()创建设备文件,需要提供设备号,struct file_operations chardev_fops = open: char
11、dev_open, release: chardev_release, read: chardev_read, write: chardev_write, ;,Struct file_operations def_blk_fops=open:blkdev_open,release:blkdev_close,llseek:block_llseek,read:block_read,write:block_fsync,ioctl:blkdev_ioctl,;,块设备操作定义,字符设备操作定义,驱动程序接口(调用入口点),struct file_operations loff_t (*llseek)
12、(struct file *, loff_t, int);ssize_t (*read) (struct file *, char *, size_t, loff_t *);ssize_t (*write)(struct file *, char *, size_t, loff_t *);int (*open)(struct inode *, struct file *);int (*release)(struct inode*, struct file *);int (*ioctl)(struct inode *, struct file *, unsigned int, unsigned
13、long),Linux的中断处理,1、中断类型外中断,陷阱(INT n),异常。2、睡眠与唤醒驱动程序启动设备后,进入睡眠;设备完成I/O后,向CPU 发中断请求;CPU根据中断请求找到睡眠的驱动程序,并唤醒继续处理。3、中断共享中断向量表有限,对于外中断来说,其中断向量表项是共享的。因此,共享项上有中断请求队列。4、中断服务程序的前期(上部)和后期(下部)处理(bottom-half)前期处理执行快速(关中断),后期处理执行费时(开中断),Linux系统I/O层次结构,设备驱动程序向下与设备控制器接口:定义如何与设备进行通信的协议(设备控制命令集合),设备驱动程序向上则面对文件系统,由文件系
14、统为内核其他部分提供统一接口:入口调用集合Operations:(read、write等等),设备驱动程序,中断处理程序,设备驱动程序框架,一个完整的Linux设备驱动程序包括五个部分:1、设备驱动程序的注册与注销(与系统引导的接口)注册:在系统初始化/驱动程序模块加载时完成,建立了与文件系统的接口,文件系统可根据注册资料建立文件操作与具体设备驱动程序的映射关系。注销:在系统关闭/驱动程序模块卸载时完成2、设备的打开与关闭设备首先要打开才能读写,完成之后及时释放,针对不同设备有不同操作3、设备的读写操作在读写过程中,设备可能采用查询或者中断的方式来控制数据传输,针对不同的数据传输控制方式,驱动
15、程序采取不同的管理方式实现具体的数据传输4、设备的控制操作5、设备的中断处理或者查询处理,设备驱动程序代码功能,驱动程序的注册与注销字符设备用:register_chrdev向内核注册,un register_chrdev从内核注销块设备用:register_blkdev ()向内核注册,un register_blkdev从内核注销设备的打开与释放各自的open()和release()设备的读写各自的read()和write设备的控制操作各自的ioctl(), 例如软盘/光盘的弹出。设备的中断和忙等待查询当设备不支持中断时读写采用忙等待查询设备状态。,VFS数据结构,数据结构及其操作,ino
16、de_operations,块设备驱动程序,块驱动程序与内核的接口struct file_operations def_blk_fops=open:blkdev_open,release:blkdev_close,llseek:llseek,read:block_read,write:block_write,fsync:block_fsync,ioctl:blkdev_ioctl,;通过get_blkfops()寻找具体块设备类型的block_device_operations数据结构,mknod,Inode_operations,VFS索引结点inode中的file_operationsy引
17、用,块设备驱动程序,struct block_device_operationsint (*open)(struct inode *, struct file *);int (*release)(struct inode *, struct file *);int (*ioctl)(struct inode *, struct file *,unsigned, unsigned long);int (*check_media_change)(kdev_t);int (*revalidate)(kdev_t);,针对具体块设备IDE,IDE硬盘采用的相应接口struct block_device
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 设备管理 ppt 课件
链接地址:https://www.31ppt.com/p-1350027.html