发明名称 基于片上多处理器的线程调度实现方法
摘要 本发明属于嵌入式操作系统技术领域,具体涉及一种基于片上多处理器的线程调度实现方法。本发明以三维就绪位图为基础,所有处理器共用此就绪位图,每一个就绪线程在此位图上标记,提出操作系统的基于此位图的线程分配算法,操作系统运行在一个处理器核上。本发明通过三维位图、注册表、判决表等的使用大大提高系统的实时性能,同时分配多线程于多个处理器核上并行处理,提高了整体执行速度。
申请公布号 CN101673223B 申请公布日期 2012.03.21
申请号 CN200910197530.9 申请日期 2009.10.22
申请人 同济大学 发明人 凌毅;陈芸
分类号 G06F9/50(2006.01)I 主分类号 G06F9/50(2006.01)I
代理机构 上海正旦专利代理有限公司 31200 代理人 张磊
主权项 一种基于片上多处理器的线程调度实现方法,其特征在于包括构建基于三维位图的多线程就绪队列、实时内核控制、线程分配,具体步骤如下:(1)构建基于三维位图的多线程就绪队列设单芯片上有N个处理器核,把线程按M个优先级标记,在同一个优先级下有N个相同优先级的线程,每个相同优先级的线程按创建进入就绪态的先后标记,即可同时创建M*N个线程,该线程队列就绪时注册在一张三维的就绪位图中;位图中的每一位代表一个线程的状态,为1时表示就绪态,0表示非就绪态;(2)实时内核控制通过设置注册表参数实时记录当前已注册的进程,同时为每个线程分配各自的线程栈记录线程的上下文,设置优先级位便于线程恢复就绪态;在采用优先级判决表快速找出最高优先级的同时,利用注册表控制查找当前需要调度运行N个线程的循环次数;(3)线程分配在片上多处理器的一个处理器核上运行操作系统,用于管理线程的状态和分配工作;在线程控制块结构体中设置成员变量标记该线程是否被调度和被调度的CPU号,采用位图副本便于修改记录线程的调度情况;用线程控制块指针唯一标识各个线程,在找出最高优先级的N个要调度的线程后,判断各个CPU正在运行的线程,相同的线程继续运行,不同的线程分配在剩余的CPU上运行,避免线程的多余切换,各个CPU主动调用切换函数完成此工作。
地址 200092 上海市四平路1239号