间隔计时器的定义是什么?

时间:2018-09-22 04:08:41

标签: linux timer linux-kernel

了解Linux内核引入了两种类型的计时器:动态计时器和间隔计时器。见下文。

  1. 间隔计时器的定义是什么?我不确定书中是否已定义它。

  2. 动态计时器和间隔计时器这两个概念是否互斥?换句话说,软件计时器不能同时是动态计时器和间隔计时器吗?

    我以为它们是互斥的,直到我看到setitimer( )创建的ITIMER_REAL间隔计时器是在动态计时器上实现的,所以我不确定这两种计时器之间的关系。

谢谢。

  

Linux考虑两种类型的计时器,称为动态计时器和   间隔计时器。第一种是内核使用的,而间隔计时器可以由用户模式下的进程创建。

     

...

     

动态计时器可以动态创建和销毁。

     

...

     

Linux允许用户模式进程激活称为   间隔计时器。计时器使Unix信号(请参见第11章)定期发送到进程。也可以激活   一个间隔计时器,以便它在指定的时间后仅发送一个信号   延迟。

     

...

     

间隔计时器是通过POSIX setitimer()系统调用激活的。第一个参数指定以下哪个   应采用的政策:

     

ITIMER_REAL实际经过的时间;该过程收到SIGALRM   信号。

     

ITIMER_VIRTUAL该进程在用户模式下花费的时间;过程   接收SIGVTALRM信号。

     

ITIMER_PROF进程在用户和内核中花费的时间   模式;该过程将接收SIGPROF信号。

     

ITIMER_REAL间隔计时器通过使用动态实现   计时器,因为即使在以下情况下内核也必须向进程发送信号   它不在CPU上运行。

     

ITIMER_VIRTUAL和ITIMER_PROF间隔计时器不需要   动态计时器,因为它们可以在过程中进行更新   运行。

0 个答案:

没有答案
相关问题