实时系统基本概念(RTOS)
2012-08-26 22:42
225 查看
代码的临界段
代码的临界段也称为临界区,指处理时不可分割的代码.一旦这部分代码开始执行,则不允许任何中断打入。为确保临界段代码的执行,在进入临界段之前要关中断,而临界段代码执行完以后要立即开中断.
资源与共享
任何为任务所占用的实体都可称为资源。资源可以是输入输出设备,例如打印机、键盘、显示器,资源也可以是一个变量,一个结构或一个数组等。
可以被一个以上任务使用的资源叫做共享资源。为了防止数据被破坏,每个任务在与共享资源打交道时,必须独占该资源。
多任务
多任务运行的实现实际上是靠CPU(中央处理单元)在许多任务之间转换、调度。CPU只有一个,轮番服务于一系列任务中的某一个。多任务运行很像前后台系统,但后台任务有多个。多任务运行使CPU的利用率得到最大的发挥,并使应用程序模块化。在实时应用中,多任务化的最大特点是,开发人员可以将很复杂的应用程序层次化。使用多任务,应用程序将更容易设计与维护。
任务
一个任务,也称作一个线程,是一个简单的程序,该程序可以认为CPU完全只属该程序自己。实时应用程序的设计过程,包括如何把问题分割成多个任务,每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。
任务的状态
任务切换(Context Switch or Task Switch)
当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态(Context),即CPU寄存器中的全部内容。这些内容保存在任务的当前状况保存区(Task’s Context Storage area),也就是任务自己的栈区之中。入栈工作完成以后,就是把下一个将要运行的任务的当前状况从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行。这个过程叫做任务切换。任务切换过程增加了应用程序的额外负荷。CPU的内部寄存器越多,额外负荷就越重。做任务切换所需要的时间取决于CPU有多少寄存器要入栈。实时内核的性能不应该以每秒钟能做多少次任务切换来评价。
内核(Kernel)
多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通讯。
内核提供的基本服务是任务切换。之所以使用实时内核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。
内核本身也增加了应用程序的额外负荷,代码空间增加ROM的用量,内核本身的数据结构增加了RAM的用量。但更主要的是,每个任务要有自己的栈空间,这一块吃起内存来是相当厉害的。
内核本身对CPU的占用时间一般在2到5个百分点之间.
单片机一般不能运行实时内核,因为单片机的RAM很有限。通过提供必不可缺少的系统服务,诸如信号量管理,邮箱、消息队列、延时等,实时内核使得CPU的利用更为有效。
调度(Scheduler)
调度就是要决定该轮到哪个任务运行了。
多数实时内核是基于优先级调度法的。每个任务根据其重要程度的不同被赋予一定的优先级。
基于优先级的调度法,指CPU总是让处在就绪态的优先级最高的任务先运行。
究竟何时让高优先级任务掌握CPU的使用权,有两种不同的情况,这要看用的是什么类型的内核,是不可剥夺型的还是可剥夺型内核。
可参考: 实时系统的一些概念
实时内核:可剥夺型与不可剥夺型
实时操作系统的特点
代码的临界段也称为临界区,指处理时不可分割的代码.一旦这部分代码开始执行,则不允许任何中断打入。为确保临界段代码的执行,在进入临界段之前要关中断,而临界段代码执行完以后要立即开中断.
资源与共享
任何为任务所占用的实体都可称为资源。资源可以是输入输出设备,例如打印机、键盘、显示器,资源也可以是一个变量,一个结构或一个数组等。
可以被一个以上任务使用的资源叫做共享资源。为了防止数据被破坏,每个任务在与共享资源打交道时,必须独占该资源。
多任务
多任务运行的实现实际上是靠CPU(中央处理单元)在许多任务之间转换、调度。CPU只有一个,轮番服务于一系列任务中的某一个。多任务运行很像前后台系统,但后台任务有多个。多任务运行使CPU的利用率得到最大的发挥,并使应用程序模块化。在实时应用中,多任务化的最大特点是,开发人员可以将很复杂的应用程序层次化。使用多任务,应用程序将更容易设计与维护。
任务
一个任务,也称作一个线程,是一个简单的程序,该程序可以认为CPU完全只属该程序自己。实时应用程序的设计过程,包括如何把问题分割成多个任务,每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。
任务的状态
任务切换(Context Switch or Task Switch)
当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态(Context),即CPU寄存器中的全部内容。这些内容保存在任务的当前状况保存区(Task’s Context Storage area),也就是任务自己的栈区之中。入栈工作完成以后,就是把下一个将要运行的任务的当前状况从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行。这个过程叫做任务切换。任务切换过程增加了应用程序的额外负荷。CPU的内部寄存器越多,额外负荷就越重。做任务切换所需要的时间取决于CPU有多少寄存器要入栈。实时内核的性能不应该以每秒钟能做多少次任务切换来评价。
内核(Kernel)
多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通讯。
内核提供的基本服务是任务切换。之所以使用实时内核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。
内核本身也增加了应用程序的额外负荷,代码空间增加ROM的用量,内核本身的数据结构增加了RAM的用量。但更主要的是,每个任务要有自己的栈空间,这一块吃起内存来是相当厉害的。
内核本身对CPU的占用时间一般在2到5个百分点之间.
单片机一般不能运行实时内核,因为单片机的RAM很有限。通过提供必不可缺少的系统服务,诸如信号量管理,邮箱、消息队列、延时等,实时内核使得CPU的利用更为有效。
调度(Scheduler)
调度就是要决定该轮到哪个任务运行了。
多数实时内核是基于优先级调度法的。每个任务根据其重要程度的不同被赋予一定的优先级。
基于优先级的调度法,指CPU总是让处在就绪态的优先级最高的任务先运行。
究竟何时让高优先级任务掌握CPU的使用权,有两种不同的情况,这要看用的是什么类型的内核,是不可剥夺型的还是可剥夺型内核。
可参考: 实时系统的一些概念
实时内核:可剥夺型与不可剥夺型
实时操作系统的特点
相关文章推荐
- 实时系统基本概念(1)
- 实时系统基本概念
- [文件系统]文件系统学习笔记(一)---基本概念以及inode
- 系统管理员必知PowerShell十大基本概念
- Bitmap基本概念及在Android4.4系统上使用BitmapFactory的注意事项
- 大数据分布式系统涉及的一些基本概念(二)
- 基本概念学习(1003)---嵌入式系统
- Basic Concepts in OS X Operation System(OSX系统的一些基本概念),准确地说是mach内核的一些基本概念
- 基本概念学习(8001)--系统结构
- 嵌入式实时操作系统UCOSII(邵贝贝)--笔记之实时系统概念(第二章)
- 实时系统概念之一
- RTOS基本概念
- Android系统应用程序基本概念解读
- 实时系统概念
- Flume+Kafka+Storm+Redis实时分析系统基本架构
- 第一章 : 数据库系统基本概念
- AIX文件系统基本之逻辑卷概念
- 关于设计实时交易系统基本框架的理解
- 数据库系统概论学习02-基本概念
- (4.6.11.6)基于Facebook Buck改造Android构建系统之基本概念