快速业务通道

读Linux那些事儿之我是HUB笔记(二)

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-05

12events:(通过ps –el查看)

events被叫做工作者线程,或者说 worker threads,更确切的说,这些应该是缺省的工作者线程.而与工作者线程相关的一个概念就是工作队列,或者叫 work queue.

工作队列的作用

Empire CMS,phome.net
:是把工作推后,交由一个内核线程去执行,更直接的说就是如果您写了一个函数,而您现在不想马上执行它,您想在将来某个时刻去执行它,那您用工作队列准没错.您大概会想到中断也是这样,提供一个中断服务函数,在发生中断的时候去执行,没错,和中断相比
Empire CMS,phome.net
,工作队列最大的好处就是可以调度可以睡眠,灵活性更好.

其实:工作队列就相当于一个定时器,你给你的程序设置一个时间,当到达这个时间的时候你就去执行你的函数即可;

Linux 内核中工作队列机制提供的接口,两对函数

INIT_DELAYED_WORK() schedule_delayed_work(),(有延时操作,相当于把定时器时间设置成delaytime 不为

Empire CMS,phome.net
0

INIT_WORK() schedule_work(). (无延时,定时器时间设置成0即可)

关于工作队列机制,咱们还会用到另外两个函数,它们是 cancel_delayed_work(struct delayed_work *work) flush_scheduled_work().

cancel_delayed_work:对一个延迟执行的工作来说,

Empire CMS,phome.net
这个函数的作用是在这个工作还未执行的时候就把它给取消掉

flush_scheduled_work:以消除所谓的竞争条件,防止混乱;

一般调用了cancel_delayed_work以后都会调用flush_scheduled_work来防止工作队列发生混乱;

13、获取hub descriptor

hub spec 规定

Empire CMS,phome.net
GET_DESCRIPTOR 这个请求的 wValue 就该是Descriptor Type Descriptor Index,wValue 作为一个 word, 16 , 8 位放Descriptor Type, 8位放Descriptor Index
Empire CMS,phome.net
frame,即帧,改革开放之后,出现了一个新的名词,叫做微帧,microframe.一个帧是1毫秒,而一个微帧是八分之一毫秒,也就是125微秒.

本文出自 “Paul玩嵌入式Linux” 博客,请务必保留此出处http://zyg0227.blog.51cto.com/1043164/555699

Empire CMS,phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号