一种众核系统的任务管理方法和装置制造方法及图纸

技术编号:10810858 阅读:87 留言:0更新日期:2014-12-24 16:20
本发明专利技术提供一种众核系统的任务管理方法和装置,涉及计算机领域,能够在众核系统中通过任务管理装置进行系统任务的调度管理,提高了众核系统进程管理效率。其方法为:当需要将进程加入到任务链表中,则将该进程的进程描述符指针添加到该进程对应的任务描述符项中,并将该任务描述符项添加到任务链表中;若需要删除进程,则查找到该进程对应的任务描述符项并将该任务描述符项从任务链表中移除;当处理器核需要新任务运行时,则将可用的优先级最高的优先级索引寄存器从该优先级索引寄存器队列中移除。本发明专利技术的实施例用于通过任务管理装置进行系统任务的调度管理。

【技术实现步骤摘要】
【专利摘要】本专利技术提供一种众核系统的任务管理方法和装置,涉及计算机领域,能够在众核系统中通过任务管理装置进行系统任务的调度管理,提高了众核系统进程管理效率。其方法为:当需要将进程加入到任务链表中,则将该进程的进程描述符指针添加到该进程对应的任务描述符项中,并将该任务描述符项添加到任务链表中;若需要删除进程,则查找到该进程对应的任务描述符项并将该任务描述符项从任务链表中移除;当处理器核需要新任务运行时,则将可用的优先级最高的优先级索引寄存器从该优先级索引寄存器队列中移除。本专利技术的实施例用于通过任务管理装置进行系统任务的调度管理。【专利说明】—种众核系统的任务管理方法和装置
本专利技术涉及计算机领域,尤其涉及一种众核系统的任务管理方法和装置。
技术介绍
在未来的处理器制造工艺中,集成在单芯片上的处理器核数会越来越多,这种集成很多个处理器核的处理器一般被称为众核处理器(Many Core),若在众核处理器环境下的操作系统的任务调度仍采用单纯的操作系统软件任务调度方法,则任务调度本身的效率瓶颈会成为整个系统的瓶颈;如果完全采用硬件调度方法,则会带来很大的硬件系统复杂度,进而增加了硬件设计和验证的难度,并且可能导致该系统同现有的系统完全不兼容的问题。 在现有技术中,以Linux系统为例,在单核的处理器环境下,系统任务是由runqueue (运行队列)结构进行管理的,每个CPU含有两个runqueue结构,即activerunqueue (活动运行队列)和expired runqueue (过期运行队列),每个runqueue结构中含有一个140项优先级的就绪任务队列,处于就绪状态的任务将被插入到active runqueue对应的优先级的队列中,每个任务有一个时间片来决定其可以执行的时间长短。当一个任务的执行时间超过时间片长度,这个任务就会被挂起并移动到expired runqueue里对应的优先级队列中,在移动的过程中其时间片长度以及优先级会被重新计算。如果目前activerunqueue中的某个优先级队列为空,则将active runqueue和expired runqueue中对应的优先级队列调换位置,即expired runqueue中对应的优先级队列中的任务就被移动到active runqueue中。每当需要任务调度时,Linux系统就会调用scheduler O函数遍历对应cpu的active runqueue,并获取其处于最高优先级的就绪任务进行运行。 在众核处理器中,各个处理器都拥有自己的runqueue。当一个任务被创建的时候,它就会被插入在某一个处理器的runqueue上。这样会造成各个处理器之间的任务不平衡,因此有必要每隔一段时间就对所有处理器进行一次负载均衡(load balance),以使得各个处理器之间的任务负载保持平衡。 因此,专利技术人发现在现有技术中,众核处理器在实现上述的任务调度过程中,至少存在如下问题: 负载均衡的算法很复杂,并且其执行时间会随着处理器数量的增加而增加,在未来的众核处理器中,runqueue进行负载均衡所需要的时间会降低系统的运行效率,并且每当有cpu调用scheduler O函数的时候,系统就会给runqueue加锁,从而使得各处理器需要等待runqueue资源。因此,系统对runqueue资源的频繁等待同样会降低系统进程管理效率。
技术实现思路
本专利技术的实施例提供一种众核系统的任务管理方法和装置,提高了众核系统中的进程管理效率。 为达到上述目的,本专利技术的实施例采用如下技术方案: 第一方面,提供一种众核系统的任务管理方法,所述方法包括: 根据第一任务队列索引寄存器中头索引的值获取对应的第一任务描述符项,所述第一任务描述符项对应第一索引号,所述第一索引号与所述头索引的值相对应,所述头索引表示所述第一任务队列起始的第一进程的所述第一任务描述符项对应的所述第一索引号; 根据所述第一任务描述符项中的第一进程描述符指针获取所述第一进程对应的第一进程描述符,所述第一进程描述符指针指向所述第一进程描述符所在的内存地址; 根据所述第一任务描述符项中的下一个任务索引的值获取对应的第二进程描述符项,根据所述第二任务描述符项中的第二进程描述符指针获取所述第二进程对应的第二进程描述符,直到获取所述第一任务队列索引寄存器中尾索引的值对应的第三进程描述符为止,所述第二任务描述符项对应第二索引号,所述第二索引号与所述第一任务描述符项中的下一个任务索引的值相对应,所述尾索引表示所述第一任务队列末尾的所述第三进程的第三任务描述符项对应的第三索引号。 在第一种可能的实现方式中,结合第一方面,若需要将第四进程插入到所述第四进程对应的任务队列中,所述方法还包括: 获取所述第四进程的第四进程描述符指针和第四进程优先级; 获取空队列索引寄存器中的头索引值对应的第四任务描述符项,将所述第四任务描述符项中的进程描述符指针的值修改为所述第四进程描述符指针的值,所述空队列索引寄存器用以记录处于空闲状态的任务队列; 将所述空队列索引寄存器的头索引值改为所述第四任务描述符项中的下一个任务索引的值; 将所述第四任务描述符项中的下一个任务索引的值改为与第四进程优先级对应的第四优先级队列索引寄存器中的头索引的值; 将所述第四优先级队列索引寄存器中的头索引的值改为所述第四任务描述符项对应的索引号。 在第二种可能的实现方式中,结合第一方面,若需要将第五进程从所述第五进程对应的任务队列中删除,所述方法还包括: 获取所述第五进程的第五进程描述符指针和第五进程优先级; 从与第五进程优先级对应的第五优先级队列索引寄存器中的头索引的值对应的任务描述符项遍历整个所述第五优先级队列,获取与所述第五进程对应的第五任务描述符项; 将所述第五进程从所述第五优先级队列索引寄存器中移除。 在第三种可能的实现方式中,结合第一方面的第二种可能的实现方式,所述将所述第五进程从所述第五优先级队列索引寄存器中移除包括: 若所述第五优先级队列索引寄存器中的头索引值或尾索引值与所述第五进程对应的所述第五任务描述符项的索引号相对应,则将所述第五优先级队列索引寄存器中的头索引值或尾索引值修改为与所述第五进程对应的所述第五任务描述符项中的下一个任务索引的值; 若所述第五优先级队列索引寄存器中的头索引值或尾索引值与所述第五进程对应的所述第五任务描述符项的索引号不对应,则将所述第五任务描述符项中的下一个任务索引的值改为所述空队列索引寄存器中的头索引的值,并将所述空队列索引寄存器中的头索引的值改为所述第五任务描述符项对应的索引号,其中,若所述空队列索引寄存器的尾索引的值表示为空时,则将所述空队列索引寄存器的尾索引的值改为所述第五任务描述符项对应的索引号。 在第四种可能的实现方式中,结合第一方面,当处理器需要运行第六进程时,所述方法还包括: 在所有优先级索引寄存器中获取优先级最高的第六优先级索引寄存器且所述第六优先级索引寄存器中的头索引值不表示为空; 获取所述第六优先级索引寄存器的头索引的值对应的第六任务描述符项; 将所述第六优先级索引寄存器的头索引值改为所述第六任务描述符项中的下一本文档来自技高网
...
一种众核系统的任务管理方法和装置

【技术保护点】
一种众核系统的任务管理方法,其特征在于,包括:根据第一任务队列索引寄存器中头索引的值获取对应的第一任务描述符项,所述第一任务描述符项对应第一索引号,所述第一索引号与所述头索引的值相对应,所述头索引表示所述第一任务队列起始的第一进程的所述第一任务描述符项对应的所述第一索引号;根据所述第一任务描述符项中的第一进程描述符指针获取所述第一进程对应的第一进程描述符,所述第一进程描述符指针指向所述第一进程描述符所在的内存地址;根据所述第一任务描述符项中的下一个任务索引的值获取对应的第二进程描述符项,根据所述第二任务描述符项中的第二进程描述符指针获取所述第二进程对应的第二进程描述符,直到获取所述第一任务队列索引寄存器中尾索引的值对应的第三进程描述符为止,所述第二任务描述符项对应第二索引号,所述第二索引号与所述第一任务描述符项中的下一个任务索引的值相对应,所述尾索引表示所述第一任务队列末尾的所述第三进程的第三任务描述符项对应的第三索引号。

【技术特征摘要】

【专利技术属性】
技术研发人员:张轮凯范东睿张浩叶笑春
申请(专利权)人:华为技术有限公司中国科学院计算技术研究所
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1