网站大量收购闲置独家精品文档,联系QQ:2885784924

天脉(ACoreOS)操作系统培训第二章:多任务调度.ppt

天脉(ACoreOS)操作系统培训第二章:多任务调度.ppt

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * 动态性:任务状态是不断变化的。 并行性:系统中同时存在多个任务,任务在宏观上是同时运行的。 异步独立性:每个任务各自按相互独立的不可预知的速度运行,走走停停。 代码:一段可执行程序。 数据:程序运行相关的数据(变量、工作空间、缓冲区等)。 * 动态性:任务状态是不断变化的。 并行性:系统中同时存在多个任务,任务在宏观上是同时运行的。 异步独立性:每个任务各自按相互独立的不可预知的速度运行,走走停停。 代码:一段可执行程序。 数据:程序运行相关的数据(变量、工作空间、缓冲区等)。 * * * * * * * 等待资源:等待信息量、消息队列等资源(详见任务间通信与同步) 阻塞态(延时):系统对等待的时间任务,维护一个公有时间链表 挂起:被挂起的任务没有采用公用的队列进行管理 任务从就绪态转变为运行态时,任务仍然处于就绪态的队列中,不执行出队列操作 * * * * * * Rescheduling occurs if The currently running task pends or delays. A task of higher priority becomes ready. When a task of higher priority takes the CPU away from the current task, it is preempting that running task. If task B never blocks or pends, then task C will never run. * * 任务A至任务D具有相同的任务优先级; 时间片轮转调度使得任务A至任务D平等地分配CPU资源。 * * * 在UNIX和NT,每个进程拥有属于进程的data和bss空间,但各个进程之间共享text,所有进程使用相同的代码空间; 在ACoreOS中,当一个任务访问某模块的text、data、bss段空间时,该任务将和其他访问该模块的任务共享相同的存储空间。 所有任务共用相同的地址空间,具有如下优缺点: 使得任务间通信容易、快速; 任务上下文切换更快速(不需要保存和恢复虚拟地址空间) 当一个任务运行出现故障时,可能影响其他的任务运行。 * 上图说明了ACoreOS多任务工作机制: 同一个CPU内,任务通过队列方式传递消息,用于任务间的通信 不同CPU上的任务,通过NET传递信息,实现不同CPU上的任务之间的通信 信号量机制用于保护任务之间的共享数据 定时器和其他的中断用来触发任务的执行 I/O系统机制,用于实现系统和外部设备之间的数据通信 * * * * * * * * * 实时性考虑 能够控制多个外部组件 多任务机制保证系统管理多个任务 每个任务可以分配多个独立的功能服务 任务通过任务内通信的方式彼此之间相互合作 高速运行 任务为轻量级调度单位 快速的任务切换机制降低系统负载 确定性操作 抢占式优先级调度保证高优先级任务得到快速运行 * 任务管理 任务创建、删除 任务控制 重启动 挂起/解挂 延迟 任务变量、任务挂钩 任务信息 * ACoreOS任务管理相关的接口包括两种类型:ACoreOS-API和VxWorks兼容包任务接口。本编程手册详细介绍ACoreOS-API相关管理接口。VxWorks兼容包接口和VxWorks状态基本一致,请参考VxWorks编程手册和程序员手册。 提纲 引言 任务属性 任务控制 * 任务属性 任务创建 任务名字和标识符 任务优先级 任务栈 任务属性 任务删除 删除安全 资源回收 * 概述 ACoreOS任务创建和操作的服务包括:ACoreOS-API和VxWorks兼容包任务接口 ACoreOS任务 任务栈(用于存储自动变量和程序参数) 任务控制块(用于OS操作和控制任务) 注意,不能够混淆可执行的代码和任务两个概念 代码是在任务运行前,就被下载目标机 若干任务可以执行相同的代码(如,printf()) ACoreOS任务类似于进程模型系统中的线程(各个系统对线程的具体实现可能不太一致) * 创建任务 * taskSpawn ACoreOs_task_create foo() { … } Stack TCB entry 创建任务 任务创建,操作系统完成以下工作: 为任务指定栈空间(ACoreOS-API)或系统分配栈空间(VxWorks兼容接口),分配的栈空间应为连续空间 初始化栈(VxWorks兼容接口) 初始化任务控制块(TCB)(如,存放入口指针在TCB中,初始化栈指针、保存任务创建参数) 将任务放置到就绪队列(对于ACo

文档评论(0)

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

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

1亿VIP精品文档

相关文档