主权项 |
一种基于片上多处理器的线程调度实现方法,其特征在于包括构建基于三维位图的多线程就绪队列、实时内核控制、线程分配,具体步骤如下:(1)构建基于三维位图的多线程就绪队列设单芯片上有N个处理器核,把线程按M个优先级标记,在同一个优先级下有N个相同优先级的线程,每个相同优先级的线程按创建进入就绪态的先后标记,即可同时创建M*N个线程,该线程队列就绪时注册在一张三维的就绪位图中;位图中的每一位代表一个线程的状态,为1时表示就绪态,0表示非就绪态;(2)实时内核控制通过设置注册表参数实时记录当前已注册的进程,同时为每个线程分配各自的线程栈记录线程的上下文,设置优先级位便于线程恢复就绪态;在采用优先级判决表快速找出最高优先级的同时,利用注册表控制查找当前需要调度运行N个线程的循环次数;(3)线程分配在片上多处理器的一个处理器核上运行操作系统,用于管理线程的状态和分配工作;在线程控制块结构体中设置成员变量标记该线程是否被调度和被调度的CPU号,采用位图副本便于修改记录线程的调度情况;用线程控制块指针唯一标识各个线程,在找出最高优先级的N个要调度的线程后,判断各个CPU正在运行的线程,相同的线程继续运行,不同的线程分配在剩余的CPU上运行,避免线程的多余切换,各个CPU主动调用切换函数完成此工作。 |