Linux定时器的使用.docxVIP

  • 5
  • 0
  • 约1.64万字
  • 约 24页
  • 2022-11-03 发布于山东
  • 举报
Linux准时器的使用 内批准时器是内核用来控制在未来某个时间点(基于jiffies)调换执行某个函数的一种体系,其实现位于linux/timer.h和kernel/timer.c文件中。 被调换的函数肯定是异步执行的,它近似于一种“软件中止”,而且是处于非进度的上下文中,所以调换函数必须遵守以下规则: 1)没有current指针、不允许接见用户空间。因为没有进度上下文,相关代码和被中止的进度没有任何联系。 2)不能执行休眠(或可能引起休眠的函数)和调换。 3)任何被接见的数据结构都应该针对并发接见进行保护,以防备竞争条 件。 内批准时器的调换函数运行过一次后就不会再被运行了(相当于自动注销),但可以经过在被调换的函数中重新调换自己来周期运行。 在SMP系统中,调换函数总是在注册它的同一CPU上运行,以尽可能获得缓存的局域性。 内批准时器的数据结构 structtimer_list{ structlist_headentry; unsignedlongexpires; void(*function)(unsignedlong); unsignedlongdata; structtvec_base*base; /*...*/ }; 1/21 其中expires字段表示希望准时器执行的jiffies值,到达该jiffies值时,将调用function函数,并传达data作为参数。当一

文档评论(0)

1亿VIP精品文档

相关文档