3.课堂笔记内核共享工作队列_第1页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、内核共享工作队在linux 的事情在中断底部执行。顶部不能被其他进程中断,而底部可以被其他进程中断,也可以被硬中断事件中断。底部分代内核共享工作队在linux 的事情在中断底部执行。顶部不能被其他进程中断,而底部可以被其他进程中断,也可以被硬中断事件中断。底部分代关键数据结构Workqueue.h includeLinux struct work_struct atomic_long_t data; structlist_headentry;/* 工作函 structlockdep_maptypedefvoid)(structwork_structfunc 指针所指向的函数:一般是就需要延后执

2、行代码。内核使用这个结构来描述一个工作,一个工作简单理解就是对应于一个函数,可以通过内核调度函数来调用worksrut 中func structwork_struct work:这个参数structwork_struct变量结构本身。 INIT_WORK(&work, work_func);这样初始化了一work 结构,work_func 工作函数的参数就是指向work 结构。关键INIT_WORK(_work, :初始化一work _work:structwork_structwork结构指_func:用来填充work_struct work 结构的 fun 指针(work 的具体代码调度宏

3、schedule_work(_work):一个宏,对应一个函数;作用是调度一个一个工作_work使用共享structwork_struct初始化工作结构func成员:voidwork_func(structwork_struct*;INIT_WORK(&work, 在适当的地方调度工作(如果工作用于中断底部代码,则在中断顶部调度不是马上执行,而是等待空闲才执行 看例子程序 2,3container_of 宏使内核【共享】延时工作队内核【共享】延时工作队和上面的内核共享工作队列一样,可以实现中断的底部代码功能。和内核共享工作队列惟一区别就以指定一structdelayed_work structtimer_list/初始化函INIT_DELAYED_WORK(_work, 初始化一个delayed_work _work:structdelayed_workwork结构指_func:用来填structdelayed_workwork结构fun指针(work的具体代码调度函数schedule_delayed_work(struct delayed_work *dwork,unsigned long dwork:要调度的延时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论