当前位置:首页 > 日记 > 正文

Linux内核驱动fsync机制图解

Linux内核驱动fsync机制图解
点评:该fasync机制是通过内核发送SIGIO信号实现通知机制,而不是通过休眠唤醒

Linux内核中的IO模型基本上分为4类:

1。同步块i O
2。同步非阻塞I / O
3、异步阻塞I/O
4。异步非阻塞I/O
同步:应用程序通过函数显式地访问数据,函数在返回函数时返回(成功或失败)。
异步:应用程序将通过函数显示对应用程序的访问或关注。当数据到达时,硬件和驱动程序将通知应用程序。这时,代码通常不是读或写访问函数,而是被通知再次访问数据。

阻塞:在等待数据的过程中,它处于休眠状态,非阻塞,没有休眠的函数,立即返回,并且可以执行下一个代码。

这4种机制在深入的Linux设备驱动内核机制中得到了解释。异步非阻塞I / O,有两种实现真正的核心,一个是AIO,另一个是fasync.aio应该是一个相对较新的框架,更复杂,我没有深入研究,后写总结研究,fasync,深入Linux设备驱动程序的内核机制的解释和实验细节。看完这些知识后,我画了一个方框图,像往常一样整理所有的代码关联。这张照片是两个月前画的,因为我的孩子和我的工作之间的关系被推迟了。
(在上面的图片中,建议下载到本地开放)

要理解内核的fasync机制,你可以将此图及在Linux设备驱动程序的内核机制的解释。根据这个流程图,我总结一下我自己的理解:
首先,该fasync机制是通过内核发送SIGIO信号实现通知机制,而不是通过休眠唤醒。
从这个角度来看,应用程序必须执行以下操作:
1。安装SIGIO信号(信号的程序处理内核的数据访问)
2,告诉内核所需的通知进程ID
3、设置fasync旗,内核将调用后信号通知fasync方法制备。
应用程序完成了相关设置后,它可以做其他事情了。如果有任何问题,内核会通知SIGIO信号,和安装信号例程将被调用。
在内核空间的结尾,相关的驱动程序需要实现以下工作:
1。定义一个全局结构fasync_struct指针;
2、在file_operations的fasync方法的实施基本上是调用内核的辅助功能,fasync_helper。
3、在常规驱动特定的数据访问的信息kill_fasync函数调用。
通过上述内核和应用程序的协调,可以方便地使用内核异步通知机制,这种机制简单易用,其机制在一开始就非常复杂。一旦我们已经解决了所有相关的结构和程序,我们会发现,该机制的实施是很清楚的。我一直认为内核的学习首先要明确结构和数据结构之间的关系。看着别人的代码分析可以给你一个正确的认识框架,和最终的关键在于你自己的rtfsc。所以我不分析博客的代码,但只有框架图,代码需要分析他们自己感兴趣的朋友。

相关文章

infotool.exe的过程是什么的infoto

infotool.exe的过程是什么的infoto

文件,过程,电脑软件,infotool,exe,点评:infotool.exe是领先尼禄的CD刻录软件相关工具 进程文件:infotool或infotool.exe 过程名称:Nero Toolkit 过程类别:安全风险的过程 英文描述: infotool.exe是工具是安装在前面的尼禄的CD,未来,它也被称为以…

在Word2007表格的空白单元格中写入

在Word2007表格的空白单元格中写入

字符,格中,单元,批量,表格,在Word2007表格的空白单元格中写入字符批量。事实上,我们可以利用取代功能来实现,具体步骤如下: 第一步是选择表单,切换到布局选项卡,点击数据;函数组转换为文本按钮,如图1所示,文本分隔符选择标签;确认后,表可以转换成文…

如何列出负载信息当win7系统是在计

如何列出负载信息当win7系统是在计

负载,系统,计算机系统,是在,电脑软件,注释:如果将启动屏幕变成一个附加组件列表,您将能够更多地了解您的计算机,并知道需要在您的计算机引导上加载多少文件。 如果每个人都打开电脑,他们都要等待开机画面的跳动。不管如何,图片看起来不错,你会很…

