SYS/BIOS

SYS/BIOS

SYS/BIOS: Scalable real-time kernel require XDCtools

XDCtools Modules: system services/memory management/diagnostics/synchronization

Threads: Hwi(timer)/Swi(clock)/Task/Idle

SYS/BIOS任务线程有0-31个优先级(默认0-15,优先级0被空闲线程使用,任务最低优先级为1),但是在内存允许的情况下可以不限制的创建任务数量。SYS/BIOS有独立的内存堆栈,可以为等待某一事件的发生而被挂起,任务会被其他更高优先级的线程打断。数量和状态可以在程序执行时动态的更改,优先级也可以动态的修改。

线程是一组在存储在存储器中的代码,一旦寄存器被正确初始化,CPU就会执行这些代码。线程可以是任何类型的,SYS/BIOS定义了四种线程类型:

硬件中断(HWI),软件中断(SWI),任务(TASK),空闲(Idle)。

硬件中断:时间要求最为严格,要就实时响应的任务:一般为外设和内部的实时时间和定时器模块(定时器模块是通过硬件中断实现的,使用硬件的定时器)。

软件中断:对时间要求较为低的一种中断线程。(时钟模块是基于软件中断模块的定时器模块)

任务:CPU执行的主要线程,和软件中断的区别,可以被阻塞(可以等待)

空闲:优先级最低

各线程有隐式和显示的优先级:隐式优先级是由线程的类型决定的,显示优先级由软件的编程者决定,并且允许抢占的:就是高优先级的线程能够抢线程占低优先级的线程,优先执行,这种高于优先级的调度管理机制保证了最高优先级的线程能在第一时间被执行。

空闲线程是一种非实时性的线程,并且仅当没有任何其它线程(HWI/SWI/TASK运行时才会运行),所有空闲线程运行在同一个线程,而且可以被其它线程随时抢占,默认使用任务堆栈,如果任务线程被禁用使用系统堆栈,一个接一个运行,每一个空闲线程函数都会从开始执行到结束。所有函数执行完后再从第一个函数执行,周而复始。
SYS/BIOS