热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

嵌入式操作系统μC/OS-II的特点

早在上世纪六十年代,就已经有人开始研究和开发嵌入式操作系统。但直到最近,它才在国内被越来越多的提及。其在通信、电子、自动化等需要实时处理的领域所日益显现的重要性吸引了人们越来越多的注意力。下面

    早在上世纪六十年代,就已经有人开始研究和开发嵌入式操作系统。但直到最近,它才在国内被越来越多的提及。其在通信、电子、自动化

等需要实时处理的领域所日益显现的重要性吸引了人们越来越多的注意力。下面由卓跃教育为您介绍。
  
  μC/OS-II是由Labrosse先生编写的一个开放式的内核,它最主要的特点就是源码公开的自由软件。这一点对于用户来说可谓利弊各半;好

处在于,一方面它是免费的;另一方面用户可以根据自己的需要对它进行修改。坏处在于,它缺乏必要的支持。它没有功能强大的软件包,用

户通常得自己编写驱动程序,特别当用户使用的是不太常用的单片机,还必须自己编写移植程序。
  
  μC/OS-II特点
  
  (1)μC/OS-II是一个占先式的内核,即已经准备就绪的高优先级任务可以剥夺正在运行的低优先级任务的CPU使用权。这个特点使得它的实

时性比非占先式的内核要好。通常我们都是在中断服务程序中使高优先级任务进入就绪态(例如发信号),这样退出中断服务程序后,将进行任

务切换,高优先级任务将被执行。但是因为我们无法确定发生中断时程序到底执行到了什么地方,我们也就无法判断要经过多长时间数据处理

程序才会执行,中断响应时间无法确定,系统的实时性不强。如果使用μC/OS-II的话,我们只要把数据处理程序的优先级设定的高一些,并在

中断服务程序中使它进入就绪态,中断结束后数据处理程序就会被立即执行。
  
  (2)μC/OS-II和我们所知道的Linux等分时操作系统不同,不支持时间片轮转法。它是一个基于优先级的实时操作系统。每一个任务的优先

级必须不同(分析它的源码会发现,mC/OS-II把任务的优先级当作任务的标识来使用,如果优先级相同,任务将无法区分)。进入就绪态的优先

级最高的任务首先得到CPU的使用权,只有等它交出CPU的使用权后,其他任务才可以被执行。所以它只能说是多任务,不能说是多进程,至少

不是我们所熟悉的那种多进程。μC/OS-II的这种特性是好是坏,主要看从什么角度来判断。显而易见,如果只考虑实时性,当然比分时系统好

,它可以保证重要任务总是优先占有CPU。但是在系统中,重要任务毕竟是有限的,这就使得划分其它任务的优先权变成了一个让人费神的问题


  
    (3)μC/OS-II对共享资源提供了保护机制。μC/OS-II是一个支持多任务的嵌入式操作系统。我们可以把一个完整的程序划分成几个任务,

不同的任务执行不同的功能。对于共享资源(比如串口),μC/OS-II也提供了很好的解决办法,一般情况下使用的是信号量方法。我们创建一个

信号量并对它进行初始化,当一个任务需要使用一个共享资源时,它必须先申请得到这个信号量。在这个过程中即使有优先权更高的任务进入

了就绪态,因为无法得到信号量,也不能使用该资源。在μC/OS-II中称为优先级反转。
 


推荐阅读
author-avatar
xia
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有