Linux操作系统-设备管理.ppt
《Linux操作系统-设备管理.ppt》由会员分享,可在线阅读,更多相关《Linux操作系统-设备管理.ppt(17页珍藏版)》请在三一办公上搜索。
1、10.4 设备管理,内容 设备文件 设备管理相关数据结构 块设备文件的open()、read()操作,10.4.1 设备文件的概念传统的Unix系统均把设备当成文件来处理,因而可以用read()/write()对设备进行操作。设备文件一般在/dev目录下。Linux下的设备大体分为三类:(1)块设备:一次I/O操作以固定大小的数据块为单位,且可随机存取。(2)字符设备:一次I/O操作存取数据量不固定,只能顺序存取。(3)网卡:网卡是特殊处理的,它没有对应的设备文件。,设备文件的属性 文件名:如 hda1 类型:是字符设备还是块设备 主设备号:主设备号相同的设备被同一设备驱动程序处理。从设备号:
2、用来指明具体的设备mknod()创建设备文件,它的参数是上面提到的四个属性。Linux安装完成之后已经在/dev目录下生成了绝大多数可能要用到的设备文件,10.4.2 相关数据结构VFS与设备驱动程序接口:,name,fops,blkdevs(块设备)driver操作表 chrdevs(字符设备)driver操作表,name,fops,dentry,Files_operations,inode,Inode_operations,fd_array,file,files_struct,task_struct,一、字符设备管理字符设备管理的主要数据结构如下:struct device_struct
3、const char*name;struct file_operations*fops;static struct device_struct chrdevsMAX_CHRDEV;全局数组chrdevs记录了所有字符设备驱动程序的名称name及其对应的设备操作函数接口fops。数组的下标,则对应于设备的主设备号。,加载设备驱动时,设备在系统中的注册是通过函数register_chrdev(),其原型如下:int register_chrdev(unsigned int major,const char*name,struct file_operations*fops);不同的字符设备驱动程序要
4、提供不同的file_operations实现。当设备不再使用时,可以通过unregister_chrdev()函数注销。,二、块设备管理主要数据结构有blkdevs和blk_dev:static struct const char*name;struct block_device_operations*bdops;/*特定于设 备的操作集*/blkdevsMAX_BLKDEV;struct blk_dev_struct request_queue_t request_queue;/*请求队列*/queue_proc*queue;void*data;struct blk_dev_struct b
5、lk_devMAX_BLKDEV;数组的下标对应设备驱动程序的主设备号,blkdevs 记录设备文件名及相应的操作集合,blk_dev 记录各个设备的请求队列。,Request_fn,Buffer head,Buffer head,Buffer head,相关数据结构blk_dev,blk_dev_struct requestrequest,内存外存,三、buffer cache 块设备的操作是以块为基本单位,一般情 况块的大小不会超过页面的大小。buffer cache 是对物理磁盘块的缓冲,一个buffer的大小等同于一个块的大小 buffer cache目的:提高性能。每个buffer由



- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 操作系统 设备管理

链接地址:https://www.31ppt.com/p-5438017.html