嵌入式操作系统的一些基本概念

1、前后台系统

  一些对实时性要求不那么严格的基于芯片的开发会采用前后台系统架构来进行开发,前后台系统前台由中断构成,后台由一个顺序处理任务的无限循环构成。

// 中断服务程序
void keyHandle();
void uartHandle();

// 主函数
int main(int argc, char **argv)
{
    BSP_Flash_Init();
    BSP_Board_Init();
    BSP_UART_Init();

    while(true)
    {
        if(flag)
        {

        }
        else
        {

        }

        ...
    }
}

2、操作系统

  操作系统时计算机中最基本的程序,操作系统负责将计算机中全部软硬件资源分配、回收、控制、协调等并发的活动。操作系统提供用户接口,为用户扩展新的功能提供软件平台。

3、实时操作系统(RTOS)

  实时操作系统最大的特性是“实时性”,即严格按照优先级来分配CPU时间。

4、代码的临界区

  在临界区中的代码不能被打断,即原子操作,在进入和执行完毕代码临界区代码时要开关中断。

5、资源

  程序运行时一切可使用的软硬件环境统称为资源,资源包括打印机、显示屏、数组、结构等。

6、共享资源

  由一个以上任务共同访问的资源称作共享资源,在访问共享资源时需要加锁(互斥),防止有一个以上的任务共同修改公共资源。

7、任务

  一个任务也可以称作一个线程,是一个简单的程序,每一个任务都可以认为CPU完全属于程序自己。每一个任务都有自己的CPU寄存器和任务栈空间。

8、任务切换

  当有更高优先级的任务就绪或中断发生就会抢占CPU执行,首先将当前执行的程序CPU寄存器中的数据复制到当前程序的栈空间,然后从高优先级任务的栈空间复制相应数据到CPU寄存器中执行,这个过程就叫任务切换。CPU内部寄存器越多任务切换的开销就越大,任务切换需要的时间取决于 有多少寄存器需要入栈,一个实时系统内核的性能不应该用一秒可以切换多少任务来评估。

9、内核

  在多任务系统中内核负责为任务分配CPU时间、任务间通信和切换任务。使用实时内核可以大大简化程序设计,简化了任务调度、通信等问题。内核提供信号量管理、消息队列、延时等。

10、调度

  调度就是决定任务使其运行。

11、非抢占式内核

  非抢占式调度也称为合作型多任务,调度规则是要等待当前运行任务自动结束后才调度下一个任务运行。

12、抢占式内核

  当任务要求实时性是就要选择抢占式内核,调度规则是一旦有更高优先级的任务就绪就立即抢占CPU运行,不管是否有任务正在运行。

13、任务优先级

  任务优先级越高就越容易抢占CPU运行。

14、中断

  中断是一种硬件机制,用于处理异步事件。一旦中断被识别,CPU立即进行现场保护跳转运行中断服务程序。进入中断服务程序时可以选择关中断来屏蔽接下来的中断事件,关中断的时间尽量要短。

  前后台系统:中断服务程序运行结束后,则跳转到后台程序继续运行。

  非抢占式内核:中断服务程序运行结束后,则跳转到中断发生前的程序继续运行。

  抢占式内核:中断服务程序运行结束后,则跳转到优先级最高的就绪程序继续运行。

15、时钟节拍

  时钟节拍时特定的周期性中断,用于特定的任务,一般10 - 200ms,时间越短系统额外的开销越大。可以用来提供延时和等待超时的依据。

 

posted on 2024-01-18 19:07  _燃灯续昼  阅读(8)  评论(0编辑  收藏  举报

导航