vxworkssmp多核编程指南.docx

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VxWorks SMP 多核编程指南 本文摘自 vxworks_kernel_programmers_guide_6.8 第 24 章 1. 介绍 VxWorks SMP 是风河公司为 VxWorks 设计的 symmetric multiprocessing ( SMP)系统。 它与风河公司的 uniporcessor( UP)系统一样,具备实时操作系统的特性。 本章节介绍了风河 VxWorks SMP 系统的特点。介绍了 VxWorks SMP 的配置过程、它 与 UP 编程的区别,还有就是如何将 UP 代码移植为 SMP 代码。 2. 关于 VxWorks SMP 多核系统指的是一个系统中包含两个或两个以上的处理单元。 SMP 是多核技巧中的一 个,它的主要特点是一个 OS 运行在多个处理单元上,并且内存是共享的。另一种多核技巧 是 asymmetric multiprocessing ( AMP )系统,即多个处理单元上运行多个 OS。 (1) 技术特点 关于 CPU 与处理器的概念在很多计算机相关书籍里有所介绍。但是,在此我们仍要对这二者在 SMP 系统中的区别进行详细说明。 CPU:一个 CPU 通常使用 CPU ID 、物理 CPU 索引、逻辑 CPU 索引进行标示。一个 CPU ID 通常由系统固件和硬件决定。 物理 CPU 索引从 0 开始,系统从 CPU0 开始启动, 随 着 CPU 个数的增加,物理 CPU 索引也会增加。逻辑 CPU 索引指的是 OS 实例。例如, UP 系统中逻辑 CPU 的索引永远是 0;对于一个 4 个 CPU 的 SMP 系统而言,它的 CPU 逻辑索 引永远是 0 到 3,无论硬件系统中 CPU 的个数。 处理器 (processor):是一个包含一个 CPU 或多个 CPU 的硅晶体单元。 多处理器 (multiprocessor) :在一个独立的硬件环境中包含两个以上的处理器。 单核处理器 (uniprocessor) :一个包含了一个 CPU 的硅晶体单元。 例如: a dual-core MPC8641D 指的是一个处理器上有两个 CPU; a quad-core Broadcom 1480 指的是一个处理器上有四个 CPU。 在 SMP 系统上运行 UP 代码总会遇到问题,即使将 UP 代码进行了更新,也很难保证 代码很好的利用了 SMP 系统的特性。对于在 SMP 上运行的代码,我们分为两个级别: SMP-ready :虽然可以正常的运行在 SMP 系统上,但是并没有很充分的利用 SMP 系统 的特点,即没有利用到多核处理器的优势; SMP-optimized :不仅可以正常的运行在 SMP 系统上,而且还能很好的利用 SMP 系统 的特点,使用多个 CPU 使多个任务可以同时执行,提高系统的效率,比 UP 系统的效果更 加明显。 2)VxWorks SMP OS特点 VxWorks 单核编程( UP)与 SMP 编程在多数情况下是一样的。类似的,多数 API 在 UP 和 SMP 编程中是通用的。一些少数 UP 编程中的 API 不能在 SMP 中使用。与此同时, SMP 中的一些 API 在 UP 中使用时表现的不是 SMP 中的效果,而是默认 UP 的效果,或者 压根就不能使用(例如, task spinlock 默认表现为 task lock )。 本小节将简短介绍一下 VxWorks 的对称多处理器的一些特点: 多任务:对于传统的 UP 系统而言,处理多任务的方法是通过任务优先级对 CPU 资源 进行抢占式处理的。而 SMP 系统则改变了这种方法,它是实实在在的任务、中断的同时执 行。实现同时执行的关键是多个任务可以在不同的 CPU 上执行,当然这需要 OS 的协调控 制。对于 UP 系统中多任务所谓的同时执行,其实只不过是 CPU 的快速切换,占有 CPU 的 任务由一个快速切换到另一个。在 SMP 系统中,同时执行不是幻想而是实实在在存在的。 任务调度机制: VxWorks SMP 系统中的任务调度机制与 UP 中的类似,都是基于优先 级的。不同的是,当不同的任务运行在不同的 CPU 上时,可以实现两个任务的同时执行。 互斥:由于 SMP 系统允许任务同时运行的情况存在,因此,在 UP 系统中通过关中断、 锁任务调度等这些保护临界资源的手段在 SMP 系统中将不再适用。 这种在所有 CPU 上通过 强行关闭中断、锁任务调度的方法会影响到 SMP 系统发挥它的特点,将 SMP 系统带回到 UP 系统的模式。 VxWorks SMP 提供一套特殊的任务间、中断间同步 /互斥的方法——即 UP 中的 t

文档评论(0)

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

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

1亿VIP精品文档

相关文档