3.1.2 嵌入式操作系统概念
操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。嵌入式操作系统(Embedded Operating System,EOS)也是操作系统的一类,具有其基本功能,也具有特殊性。操作系统是计算机中最基本的程序,负责计算机系统中全部软硬资源的分配与回收、控制与协调等并发的活动;操作系统提供用户接口,使用户获得良好的工作环境;操作系统为用户扩展新的系统功能提供软件平台。根据操作系统的任务不同,嵌入式操作系统的分类如图3-2所示。
在嵌入式操作系统环境下,对复杂的操作系统进行有效管理通常可以按照软件工程的思想,将整个程序分解为多个任务模块,每个任务模块的调试、修改几乎不影响其他模块。利用商业软件提供的多任务调试环境,可大大提高系统软件的开发效率,降低开发成本,缩短开发周期。在应用软件开发时程序员不是直接面对嵌入式硬件设备,而是采用一些嵌入式软件开发环境,在操作系统的基础上编写程序。
图3-2 嵌入式操作系统分类
嵌入式操作系统本身是可以剪裁的,嵌入式系统外部设备、相关应用也可以进行单独配置,所开发的应用软件可以在不同的应用环境、不同的处理器芯片之间移植,软件构件可复用,有利于系统的扩展和移植。嵌入式操作系统相对于一般操作系统而言,仅指操作系统的内核(或者微内核),其他的诸如窗口系统界面或是通信协议等模块,可以另外选择。目前,要求大多数的嵌入式操作系统必须提供以下管理功能:
(1)多任务管理
所有的嵌入式操作系统都是多任务的。目前所说的多任务大多是指多线程方式或多进程方式,操作系统主要是提供调度机制来控制这些执行程序的起始、执行、暂停和结束。
(2)存储管理
在系统资源非常有限的嵌入式系统中一般不采用虚拟内存管理,而采用动态内存管理方式。当程序的某一部分需要使用内存时,利用操作系统提供的分配函数来处理,一旦使用完毕,可以通过释放函数来释放所占用的内存,使内存可以重复使用。
(3)周边资源管理
在嵌入式系统中,除中央处理器、内存之外,还有许多不同的周边系统,如输入/输出设备、通信端口等,操作系统必须提供周边资源的驱动程序,以方便资源管理和应用程序使用。对于应用程序来说,则必须向操作系统注册一个请求机制,然后等待操作系统将资源安排给应用程序。
(4)中断管理
由于查询方式需要占用大量的CPU时间,因此嵌入式操作系统和一般操作系统一样,一般都是用中断方式来处理外部事件和I/O请求的。中断管理负责中断的初始化安装、现场的保存和恢复、中断栈的嵌套管理等。