大连仟亿科技
客服中心
  • 电话
  • 电话咨询:0411-39943997
  • 手机
  • 手机咨询:15840979770
    手机咨询:13889672791
网络营销 >更多
您现在的位置:仟亿科技 > 新闻中心 > 常见问题

RTOS任务状态及转换

作者:billionnet 发布于:2013/2/4 16:44:55 点击量:

亢多任务系统巾,任务要参与资源竞争,只合存所需资源都得到满足的情况F任务才能 得到执行c pI此,仟务拥合的资源情况是不断变化的,导致仟务状态也表现出不断变化的特 性。无沦是系统任务还是应用仟务,在仟何时候.每个任务存衣着包括就绪(R cady)、运行 (Run川,g)和阻塞(僵10cked)在内的很少几个状憨。随着嵌入式系统的运行,每个仟务将根 据简单的音限状念自动机(t蝎M,门M?t e出n魔Macl、i,lc)逻辑.从一个状态迁移到另一个状 态。图3.1PU举』”改型的任务执行状态的r5M.并简要描述f状态辽移。

 RTOS任务状态及转换

 

又沦内核怎样实现 个仟务的FsM,都必须维护好运行系统小所合任务的当前状态。 当执行的任务对内核进行调用时,内核凋度器首先确定哪个仔务必须改变状态,接着实施这

/l某些情况F,内核改变某些任务的状态。佃小做上F文切换,出为最高优先权的状态 未受到影响。然而在只外 些情况F.这些状态改坐会导致上下文切换,因为前面最高优先 权的任务要么被阻塞,要么不冉是最高优先权的仟务丁。半此过程发午时,的向运行着的仔 务进入阻塞或者就绪态,新的最高优先仅任务开姑执行。

 

    虽然内核nJ以定义不问的仟务状态织,但  般来讲.在RI、()5内核或典1g的抢占式调
度内核鲁,至少府包括以F 3个主要状态:
    ·就绪态    仟务准备远行,们是还个能运行.因为一‘个更高优先权的任务在执行。
    ·阻塞态    已经请求一个还不能用的资源;已经请求等待某些事件的发生;或自身
    要延迟  段时间。

在Tron的I。—Kt。rne g内核中,对任务 状念做了更细致的划分,共分为4种:执 行、就绪、阻塞、睡眠。为了亢状态友不及 其转换[:更为完整,还添加了一个爬拟状 态 一“不行企”态,塌以说明该仟务还没 有被分配任务控制块(TCH)或足T(iB已 经被系统收回。另外,还根据任务进入阻 塞态的原因的个同对阻塞态做了进一步的 划分,分为3个于状念:等待、扛起、等待 挂起。T—x crncl任务状态间的转换如凶 2.2所3i。

各个状态的意义如下; (1)运ff态 处于这个状态的任务被分配c13u,得 到执行。当像巾断这样没有[‘F义的任务 取得执行权后,如果没有特别指定,之前处 丁运行念的任务将仍然保持原合的状以

(2)就绪态 处于此状态的仟务已经具备了运行的条件 放在就绪队列,绊待被调度。 (3)阻塞态 但是N为有南优光级的任务在运行 当一个任务执行的必要条件没合完今满足时。它就进入阻塞态,等待特定的条件被满 足。仟务进入此状态店,包括程序指5f和卉存器在内的运行环境将被保存,等到运行时再恢 复。阻塞态又可以进一丛分为3种子状态。①等待。省任务调用了一个系统调用,此系统 调用阻止了该任务的继续运行.任务便进入等待态。⑦拌起。 ‘个任务强行阻塞只外一个 仟务:②等待—拄起。这是1而两种情况的综合,一个仟务先是将自己阻塞,然后被其他任 务挂起。

(4)睬眠态 当—个仟务没柯运行或者已经运行完毕,此仟务就进入睡眠态。此时,仟务的上下文信 息将不会被保存,当一个任务从睡顺屈被激活,它将会从起始地址仆姑执行,心于已经投合 了上下文,除非之前已经指定,否则此时的寄存器内容是不可靠的。

这是‘个虚拟的状念,此时任务没有在系统’r注册,或者还没毛创建,或者已经被删除。 对于T K e rncl内核,所有仟务在刚创建财都默认进人睡眠态。任务启动就意味着仟务 从睡眼态进入就绪态。当进入就绪态的任务的优光级高丁当前运行任务的优先级时,就会 发生任务调度,该仟务将进入运行态,而本来处于运行态的仟分则阅为被枪lk,凹列就绪态。 无论仟务足乔就纪念还是杠运行态。都pJ以进入阻塞念,只是不向的原状态将进入不同 的pR塞广状杰。任务队运行态进入的是等待忠,而从就绪态进入的足挂赵态。之所以仑这 佯的区别。是kI为仆’I’Ker爪·ItI,,刘等待印让起是有明确区分的。绊待是由丁白己原阅前 进人的prI塞状态,足——ffI主动的行为;而蚌赵则是Ki丁具仙任务执行系统调/u而使具址人的 阻寒状态,是—种被动的行为。 个仟并不能处别的任务进入等待态.山不能够将自己挂 起。当 个任务要求让起另一个已经处于等待屈的怔洲十,那个披挂起的仟务就进人了等 待—扛起念。

宅一个处于RL塞屈的任务等待释放财,任务将从等待态进入就绪念,或者从等待— 处赵屈进入拌赵态;而肖任务拌起恢复叫.点味着任务将从挂想念进入扰绪态,或从等 待—拌赵态址入等待态c如此明确、细致地划分仟务的状态,清楚地K分了对调用者8 己广:少影响肋系统调/g相对其他仟务产生影响的系统调用, 力面可以使任务状态的 转换非常清楚,系统调用贝容易理解;另 方面,内于很多系统购阻塞屈的重叠队导致 状态66管理比较复杂,难以处解c布T K?rnel小.LU于处于守情态的仟务不能执行系 统调川,冈此不向的等待态永远不可能重叠,仟务只可能因为唯—的原冈而等待。而 内其他仟秀所引起的阻塞念也只村 种一——扯赵,系统qJ以将多次挂起的状态处理为 销套,从W使仟务状态变得情晰。 注意:在某些商用只T()5内核(如VxWor比内枝3中,定义了其他的、很多初分的状态, 如挂起(入M队n小c1)、总技(I’c11d(“c1)和延迟(DelHyd)。这种情况下,悬挂和延迟实际上是阻 塞态的子状态;一个悬挂任务在等待必须被释放的脊源;一个延迟的任务在等待时间延迟的 结束。桂起状态用做调试目的。



分享到:


评论加载中...
内容:
评论者: 验证码:
  

Copyright@ 2011-2017 版权所有:大连仟亿科技有限公司 辽ICP备11013762-1号   google网站地图   百度网站地图   网站地图

公司地址:大连市沙河口区中山路692号辰熙星海国际2215 客服电话:0411-39943997 QQ:2088827823 42286563

法律声明:未经许可,任何模仿本站模板、转载本站内容等行为者,本站保留追究其法律责任的权利! 隐私权政策声明