我们把NGSA系统线程的执行态分为三个级别:中断态线程、核心态线程、用户态线程。
- 中断态线程:具有最高的优先级,指在Nucleus的LISR中的运行序列
- 核心态线程(PORT_TASK):无时间片,除非被抢占,否则会一直运行直到结束。在线程每次执行中不会被切换,不会被其它核心态和用户态线程打断。核心态线程只有主动让出处理时间,其它核心态线程和用户态线程才能运行。核心态线程可被中断态线程打断。
- 用户态线程:允许线程之间有时间片轮转,时间片结束,处理时间就被切换到其它用户态线程或核心态线程。用户态线程可被中断态和核心态线程打断。用户态线程分为两个优先级:
① 高优先级用户态线程(HAPP_TASK_TS):相当于带时间片的核心态,会被时间中断调度,也可能被抢占,高优先级用户态线程具有和核心态相同的优先级,这使得高优先级用户态线程可以和核心态线程竞争处理时间。
② 一般用户态线程(APP_TASK_TS):带时间片,会被时间中断调度,也会被抢占,它们会被高优先级用户态线程和核心态线程打断。