先说一下UCOSIII:Micrium在2009年推出了UCOSIII,相对于之前的UCOSII版本,在性能上有了进一步的提升,主要是支持时间片轮调度,极短的关中断事件等。

可剥夺多任务管理:

什么是可剥夺多任务管理呢?查相关资料,意思就是这个系统总是在执行当前所有就绪的最高优先级的任务。也就是说,不管系统当前有多少个任务,总是在执行优先级最高的。

Micrium在2009年推出了UCOSIII,相对于之前的UCOSII版本,在性能上有了进一步的提升,主要是支持时间片轮调度,极短的关中断事件等。

同优先级任务的时间片轮转调度:

这个是UCOSIII与UCOSII一个比较大的区别,UCOSIII允许一个任务优先级被多个任务使用,当这个优先级处于最高就绪的时候,UCOSIII就会轮流调度处于这个优先级的所有任务,让每个任务运行一段由用户指定的时间长度(时间片)。

极短的关中断时间:

UCOSIII可采用锁定内核调度的方式而不是关中断的方式来保护临界代码段,这样就可以将关中断的时间降到最低,使得UCOSIII能够非常快速的响应中断请求。

任务数目不受限制:

UCOSIII本身没有任务数量的限制,但是受CPU所使用的内存空间的限制。

优先级数量不受限制:

支持无限多的任务优先级。

软件定时器:

用户可以任意定义“单次”和“周期型”定时器,定时器是一个递减计数器,递减到0就会执行预先定义的操作,每个定时器都可以指定所需的操作,周期型定时器在递减到0时不仅会执行预先指定的操作,还会自动重置计数器值。

同时等待多个内核对象:

UCOSIII允许一个任务同时等待多个事件,也就是说,一个任务能够挂起在多个信号量或消息列队之上,当其中任务一个等待的事件发生时,等待任务就会被唤醒。

直接向任务发送信号:

UCOSIII允许中断或者任务直接级另一个任务发送信号,避免创建和使用诸如信号量或事件标志等内核对象作为向其它任务发送信号的中介,该特性有效的提高了系统性能。

任务寄存器:

每个任务都可以设定若干个任务寄存器,任务寄存器和硬件CPU的寄存器是不同的,主要用来保护各个任务的错误信息,ID识别信息,中断关闭时间的测量结果等等。

任务级时钟节拍处理:

UCOSIII的时钟节拍是通过一个专门的任务完成的,定时中断仅触发该任务,将延迟处理和超时判断放在任务级代码完成,能极大的减少中断的延时时间。、

防止死锁:

所有UCOSIII等待功能,都提供了一超时检测功能,有效的避免了死锁。

时间戳:

UCOSIII需要一个16位的或者32位的自由运行计数器,来实现时间测量,在系统运行时,可以通过读取该计数器来测量某一个事件的时间信息。

