uCos 学习:0-有关概念
先说一下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-有关概念的更多相关文章
- mangodb学习0.1 概念
摘自菜鸟教程
- Oracle RAC学习笔记:基本概念及入门
Oracle RAC学习笔记:基本概念及入门 2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章] oracle 10g real applica ...
- Prolog学习:基本概念 and Asp.net与Dojo交互:仪器仪表实现
Asp.net与Dojo交互:仪器仪表实现 项目中需要用到仪器仪表的界面来显示实时的采集信息值,于是便遍地寻找,参考了fusionchart和anychart之后,发现都是收费的,破解的又没有这些功能 ...
- Python学习:基本概念
Python学习:基本概念 一,python的特点: 1,python应用场景多;爬虫,网站,数据挖掘,可视化演示. 2,python运行速度慢,但如果CPU够强,这差距并不明显. 3,严格的缩进式编 ...
- Docker学习之基本概念
Docker学习之基本概念 作为一个后端noder,不了解docker有点说不过去,这节开始,学习一些docker层面的东西. 什么是docker Docker最初是dotCloud公司创始人Solo ...
- jQuery学习笔记之概念(1)
jQuery学习笔记之概念(1) ----------------------学习目录-------------------- 1.概念 2.特点 3.选择器 4.DOM操作 5.事件 6.jQuer ...
- 我也想聊聊 OAuth 2.0 —— 基本概念
这是一篇待在草稿箱半年之久的文章 连我自己都不知道我的草稿箱有多少未发布的文章了.这应该是我在上一家公司未解散之前写的,记得当时是要做一个开发者中心,很不幸. 今天,打开草稿箱有种莫名的伤感,看到这个 ...
- Java IO学习笔记:概念与原理
Java IO学习笔记:概念与原理 一.概念 Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...
- PCIE 2.0协议概念基本科普
PCIE的概念:是电脑总线PCI的一种,它沿用现有的PCI编程概念及通信标准,但建基于更快的串行通信系统. 英特尔是该接口的主要支持者.PCIe仅应用于内部互连.由于PCIe是基于现有的PCI系统,只 ...
- Hadoop YARN学习之核心概念(2)
Hadoop YARN学习之核心概念(2) 1. Hadoop 2.X YARN引入的新服务 1.1 新的ResourceManager纯碎作为资源调度器,是集群资源的唯一仲裁者: 1.2 用户应用程 ...
随机推荐
- Photoshop批量替换图层的方法
平时做图片,应该有遇到这样的场景,比如P奖状.P邀请函,内容是一样的,但是图片上的名字是不一样的,要是要P100张的话,一个个手动复制改名字肯定会吐血(╯°□°)╯︵ ┻━┻ Photoshop里有个 ...
- Hive中的FileFormat、RowFormat和SerDe总结
Hive如何读写数据? 我们知道,hive表的数据是存储在hdfs文件系统中的.那么Hive是如何将hdfs上的数据文件,映射成一张张表呢,今天就来理清楚这个问题. 官方文档中对于Hive读数据的流程 ...
- ibus 输入法导致输入卡顿的解决方案
系统: Zorin OS 16 Pro 基于 Ubuntu 20.04 LTS 关键词:Linux 间歇性卡顿.输入法导致卡顿.无法输入 本问题发生的情形是系统间歇性的无法接受键盘输入,无意间发现切换 ...
- Linux中的cp命令
Linux中cp命令用来赋值文件或者目录,其常用的命令选项如下: 下面是cp命令的一些使用示例: 默认情况下,cp命令赋值出来的权限或者属性通常来源自操作者本身.比如上面在root身份在执行cp命令, ...
- pageOffice控件实现在线编辑Word 只能加批注的功能
OA办公中,业务需要编辑打开word文档后 文档的正文不能改变,只能对文档进行加批注的操作 怎么实现编辑打开word文档后 文档的正文不能改变,只能对文档进行加批注的操作呢? # 1.实现方法 通过p ...
- 23ai免费版本环境快速就绪
笔者感受就是搞一套Oracle 23ai的学习测试环境,从未如此的简单高效. 因为近期Oracle 23ai这个话题很火,很多人也在找实验环境想亲自体验测试一番. 其实搞这样的环境没有任何的门槛,甚至 ...
- js实现 StringBuilder
function StringBuilder() { this._stringArray = new Array(); } StringBuilder.prototype.append = funct ...
- 一文读懂Apollo客户端配置加载流程
SpringBoot集成Apollo源码分析 本文基于 apollo-client 2.1.0 版本源码进行分析 Apollo 是携程开源的配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修 ...
- Python实现五子棋人机对战的二次开发
Python实现人机对战的二次开发 在网上找到了一个使用python实现五子棋游戏,其中通过加入一个简单的AI算法实现了人机对战的功能,我觉得这个人机对战还是蛮有意思的,下面我分析一下五子棋游 ...
- k8s——api
api概述 api是k8s系统的重要部分,组件之间的所有操作和通信均由apiserver处理的rest api调用,大多数情况下,api定义和实现都符合标准的http rest格式,可以通过kubct ...