运用UML分析设计占先式实时内核
占先式实时内核的功能需求是:
*支持外部异步事件中断、定时器中断、消息传递及任务消息到达时的调度;
*支持基于任务优先级占先调度,多种实时调度策略;
*任务的创建、运行、悬挂、唤醒与撤销;
*定时器时钟管理,任务延时处理;
*共享资源管理,保证任务的同步运行。
由于占先式实时内核主要体现在软件设计方面,所以在此省略了构件图和配置图。
2.2 用例图
图1为用例图,列出了该系统最基本的功能及功能描述,包括一系列用例和从系统中抽象出来的执行者。
(1)角色说明
*任务。是嵌入式系统中用户想要实现的具体功能,是一个线程。这些功能包括:输入、输出、数据处理、通信等。
*中断。用来通知占先式实时内核有一个事件发生,包括内部非屏蔽中断、定时器中断与外部异步时间中断。
*系统时钟。用来创建中先式实时核所需要时候节拍。
(2)使用案例说明
*中断响应。占先式实时内核通过对异步事件的处理,获得任务运行所需要的信号与数据,使任务得以正常运行。
*中断级调度。中断处理使得需要该中断信号的任务就绪,调度程序判断该任务是否为当前任务就绪表中最高优先级任务,进而决定该任务否立即进行。
*任务就绪。这里指的不是由于中断所引起的用户任务就绪,有两种方式:一个是,用户希望应用系统完成某个任务功能时,需要通知占先式实时内核,要求它创建该任务;另一个是,当当前运行的任务唤醒另一个任务时,使后者就绪。
*任务级调度。任务完成创建或被别的任务唤醒之后,调度程序判断该任务是否为当前任务就绪表中最高优先级任务,进而决定该任务是否立即进行。
*任务运行。当任务是当前任务就绪表中优先级最高的任务时运行该任务。
2.3 类图
图2为类图,包括一组由所讨论系统中抽象出的类和它们之间的关系。
类中断的属性中,中断类型包括非屏蔽中断、外部中断与定时器中断,以便占先式实时同核进行相应的中断处理;中断向量号与单片机的中断向量号相匹配;中断嵌套状态表明当前中断是处于哪一层的中断嵌套中。类中断有一个操作:中断处理,获取外部事件的信号和数据,并使上应的任务就绪,然后判断中断嵌套数是否为0。若不为零,执行别的中断响应;如果为零,选择相应的调度程序进行调度。
类调度的属性中,调度策略用于选择一种实时调度方案;调度类型包括中断调度与任务级调度;任务就绪表与任务悬挂表是调度时所需要数据结构。类调度有一个操作:调度。当当前任务是任务就绪表中优先级最高的任务时,当前任务继续运行;如不是,将当前任务运行时的状态与数据压入该任务堆栈,挂起该任务,然后调出最高级优先权任务的任务堆栈数据与状态,使最高级任务运行。
类任务的属性中,任务ID表明是哪一个任务;任务优先级说明任务在所有任务中的运行优先权;任务状态说明该任务在占先式实时内核中是处在何种状态;任务堆栈保存任务切换时该任务的状态与数据。类任务有四个操作:建立任务,在占先式实时内核中确认该任务;挂起任务,是任务由就绪状态转为挂起状态;恢复任务,是任务由
《运用UML分析设计占先式实时内核(第2页)》