- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实时系统中的POSIX及Case Study
实时系统中的POSIX及Case Study
Kevin M. Obenland
Embedded Systems Programming
译者:周晓虎 2002
每个RTOS都有其专有API,不过其中一些也支持POSIX标准。本文考察POSIX中应用于实时系统的部分。
在今日的计算系统中,利用为业界接受的标准设计开放系统体系结构的软件正变得越来越重要。开发开放系统的需求被3个原因驱使着,第一,一个开发人员就能从头实现整个系统的日子已经一去不复返了。程序的规模正在不断变大,需要不断壮大的开发团队;第二,软件不再是孤立的,他们必须和数量极为庞大的商业软件共存;最后,软件应用程序的生命期通常都很长,增加新功能时需要进行各种修改和升级。
通过定义可以提高互用性和可移植性的标准软件接口,开放的软件体系结构适应了当今软件开发过程的挑战。公开发布的标准接口也减少了将来增加功能的花费。
当今的计算机系统中广泛使用了各种标准。各种新的标准也正在不断定义以满足软件技术不断变化的状态。一个标准不被实际使用就不会产生有效的作用,或者马上就会过时。要发挥有效的作用,标准必须基于公认的技术并且被工业界广为接收。
最初的Portable Operating System Interface for Computing Environment(POSIX)标准于1990年首次发布【1】。POSIX是基于UNIX的,后者在上世纪70年代已经成为一项被广为接受的技术。POSIX定义了应用与操作系统接口的标准方法。最初的POSIX标准定义了一些核心功能的接口,比如文件操作,进程管理,信号和设备。随后的POSIX发布还涵盖了实时扩展和多线程【1】。
在理想的世界里,由于前面提到的优越性,人们应该总是选择标准。不过在真实世界里,决定使用标准之前必须解决一系列问题。包括:
标准提供了我的应用需要的功能吗?
标准的性能,或者标准的实现,是否适合我的应用?
有这个标准的商业可用实现吗?
本文将通过三个方面讨论POSIX在实时系统中的有用性:功能functionality,性能performance和可用性availability。由于实时系统通常对性能有严格的限制,重点将放在POSIX实现的性能上。
POSIX实时操作系统
POSIX标准家族包括30多个独立的标准,从基本的操作系统服务规范到测试操作系统对标准的符合程度的规范【2】。本文的重点是那些对实时嵌入式系统开发具有重要意义的标准。本节讨论实时系统并给出对相关POSIX标准的简要的review。
实时系统
实时系统的计算结果及时性是相当重要的【3】【4】。比如军用武器系统,工业控制系统和视频音频流。实时系统通常分为两类:硬实时和软实时。硬实时系统中deadline必须满足否则计算结果就是无效的。例如,在导弹跟踪系统中,如果导弹延迟了就可能错过目标。软实时系统的时间限制没有这么严格。如果没有满足deadline,计算结果可能仍然是有用的。音频流就是一个软实时系统的例子。如果一个数据包迟到或者丢失了,声音质量会降低,不过仍然是可以听见的。
为了保证实时系统的时间需求能够满足,下层计算系统的行为和时间特性必须是可预测的predictable【5】。系统时间性能称为可预测的的就是所有操作的时间必须有界。这意味着所有操作在最坏情况下的时间已知。不过有时,仅当其最坏情况时间和通常情况时间非常接近时系统才称为可预测的。
POSIX实时相关标准
在30多个POSIX标准中,表一列出的7个标准和实时嵌入式系统的开发非常相关。头3个标准1003.1a,1003.1b和1003.1c是被支持最广的。POSIX 1003.1a定义了基本操作系统功能的接口,它是在1990年1月被首个采纳的标准【6】。实时扩展定义在1003.1b,1003.1d,1003.1j和1003.21标准中【7】【8】【9】【10】。不过,最初的定义在1003.1b中的实时扩展是唯一被广泛实现的。进程中的多线程支持在单独的标准POSIX 1003.1c中提供。POSIX还在1003.1h标准中包括了高可用high availability支持【11】。
表一 POSIX标准 标准 名字 描述 1003.1a OS定义 基本OS接口;包括的支持有:单进程,多进程,作业控制,信号,用户组,文件系统,文件属性,文件设备管理,文件锁定,设备I/O,设备相关控制,系统数据库,管道,FIFO和C语言 1003.1b 实时扩展 实时系统需要的功能;包括的支持有:实时信号,优先级调度,定时器,异步I/O,优先级I/O,同步I/O,文件同步,映射文件,内存锁定,内存保护,消息传递,信号量 1003.1c 线程 支持单进程内多线程的功能:包括的支持有:线程控制
文档评论(0)