你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

OpenHarmony 触发调度之时钟任务

2021/12/24 4:22:06
在之前的一篇文章中,我们分析了 OpenHarmony中线程的相关知识,但在其中我就有一个疑问,是什么管理着这些进程的协作,使之有条不紊地进行呢?这就引入了时钟的概念

操作系统和人一样,需要通过时间来规范其任务的执行,操作系统中最小的时间单位是时钟节拍 ,也可以称为是OS Tick。

Background:任何操作系统都需要提供一个时钟节拍,以供系统处理所有和时间有关的事件,如线程的延时、线程的时间片轮转调度以及定时器超时等。时钟节拍是特定的周期性中断,这个中断可以看做是系统心跳,中断之间的时间间隔取决于不同的应用,一般是 1ms–100ms,时钟节拍率越快,系统的实时响应越快,但是系统的额外开销就越大,从系统启动开始计数的时钟节拍数称为系统时间。

在OpenHarmony 中,时钟节拍的长度可以根LOSCFG_BASE_CORE_TICK_PER_SECOND 的定义来调整,等于 1/LOSCFG_BASE_CORE_TICK_PER_SECOND 秒

Background:每秒100个tick,时间单位为10毫秒, 即每秒调用时钟中断处理程序100次.

接下来我们从源码入手,进行分析:

节拍中断处理函数 ,Harmony默认10ms触发一次: