Page 94 - 《软件学报》2021年第6期
P. 94
1668 Journal of Software 软件学报 Vol.32, No.6, June 2021
Resource,Awaiting Return,Awaiting Reentry 等 5 个状态,为了表示方便,本文不考虑 Awaiting Return, Awaiting
Reentry 这两种状态,因为这两个状态与系统资源约束关系无关.因此,简化后的 AADL 线程执行模型可以用 3
个状态——Ready 状态、Running 状态和 Awaiting 状态以及状态之间的转移描述,如图 1 所示.其中,c 为线程在
处理器上执行的时间累积,w 为线程由于资源受限阻塞的时间累积.∂c 表示该线程是否在处理器上处于计算状
态并进行时间累积的标志量,当∂c=1 时,表示该线程处于执行态,并进行时间累积;否则,该线程不处于执行态,不
需要时间累积.同样地,需要定义由于资源阻塞而导致的时间累积的标志量∂w,当∂w=1 时,线程处于阻塞状态,并
进行时间累积;否则,线程不处于阻塞态,时间不进行累计.3 个状态间存在 4 种变迁情况:(1) Ready 状态下获得处
理器时间,进入 Running 状态;(2) Running 状态下发生 Cache Miss 后会导致处理器阻塞,线程进入 Awaiting
Resource 状态;(3) Awaiting Resource 状态下,当该线程得到执行所需的资源后,线程进入 Ready 状态;
(4) Running 状态下的线程被更高优先级的线程抢占以后进入 Ready 状态.
Ready resume Running
c=0 c=1,w=0
w=0 preempt C<ET
unblock Block due to
cache miss
Awaiting
resorce
w=1
c=0,w<CRPD
Fig.1 Simplified timed automata model of AADL thread component
图 1 简化的 AADL 线程时间自动机模型
复杂嵌入式系统的调度往往采用分区调度的方式对系统构件及其资源进行运行管理.例如在机载嵌入式
系统中,就采用集成化、模块化航空电子体系结构 IMA,这种软件体系结构的嵌入式系统采用两级调度模式管
理任务的运行:分区间调度和分区内调度.AADL 定义了一个附录模型 ARINC653 来支持对分区建模,分区间调
度采用时间片轮转调度策略,因此,系统运行过程中还要考虑分区之间切换带来的延迟.根据 AADL ARINC653
附录模型的操作语义,我们也可以用时间自动机来描述带分区的复杂系统任务调度行为,如图 2 所示.
Pended wakeupPartition
分区 Partition_duration=0
Ready
Partition_duration=Partition_capacity
激活 Partition_election!
Partition_duration<Partition_capacity
分区内线程 Dispatch
Ready resume Running
c=0 c=1,w=0
w=0 preempt C<ET
block due to
unblock cache miss
Awaiting
resorce
w=1
c=0,W<CRPD
Fig.2 Timed automata model of ARINC653 partitioned system
图 2 ARINC653 分区系统时间自动机模型