嵌入式实时操作系统μC/OS-II原理及应用(1)

嵌入式实时操作系统μC/OS-II原理及应用

第一章:嵌入式操作系统的基本概念
1.1 计算机操作系统
1.1.1什么是计算机操作系统
•OS - 操作系统(Operating System)
• API – 应用程序接口(Application Programming Interface)
•计算机的硬件系统就是一些构成计算机的实际物理装置,比如中央微处理器(CPU)、存储器、接口及外部设备。
• “裸机”就是只有硬件构成的计算机。计算机必须在硬件的基础上配以相应的软件才能构成真正的计算机系统。
• 操作系统在计算机中的位置
应用软件
Microsoft、Photoshop、…、ACDSee
系统软件
编译程序、汇编程序、编辑程序、…数据库
操作系统
Windows、Lunix、…、Solars
计算机硬件系统
• 在计算机系统中的硬件和软件是分层次的。下层是对上层运行的基础,上层是下层功能的扩充;下层对上层隐藏了下层功能实现的细节,只对上层提供了使用这些功能的接口。

1.1.2 操作系统的功能和作用
• 操作系统作用:为应用程序提供了一个界面友好,性能稳定、安全,效率高,操作方便的虚拟计算机。
•操作系统的功能:
(1) 处理器的管理:对中断的管理和对处理器的工作进行调度。
(2) 存储的管理:合理地分配和使用资源。
(3) 设备的管理:以便完成用户提出的I/O请求,加快输入/输出的速度,提高I/O设备的利用率。此外,还需要提供外部设备的驱动程序。
(4) 文件的管理:程序和数据通常以文件的形式存储在外设且文件量巨大。
(5) 网络和通信的管理:具有管理网上资源、通过网络进行通信、故障管理、安全管理、性能管理等网络功能。
(6) 提供用户接口。

1.2 嵌入式系统和嵌入式操作系统
1.2.1嵌入式系统的基本概念
•嵌入式系统通用的定义:嵌入式系统是对对象进行自动控制而使其具有智能化并可嵌入对象体系中的专用计算机系统。“嵌入性”,“专用性”,“计算机系统”是嵌入式系统的三个基本要素。对象系统也叫做嵌入式系统的宿主对象系统。
• 发展经历:了解……
• 嵌入式系统的特点:
从嵌入式系统的构成上来看,嵌入式系统是集软硬件于一体的、可独立工作的计算机系统;从外观上看,嵌入式系统就像是一个“可编程”的电子“器件”;从功能上看,它是对宿主对象进行控制,使其具有“智能”的控制器。
(1) 专用性强
(2) 可裁剪性好
(3) 实时性与可靠性好
(4) 功耗低

1.2.2 嵌入式操作系统
•运行在嵌入式硬件平台上,对整个系统及其所操作的部件、装置等资源进行统一协调、指挥和控制的系统软件就叫做嵌入式操作系统。
• 特点:微型化;可裁剪性;实时性;高可靠性;易移植性。
• 分类:
按嵌入式操作系统的应用范围划分:通用型嵌入式操作系统和专用型
按对外部的响应能力来分类:实时操作系统和分时操作系统
• 如果操作系统能使计算机系统及时响应外部事件的请求,并能及时控制所有实时设备与实时任务协调运行,且能在一个规定的时间内完成对事件的处理,这种操作就是一个实时操作系统。
• 对实时系统有两个基本要求:
(1) 实时系统的计算必须产生正确的结果,称为逻辑或功能正确。
(2) 实时系统的计算必须在预定的时间内完成,称为时间正确。
• 分类:按时间正确的程度来分,实时操作系统又分为硬实时操作系统和软实时操作系统。
• 硬实时操作系统:要求系统必须在极严格的时间内完成实时任务。
硬实时操作系统的确定:超过截止时间计算出来的正确结果和错误的计算结果都是不能容忍的,因为事故已经发生了,结果再正确也没有什么用途了。
• 软实时操作系统:系统完成实时任务的截止时间要求不是十分严格。
软实时操作系统对于计算机超时具有一定的容忍度,超过运行计算时间得到的运算结构不会完全没有用途,只是这个结果的可信度要有某种程度的降低。

1.2.3 实时操作系统需要满足的条件
•条件:
(1) 实时操作系统必须是多任务系统。
(2) 任务的切换时间应与系统中的任务数无关。
(3) 中断延迟的时间可预知并且尽可能短。
• 多任务:如果把一个大的任务分解成多个可并行运行的小的任务,那么在一个任务需要等待I/O时,就可以交出对CPU的使用权,而让CPU去运行其他任务,这样就可以大大提高CPU 的利用率。系统完成任务所花的时间就会大大减少,从而给提高系统的实时性能创造了条件。另一个优点,即它可以让程序员把一个大的应用程序分成相对独立的多个任务来完成,从而给应用程序的设计和维护也提供了极大的方便。
• 内核的类型:可剥夺型和不可剥夺型。
不可剥夺型内核也叫做合作型多任务内核。总是优先级别最高的任务最先获得CPU 的使用权。为防止某个任务始终霸占CPU 的使用权,这种内核要求每个任务必须能主动放弃CPU 的使用权。
可剥夺型内核,CPU总是运行多个任务中优先级别最高的那个任务,即使CPU正在运行某个低优先级的任务,当有高优先级别的任务准备就绪时,该最高级别的任务就会剥夺在运行任务的CPU 使用权,而使自己获得CPU的使用权。
• 任务的切换时间:操作系统的调度器就是做任务之间的切换。切换任务时间的长短也是影响系统实时性的重要因素。因此要求作为进行任务切换的调度器的运行时间应该是固定的,即调度器进行任务切换所用的时间不能受应用程序中其他因素的影响。
• 中断延迟:外部事件的发生常常以一个中断申请信号的形式来通知CPU,然后才运行中断服务程序来处理该事件。自CPU响应中断到CPU转向中断服务程序之间所用的时间叫做中断延时。

1.2.4 嵌入式系统的任务以及嵌入式实时操作系统
• 嵌入式系统的任务:所支持的典型任务应该是一个无限循环结构 。
• 任务代码组成方式:
void返回类型,在一个无限循环里面,用户编写要完成的任务,但有时会有外部异步操作,所以要使用中断技术
void task(void * data)
{
for(; ;)
{
用户编写的代码;
}
}

你可能感兴趣的:(the,long,way,of,C,language,嵌入式实时操作系统)