uCos 学习:0-有关概念的更多相关文章

  1. mangodb学习0.1 概念

    摘自菜鸟教程

  2. Oracle RAC学习笔记:基本概念及入门

    Oracle RAC学习笔记:基本概念及入门 2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章]    oracle 10g real applica ...

  3. Prolog学习:基本概念 and Asp.net与Dojo交互:仪器仪表实现

    Asp.net与Dojo交互:仪器仪表实现 项目中需要用到仪器仪表的界面来显示实时的采集信息值,于是便遍地寻找,参考了fusionchart和anychart之后,发现都是收费的,破解的又没有这些功能 ...

  4. Python学习:基本概念

    Python学习:基本概念 一,python的特点: 1,python应用场景多;爬虫,网站,数据挖掘,可视化演示. 2,python运行速度慢,但如果CPU够强,这差距并不明显. 3,严格的缩进式编 ...

  5. Docker学习之基本概念

    Docker学习之基本概念 作为一个后端noder,不了解docker有点说不过去,这节开始,学习一些docker层面的东西. 什么是docker Docker最初是dotCloud公司创始人Solo ...

  6. jQuery学习笔记之概念(1)

    jQuery学习笔记之概念(1) ----------------------学习目录-------------------- 1.概念 2.特点 3.选择器 4.DOM操作 5.事件 6.jQuer ...

  7. 我也想聊聊 OAuth 2.0 —— 基本概念

    这是一篇待在草稿箱半年之久的文章 连我自己都不知道我的草稿箱有多少未发布的文章了.这应该是我在上一家公司未解散之前写的,记得当时是要做一个开发者中心,很不幸. 今天,打开草稿箱有种莫名的伤感,看到这个 ...

  8. Java IO学习笔记:概念与原理

    Java IO学习笔记:概念与原理   一.概念   Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...

  9. PCIE 2.0协议概念基本科普

    PCIE的概念:是电脑总线PCI的一种,它沿用现有的PCI编程概念及通信标准,但建基于更快的串行通信系统. 英特尔是该接口的主要支持者.PCIe仅应用于内部互连.由于PCIe是基于现有的PCI系统,只 ...

  10. Hadoop YARN学习之核心概念(2)

    Hadoop YARN学习之核心概念(2) 1. Hadoop 2.X YARN引入的新服务 1.1 新的ResourceManager纯碎作为资源调度器,是集群资源的唯一仲裁者: 1.2 用户应用程 ...

随机推荐

  1. 特权同学笔记-《边练边学》-在QP里调用modelsim的步骤

    在QP里调用Modelsim需要先设置仿真参数和工具路径. 在QP调用modelsim的步骤 1. 在QP里建立工程,代码,分析综合:2. 添加testbench代码,processing-start ...

  2. fastreport .net打印普通报表

    fastreport .net打印普通报表 前言: .net代码层先不记录在这,后续会单独写一篇博客来记录. 直接在工具上进行功能点的实现 一.效果图 二.功能点 分页 分页小计 金额大写 三.功能点 ...

  3. 4、Linux 网络基础

    1.基础命令 hostname:查看或设置当前主机名 route [-n]:查看或设置主机中路由表信息 netstat:查看系统的网络连接状态.路由表.接口统计等信息 常用选项 -a:显示所有-n:以 ...

  4. 《最新出炉》系列入门篇-Python+Playwright自动化测试-45-鼠标操作-下篇

    1.简介 鼠标为我们使用电脑提供了很多方便,我们看到的东西就可以将鼠标移动过去进行点击就可以打开或者访问内容,当页面内容过长时,我们也可以使用鼠标滚轮来实现对整个页面内容的查看,其实playwrigh ...

  5. java中调用exe程序和问题处理

    常规方法如下: public class RunExe { public static void main(String[] args) { try { // exe文件的完整路径 String fi ...

  6. 如何使用Python和Plotly绘制3D图形

    本文分享自华为云社区<Plotly绘制3D图形> ,作者:柠檬味拥抱. 在数据可视化领域,三维图形是一种强大的工具,可以展示数据之间的复杂关系和结构.Python语言拥有丰富的数据可视化库 ...

  7. layui 无限级多级菜单

    layui 二级菜单 :https://gitee.com/hslr/layui_extension_modulemenu 我更改了下,变成了无线级菜单 layui.define('element', ...

  8. ZDOCK3.02安装及注意事项:基于Linux Ubuntu系统操作

    cd zdock3.0.2_linux_x64代码mark_sur model2choose.pdb model2choose_m.pdbmark_sur 1bqi2.pdb 1bqi2_m.pdbz ...

  9. 【工作记录】JDBC连接MySQL,跨时区调查CST转Asia/Shangha

    根据业务要求,不同的国家设置jvm参数,来确定当前时区. // -Duser.timezone=Asia/Kolkata 印度加尔各答 GMT+05:30 // -Duser.timezone=Asi ...

  10. 一文教你如何调用Ascend C算子

    本文分享自华为云社区<一文教你如何调用Ascend C算子>,作者: 昇腾CANN. Ascend C是CANN针对算子开发场景推出的编程语言,原生支持C和C++标准规范,兼具开发效率和运 ...