嵌入式系统-公选3.ppt

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统-公选3.ppt

4 嵌入式操作系统的选择标准 (4)对不同硬件平台的可移植性 可移植性讨论 软件移植到不同目标硬件时,如果能够将依赖于硬件的低级代码和高级的应用程序及操作系统区分开来,移植工作将会变得非常简单 通常,嵌入式操作系统将最小依赖于硬件的低级代码设计成板级支持包BSP,则进行移植工作时,只需改变相应的依赖于硬件的BSP和其它一些外围硬件设备驱动程序,无需修改操作系统和应用程序 嵌入式操作系统可移植性评估 支持的嵌入式处理器的种类数量 是否提供相应嵌入式处理器的BSP模板 提供的外围硬件设备驱动程序的种类数量 4 嵌入式操作系统的选择标准 4 嵌入式操作系统的选择标准 (5)开发环境的完备性 是否提供友好的交叉开发工具 交叉开发工具的集成性(包括是否提供编辑器、编译器、链接器、调试器、仿真器、工程管理器等)与开放性 (6)服务与价格等 提供的服务包括包括是否提供源代码、技术文档的完善性以及升级维护和技术支持能力等 价格包括开发购买价格和使用价格(如使用时是否需要购买Licence) 5 嵌入式系统的任务管理 单道程序设计和多道程序设计 嵌入式操作系统可以分为单道程序设计和多道程序设计(mufti-programming)两种类型。 1.单道程序设计类型 采用单道程序设计的操作系统在任何时候只能有一个程序在运行。 2. 多道程序设计类型 采用多道程序设计的操作系统允许多个程序同时存在并运行,采用多道程序技术可以有效提高系统资源的利用率。 单道程序与多道程序的运行过程 5 嵌入式系统的任务管理 进程、线程和任务 1.进程 进程(process)是在描述多道系统中并发活动过程引入的一个概念。进程和程序是两个既有联系又有区别的概念,两者不能混为一谈。 一个程序主要由代码和数据两部分内容组成。 进程是正在执行的程序,它是由程序和该程序的运行上下文两部分内容组成。 程序是静态的 进程是一个动态的,变化的。 进程和程序之间并不是一一对应的。 一个进程通常包含有以下几个方面的内容: 相应的程序:进程是一个正在运行的程序,有相应程序的代码和数据。 CPU上下文:程序在运行时,CPU中含有PC(Program Counter,程序计数器)、PSW(Program Status Word, 程序状态字)、通用寄存器、段寄存器、栈指针寄存器等各种寄存器的当前值内容, 一组系统资源:包括操作系统用来管理进程的数据结构、进程的内存地址空间、进程正在使用的文件等。 进程具有并发性,在系统中同时有多个进程存在,它们相互独立地运行。 2.线程 线程(thread)是一个比进程更小的能独立运行的基本单位。 所谓的线程,就是进程当中的一条执行流程。 从资源组合的角度来看,进程把一组相关的资源组合起来,构成了一个资源平台(资源环境),其中包括运行上下文、内存地址空间、打开的文件等,。从程序运行的角度来看,进程就是一个正在运行的程序。可以把进程看成是程序代码在这个资源平台上的一条执行流程(线程),也就是可以认为进程等于线程加上资源平台。 在一个进程当中,或者说在一个资源平台上,可以同时存在多个线程。可以用线程来作为CPU的基本调度单位,使得各个线程之间可以并发执行。对于同一个进程当中的各个线程来说,运行在相同的资源平台上,可以共享该进程的大部分资源(如内存地址空间、代码、数据、文件等),但也有一小部分资源是不能共享的,每个线程都必须拥有各自独立的一份(如CPU运行上下文(如PC寄存器、PSW寄存器、通用寄存器和栈指针等)和栈)。 线程与进程的资源关系 3.任务 在一些嵌入式系统中,把能够独立运行的实体称为“任务”(task),并没有使用“进程”或“线程”这两个概念。任务到底是进程还是线程,在研究一个具体的嵌入式操作系统的时候,要注意加以区分。 在任务的创建过程需要定义的主要参数有任务的优先级、栈空间的大小和函数名。任务具有独立的优先级和栈空间,CPU上下文一般也是存放在栈空间中。对于不同的任务,它们也能够访问相同的全局变量,在这些任务之间,可以很方便地、直接地去使用共享的内存,而不需要经过系统内核来进行通信。 通常认为,在嵌入式操作系统中“任务”就是线程,如在VxWorks、μC/OS-II、 Jbed、嵌入式Linux等嵌入式操作系统中。 任务的调度 任务调度存在可抢占调度(preemptive)和不可抢占调度(nonpreemptive)两种调度方式。 (1)在可抢占调度方式,当一个任务正在运行的时候,出现调度时机,都有可能会发生调度。调度程序可以去打断它,并安排另外的任务去运行。实时操作系统大都采用可抢占的调度方式。 (2)在不可抢占调度方式,一个任务长时间地占用着CPU系统也不会强制它中止。当出现新任务创建、任务

文档评论(0)

cai + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档