主要内容

什么是任务执行?

任务是软件应用程序中的一个执行单元或工作单元。通常,嵌入式处理器中的任务执行由操作系统(OS)管理。当部署到嵌入式处理器时,任务对应于OS线程。SoC Blockset™如下定义了执行生命周期和与OS线程的关系。

任务执行生命周期

任务的生命周期可以分为五种状态:

  • 创建—当应用启动时,系统创建所有的任务,并立即将其移动到等待状态。

  • 等待—任务等待相关的触发信号,如OS定时器或I/O设备。接收到触发信号后,任务开始运行。如果任务的优先级最高,则进入运行状态。否则,任务将继续等待,直到它成为优先级最高的触发任务。

  • 运行—执行任务的代码。当代码完成执行时,任务立即转移到等待状态。如果出现高优先级任务的触发器,则正在运行的任务将转移到抢占状态。

  • 抢占—任务被抢占,等待运行。任务基于任务优先级和任务输入顺序的组合运行抢占状态。假设所有其他任务的优先级相同准备好简历状态,任务运行基于先进先出(FIFO)的顺序。

  • 终止—当应用程序结束时,任务终止。

该图显示了使用OS的应用程序的任务执行生命周期的状态图。为简单起见,不会显示终止状态,但是任务可以从任何其他状态到达终止状态。

任务和线程

任务是算法中的一个概念性工作单元。在设备上执行的应用程序中,任务是在操作系统(OS)的线程中执行的一段代码。OS线程决定任务的执行状态。在SoC Blockset中,一个任务专门涉及到Simulink的部分金宝app®包含在速率或函数调用子系统中的模型。这个子系统的触发信号来自于任务管理器块。当部署到硬件时,OS线程使用任务属性。线程执行子系统生成的代码。从概念上讲,一个任务在模拟中相当于a线程在生成的代码。

另请参阅

相关的话题

外部网站