[发明专利]基于片上多处理器的线程调度实现方法无效
申请号: | 200910197530.9 | 申请日: | 2009-10-22 |
公开(公告)号: | CN101673223A | 公开(公告)日: | 2010-03-17 |
发明(设计)人: | 凌毅;陈芸 | 申请(专利权)人: | 同济大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 上海正旦专利代理有限公司 | 代理人: | 张 磊 |
地址: | 20009*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 片上多 处理器 线程 调度 实现 方法 | ||
技术领域
本发明属于嵌入式操作系统技术领域,具体涉及一种基于片上多处理器的线程调度实现方法。
背景技术
处理器的性能提升主要依靠提高其主频,然而随着主频的不断提升,处理器的晶体管数目也不断增大,功耗问题逐渐显现,显然工艺的提升可以解决部分功耗问题,但工艺提升本身就是一个耗资巨大的工程。由于多种因素的合力作用下,人们目前几乎已不再具备制造更大更快的单核处理器的能力。现在的处理器制造厂商开始采用一种新的微处理器设计模式:片上多处理器(chip multiprocesseor,CMP)。片上多处理器就是集成到一个处理器芯片上,作为一个整体工作的一组单核处理器,此时几个较小的处理器内核填满了本来被单个大型单核处理器占用的芯片面积。
在程序员看来,CMP系统中的多核处理器内核是不同的实体,因此需要将传统的冯·诺依曼计算模型替换为全新的并行编程模型(parallel programming model)。实用这种模型,程序员必须将应用程序划分为多个线程,每个线程是一个“半”独立的实体,多个线程可在CMP系统中不同的处理器内核上并行执行。此时如何合理的调度线程在各处理器上运行成为一个重要问题。传统的调度算法有很多,例如:先来先服务,最短剩余时间调度,优先级调度,轮转调度等。由于多核系统的兴起时间不常,传统的实时操作系统大多不支持片上多处理器,但随着片上多处理器的应用日益广泛,一些商用的实时操作系统也开始对片上多处理器的支持。各厂商支持片上多处理器的方案各有不同,实现方式大体可分为以下三种:
1.基于同步原语扩展的实时操作系统。这一方案就是在每个处理器上运行一个独立的实时操作系统,然后通过扩展的组件库来提供同步原语实现各处理器的通信。如风河公司的VxWorks。
2.传统的SMP结构的实时操作系统。这是传统的SMP结构,即一个实时操作系统调度各线程到各CPU上运行,由Linux发展来的操作系统一般采用这种方案。
3.基于微内核和分布式技术的实时操作系统。加拿大QNX公司的QNX实时操作系统就采用这一方案。
以上三种方法实现多线程调度修改原操作系统代码庞大,线程调度效率以及实时性不高,不太适用于硬实时系统。
发明内容
本发明的目的在于提出一种基于片上多处理器的线程调度实现方法。
本发明提出的基于片上多处理器的线程调度实现方法,包括构建基于三维位图的多线程就绪队列、实时内核控制、线程分配,具体步骤如下:
(1)构建基于三维位图的多线程就绪队列
假设单芯片上有N个处理器核,把线程按M个优先级标记,在同一个优先级下可以有N个相同优先级的线程,每个相同优先级的线程按创建进入就绪态的先后标记,这样可以同时创建M*N个线程,让这样一个线程队列就绪时注册在一张三维的就绪位图中,位图中的每一位代表一个线程的状态,为1时表示就绪态,0表示非就绪态;
(2)实时内核控制
通过设置注册表参数实时记录当前已注册的进程,同时为每个线程分配各自的线程栈记录线程的context(上下文),设置优先级位便于线程恢复就绪态,在采用优先级判决表中找出最高优先级的同时,利用注册表控制查找当前需要调度运行N个线程的循环次数;
(3)线程分配
在片上多处理器的一个处理器核上运行操作系统,用于管理线程的状态和分配工作。在线程控制块结构体中设置成员变量标记该线程是否被调度和被调度的CPU号,采用位图副本便于修改记录线程的调度情况。用线程控制块指针唯一标识各个线程,在找出最高优先级的N个要调度的线程后,判断各个CPU正在运行的线程,相同的继续运行,不同的线程分配在剩余的CPU上运行,避免线程的多余切换,各个CPU主动调用切换函数完成此工作。
本发明具有的有益效果是:本发明是一种基于片上多处理器的线程调度实现方法,合理有效的实现多处理器上的线程调度,同时具有很好的实时性能。
附图说明
图1是8个处理器核64个优先级的线程就绪位图示意图。
图2是本发明的实施过程示意图。
图3是操作系统启动完毕后的数据结构示意图。
具体实施方式
以下结合附图说明本发明的方法。
实施例1:
基于片上多处理器的线程调度实现方法,包括以下过程:
1)线程控制块的定义。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于同济大学,未经同济大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910197530.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:在煎锅内炸制点心的自动化机组
- 下一篇:旋光性α氨基乙缩醛外消旋化的方法