实时多任务操作系统uCOS-III的特点

时间:2022-08-05 19:36:15

实时多任务操作系统uCOS-III的特点

       uCOS-III是一个全新的实时内核,源于世界上最流行的实时内核uC/OS-II,除了提供熟悉的一系列系统服务,全面修订了API接口,使uC/OS-III更直观,更容易使用。该产品可以广泛应用于通信,工业控制,仪器仪表,汽车电子,消费电子,办公自动化设备等的设计开发。

       uCOS-III是一个抢占的多任务内核,支持优先级相同的任务轮询调度。它可以移植到许多不同的CPU架构。uC/OS-III是专为嵌入式系统设计,可以与应用程序代码一起固化到ROM中。

       uCOS-III可在运行时配置实时操作系统。所有内核对象,如任务,堆栈,信号量,事件标志组,消息队列,消息数量,互斥信号量,内存分区和定时器,由用户在运行时进行分配。这可以防止在编译的时候分配过多资源。

      uCOS-III允许有任意数量的任务,信号量,互斥信号量,事件标志,消息队列,定时器和内存分区(仅受限于处理器可用的RAM大小)。

       uCOS-III添加了许多非常有用的功能,如:可嵌套互斥信号量,可嵌套任务暂停,不需要信号量可发信号给任务,不需要消息队列可发送消息给任务,等待多个内核对象,针对'errno'或其他任务的特定状况的任务注册,内置的性能测量,死锁预防,用户定义的钩函数等。

       uCOS-III还内置了支持内核感知调试。允许内核感知调试器以用户友好的方式检测和显示uC/OS-III的变量和数据结构,也允许uC/Probe在运行时显示和改变变量。

       μCOS-III是可以抢占的多任务内核,始终运行进入就绪态的最重要的任务。μC/OS-III支持无限数量的任务,并允许在运行时,监测堆栈增长的任务。它还支持无限数量的优先级。然而,通常情况下,对于大多数应用,32至256个不同的优先级是足够的。

       对于今天的设计,特别有用的是具有同等优先级的轮转调度的任务。μC/OS-III允许多个任务运行在同一优先级,每一个任务运行由用户指定的时间片。每个任务可以定义自己的时间单元,如果其完整的时间单元并不是必需的,每个任务可以放弃时间片。μC/OS-III还允许无限数量的内核对象,如任务,信号量,互斥,信号旗,消息队列,计时器和内存分区。μC/OS-III大部分是运行时可以配置。

       μC/OS-III提供接近零的中断停用时间。μC/OS-III有一些内部数据结构和变量,需要获得原子访问权(不能够被打断的)。这些关键区域的保护由锁调度,而不是由禁用中断实现。中断被禁用的时钟周期几乎为零,确保了实时操作系统将能够响应一些最快的中断源。

       允许任务使用同一优先级。对同一优先级的多个任务,采用时间片调度法。
       可以有任意多的任务,任意多的信号量(semaphore)、互斥型信号量(mutex)、事件标志(event flag)、消息队列(queue)、定时器(timer)和任意分配的存储块容量(仅受限于用户 CPU 可以使用的 RAM 量)
       可嵌套的互斥型信号量,可嵌套的任务挂起。
       向无信号量请求的任务发送信号量,向无消息队列请求的任务发送消息。
       任务可被内核的多个元素挂起(多重挂起)。
       增加为其他任务的状态或“出错代码”服务的任务。
       内在的性能测试。不仅能得到每个任务的最长关中断时间和最长禁止调度时间,还能得到系统的最长关中断时间和最长禁止调度时间。
       选择和确定优先级的算法可以用汇编语言写,以发挥一些有特殊指令的CPU的优势,如:置位和复位指令;计数器清零(CLZ);找出第一个不为零位(FF1)指令等。
       访问临界资源的方法由关中断改为给调度器上锁的方式,使得内核关中断的时钟周期数几乎为零,保证了 μC/OS-III 能以最快的速度响应中断。