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 用户应用程 ...
随机推荐
- VUE中具名插槽和匿名插槽的使用
在我的项目中由于使用的是vue+element一个自用框架进行开发,插槽用法相较简单 比如在列表字段columns使用slotname即可 <template v-slot:_spec=&quo ...
- nvm环境安装
目录 nvm是什么 使用背景 nvm的坑. nvm,node,npm之间的区别. nvm.nodejs.npm的关系: nvm-windows下载地址 安装 linux . mac 源码包下载地址 解 ...
- C#.Net筑基-基础知识
01.C#基础概念 1.1.C#简介 C# (读作C Sharp)是由微软公司开发的一种面向对象.类型安全.高效且简单的编程语言,最初于 2000 年发布,并随后成为 .NET 框架的一部分.所以学习 ...
- 在Biwen.QuickApi中整合一个极简的发布订阅(事件总线)
闲来无聊在我的Biwen.QuickApi中实现一下极简的事件总线,其实代码还是蛮简单的,对于初学者可能有些帮助 就贴出来,有什么不足的地方也欢迎板砖交流~ 首先定义一个事件约定的空接口 public ...
- HDU-Employment Planning题解
题目在这里 -------------------------------- Employment Planning 简单的一道dp 关键的点在于想到用枚举实现各种情况的讨论 关键的注释写在代码里了 ...
- 密码学—仿射密码Python程序
文章目录 仿射密码 加密算法 解密算法 仿射密码 古典密码,且属于单表加密. 加密算法 仿射密码公式 c = m×k + b mod 26 c是密文,m是明文,m作为26字母中的明文,因此计算出来的密 ...
- 模仿jinja2的模板语言实验,可用于简易框架中
mcw_str=''' wo shi {{ name }} ''' import re class myclass(): def inithtml(self): ret1 = re.search('{ ...
- centos7源码编译安装nginx1.19并调优,向已安装的nginx添加新模块
目录 一.关于nginx 二.nginx的安装方式 三.源码编译安装nginx 3.1 下载nginx源码并解压 3.2 创建nginx用户和组 3.3 安装nginx编译环境(解决依赖问题) 3.4 ...
- java jdbc 得到像C#里的datatable一样的表格
public ArrayList<ArrayList<String>> getDataTale2(String sql) throws SQLException { Array ...
- 排查Python卡慢神器
如果遇到Python正在运行中的进程卡住,找不到原因.可以试试以下工具方法, 对于python就像jstack对于java一样. 法一 使用pystack-debugger 安装方式如下: yum i ...