章节列表

RTOS原理及功能简介

2018-05-29 03:39:42 +0000 李述铜

Hi,欢迎进入到这一节偏理论的课时。嗯,是的,偏理论!

我会用短短的15分钟时间快速地向你介绍RTOS的基本原理。时间有限,只讲重点!如果你掌握了这个重点,那么可以说对RTOS的最核心的机制已经掌握,完全可以自信的面对其它RTOS、甚至于PC机上的多线程!

主要内容

本节课时的主要目的是让你熟悉RTOS的基本原理。如果你之前没有用过RTOS,可能会觉得这一节课时稍微有点枯燥和难以理解。没有关系!你可以先对这门课是中所介绍的内容有个大致了解,然后在学习后面的课时中,你就会对这些知识有更深的掌握。

在课程中我们介绍了什么是RTOS,简而言之其有三种特点:

  • 在规定的时间内对事件进行响应的软件,实时并不意味着快
  • 提供任务管理和协调的控制功能的系统软件
  • 运行于特定的嵌入式硬件,功能可裁剪、代码可移植

对于RTOS的概念以及上面的三个特点,简单了解一下即可。在之后的学习以及开发中,你会对上面介绍特点逐步了解。

我们还学习了RTOS的工作原理,这些原理适用于我们常见的各种RTOS。

重点难点

本节课时的主要难点就在于理解RTOS的工作原理。一个成熟的RTOS有非常多的功能,但是其核心都是一样的。我们要理解了恰恰是这个核心的工作原理。

这个核心原理就是:提供多个执行流:虽然实际只有一颗CPU硬件,但是通过“虚拟化”,每个Task好像独占CPU。*所谓的“执行流”,指的是代码的执行流程。在应用了RTOS之后,我们就得到了多个执行流。其原理如下:

RTOS能够在单颗CPU上,通过“时分复用”的方式,让CPU来回地执行不同任务的代码。由于CPU的工作速度非常快,所以给人的感觉就像是每个任务都同时得到执行,进而就像是每个任务在独自占用CPU运行。但实际上,任意时刻只有其中的某个任务代码正在执行。

如果用形像的图来表示,即是这样。

如果我们深入CPU的执行底层,可以看到这样一幅有意思的图。

如果再用我们生活中的例子来举例说明,可以设想这样一个场景。

假如有多位同事同时要求你协助开发他的项目,你有两种应对办法。

第一,按先来先到的原则,哪个项目先来就先做完了项目,其他项目推后;

第二,如果这些项目的优先级相同,你不可能让某个项目在等待其他项目完成之后再去开发,所以只好硬着头皮去同时开发多个项目。具体来讲,你需要将一天的时间分配到多个项目中,这样每个项目都能得到开发。假如你的工作速度非常快,这些项目同事他们会有这样一种感觉似乎你每天只在开发他的项目。但实际上,你只是“分时开发”而已。

RTOS的核心工作原理其实就和上面第二种方式一样。

注意事项

常见问题