atieclxx.exe是一个过程,是什么atie

atieclxx.exe是一个过程,是什么atie

是一个,过程,电脑软件,atieclxx,exe,点评:atieclxx.exe ATI显卡催化剂是一个程序,它只起辅助作用,使ATI显示卡能够更好地发挥其性能,本身不是司机。 atieclxx.exe是ATI卡催化剂项目。它只起辅助作用,使ATI的显卡能够更好地执行其性能,而不是驱动…

Linux扩展内存加速Firefox和Chrome

Linux扩展内存加速Firefox和Chrome

扩展,页面加载,内存,电脑软件,Linux,注释:当您访问浏览器中的Web页面时,除了第一次从服务器下载所有页面内容时,大多数文件都是从本地缓存中读取的。本文介绍了如何提高访问速度。 当你在浏览器访问网页,大部分的文件读取本地缓存除了第一次你…

的weather.exe天气过程是什么文件

的weather.exe天气过程是什么文件

文件,天气,过程,电脑软件,weather,评论:weather.exe天气过程 进程文件:天气或weather.exe 过程名称:天气 过程类别:安全风险的过程 英文描述: weather.exe是一个应用程序为您提供最新的天气信息,最新的,它也被称为以下两个方面。 中文参考: weath…

win7如何利用ClearType使文字更清

win7如何利用ClearType使文字更清

中国,文字,更清晰,电脑软件,ClearType,点评:ClearType是不是一个特殊的字体,而是一种显示技术,可以称为超清晰的显示技术,其设计的液晶显示,可以大大提高所有文本的显示分辨率,通过以下步骤,原来的样子显示可怜的显示效果,是不是很清楚,至少它将适用…

简单介绍mysql备份和恢复以及使用

简单介绍mysql备份和恢复以及使用

恢复,命令,备份,简单,电脑软件,备份数据方法: 1:sql语句。 锁表表 / /读;读锁 在试图锁定表之前,锁表不是一个事务安全类型。它将隐式提交所有活动事务。同时,它将隐式启动事务,例如,使用启动事务。 因此,使用锁表的事务表的正确方式(如InnoDB)是建立…

是否使用int或DateTimeMySQL时间字

是否使用int或DateTimeMySQL时间字

描述,字段,时间,电脑软件,int,对德德尔MySQL时间字段,发现今天当解析dedecms,所有这一切都是用 `发送` int(10)符号的非空默认'0'; 然后我们在网上找到了这篇文章。如果在操作中涉及到时间域,最好在检索时使用int,不需要对字段进行转换,直接用于…

Linux操作系统中的七种超强力武器

Linux操作系统中的七种超强力武器

操作系统,七种,强力,武器,电脑软件,导读:Linux是一组免费的、免费的、可扩展的UNIX操作系统,主要应用于基于英特尔x86系列CPU的计算机上,Linux系统是由世界各地成千上万的程序员设计和实现的。其目的是建立不受任何商业化软件版权限制的、能被…

该计算机系统突然蓝屏提示Vmm32.vx

该计算机系统突然蓝屏提示Vmm32.vx

蓝屏,提示,计算机系统,文件,电脑软件,问题: 当电脑在使用中,系统突然蓝屏,提示Vmm32.vxd文件丢失。是什么原因 答案uff1a 计算机系统蓝屏提示Vmm32.vxd文件丢失,通常是由不稳定的内存条造成的。参考答案如下: 1,CL(CAS延迟)内存延迟稍微提高了一…

这个过程emsmta过程是什么样的作用

这个过程emsmta过程是什么样的作用

作用,过程,电脑软件,emsmta,exe,点评:在emsmta.exe的详细信息,emsmta过程 进程文件:emsmta或emsmta.exe 过程名称:交换消息传递代理 过程类别:安全风险的过程 英文描述: emsmta.exe是与微软Exchange邮件传递,相关的交换过程,它也被称为以下三个方…