面向异构多核体系的进程调度方法

文档序号:6573497阅读:511来源:国知局
专利名称:面向异构多核体系的进程调度方法
技术领域
本发明涉及计算机操作系统领域,尤其涉及一种面向异构多核体系的进程调度方法。
背景技术
在操作系统中,进程调度负责动态地把处理器分配给进程。因此,它又叫处理器调度或低级调度。操作系统中实现进程调度的程序称为进程调度程序,或分派程序。
处理器的调度策略很多;现介绍如下几种1、先来先服务算法先来先服务算法是按照进程进入就绪队列的先后次序来分配处理器。先进入就绪队列的进程优先被挑选,运行进程一旦占有处理器将一直运行下去直到运行结束或阻塞。这种算法容易实现,但效率不高,显然不利于I/O频繁的进程。
2、时间片轮转调度轮转法调度也称之为时间片调度,具体做法是调度程序每次把CPU分配给就绪队列首进程使用一个时间片,例如100ms,就绪队列中的每个进程轮流地运行一个这样的时间片。当这个时间片结束时,就强迫一个进程让出处理器,让它排列到就绪队列的尾部,等候下一轮调度。实现这种调度要使用一个间隔时钟,例如,当一个进程开始运行时,就将时间片的值置入间隔时钟内,当发生间隔时钟中断时,就表明该进程连续运行的时间已超过一个规定的时间片。此时,中断处理程序就通知处理器调度进行处理器的转换工作。这种调度策略可以防止那些很少使用外围设备的进程过长的占用处理器而使得要使用外围设备的那些进程没有机会去启动外围设备。
最常用的轮转法是基本轮转法。它要求每个进程轮流地运行相同的一个时间片。在分时系统中,这是一种较简单又有效的调度策略。一个分时系统有许多终端设备,终端用户在各自的终端设备上同时使用计算机,如果某个终端用户的程序长时间的占用处理器,势必使其它终端用户的要求不能得到及时响应。一般说分时系统的终端用户提出要求后到计算机响应给出回答的时间只能是几秒钟,这样才能使终端用户感到满意。采用基本轮转的调度策略可以使系统及时响应。例如,一个分时系统有10个终端,如果每个终端用户进程的时间片为100ms,那么,粗略地说,每个终端用户在每秒钟内可以得到大数100ms的处理器时间,如果对于终端用户的每个要求,处理器花费300ms的时间就可以给出回答时,那么终端响应的时间大致就在3秒左右,这样可算得上及时响应了。
基本轮转法的策略可以略加修改。例如,对于不同的进程给以不同的时间片;时间片的长短可以动态地修改等等,这些做法主要是为了进一步提高效率。
轮转法调度是一种剥夺式调度,系统耗费在进程切换上的开销比较大,这个开销与时间片的大小很有关系。如果时间片取值太小,以致于大多数进程都不可能在一个时间片内运行完毕,切换就会频繁,系统开销显著增大,所以,从系统效率来看,时间片取大一点好。另一方面,时间片长度固定,那么随着就绪队列里进程数目的增加,轮转一次的总时间增大,亦即对每个进程的响应速度放慢了。为了满足用户对响应时间的要求,要么限制就绪队列中的进程数量,要么采用动态时间片法,根据当前负载状况,及时调整时间片的大小。所以,时间片大小的确定要从系统效率和响应时间两方面考虑。
3、优先权调度每一个进程给出一个优先数,处理器调度每次选择就绪进程中优先数最大者,让它占用处理器运行。怎样确定优先数呢?可以有以下几种考虑,使用外围设备频繁者优先数大,这样有利于提高效率;重要算题程序的进程优先数大,这祥有利于用户;进入计算机时间长的进程优先数大,这样有利于缩短作业完成的时间;交互式用户的进程优先数大,这样有利于终端用户的响应时间等等。
这些级别的进程调度方法都是最简单的调度方法,对于在单个处理器的体系结构中,操作系统采用这些调度就能够实现对多道程序的支持。

发明内容
在异构体系结构中,有一个用于通用处理的主处理核和若干个针对特殊应用进行优化的辅助处理核。本发明提出了一个面向这种主从关系的异构多核的进程调度的方法。
本发明解决技术问题所采用的技术方案是1)进程分配策略把异构多核分为主处理核和辅助处理核,操作系统为所有处理核维护一个的共用的就绪队列,每一个就绪进程有一个标志位标记该进程是运行在主处理核还是辅助处理核上;当某一个处理核空闲时,就从就绪队列里选取一个相应进程运行于该处理核上;2)操作系统的实现机制操作系统采用主从式管理结构,操作系统的核心进程运行在主处理核上,其他处理器仅运行可以在该类核上运行的各种应用程序,当应用程序需要请求操作系统服务时,请求将被传递到主处理核上的操作系统程序;3)进程的调度I.均分负载的进程调度当某一个处理核空闲时,就选择一个可以在该处理核上运行的就绪进程占有该处理器运行,一个进程就可以在任意时间在任意可运行该进程的处理核上运行;II.处理器专用的进程调度给一个应用程序专门指派一组处理器,一旦一个应用程序被调度,它的每一个线程被分配一个处理器并一直占有这个处理器运行直到整个应用程序运行结束。
本发明具有的有益的效果是进程调度方法能够使得进程在异构多核上合理的进行调度,从而实现应用程序任务在各个处理核之间的负载均衡。


附图是进程调度处理流程。
具体实施方法1)进程分配策略的实现在异构多核体系下,所有的处理并不是完全相同的,而是有一个主控的通用处理核和若干个相同的辅助处理核组成,但所有处理其在数据操作上却是相同的,即对主存和I/O设备的访问方式相同,所有采用对主处理核单独处理,而其他多个辅助处理核则被作为一个处理核池来对待。
采取动态分配策略,操作系统为所有处理核维护一个的共用的就绪队列,每一个就绪进程有一个标志位标记该进程是运行在主处理核还是辅助处理核上。当某一个处理核空闲时,就从相应的就绪队列里选取一个就绪进程运行于该处理核上。附图所示,概要说明了就绪队列的模型。
2)操作系统的实现机制操作系统采用主从式管理结构,操作系统的核心进程运行在主处理核上,其他处理器运行可以在该类核上运行的各种应用程序用户程序,当用户程序需要请求操作系统服务时,请求将被传递到主处理核上的操作系统程序。
每一个进程都有一个也只有一个进程控制块,是操作系统用于记录和刻划进程状态及有关信息的数据结构。也是操作系统掌握进程的唯一资料结构,它包括了进程执行时的情况,以及进程让出处理器后所处的状态、断点等信息。
每个进程控制块包含了操作系统管理所需的所有进程信息,进程控制块的集合事实上定义了一个操作系统的当前状态。进程控制块使用或修改权仅属于操作系统程序,包括调度程序、资源分配程序、中断处理程序、性能监视和分析程序等。有了进程控制块,进程才能被调度执行,因而,进程控制块可看作是一个虚的CPU。
3)进程的调度1.均分负载的进程调度当某一个处理核空闲时,就选择一个可以在该处理核上运行的就绪进程占有该处理器运行。一个进程就可以在任意时间在任意可运行该进程的处理核上运行。
II.处理器专派的进程调度给一个应用专门指派一组处理器,一旦一个应用被调度,它的每一个线程被分配一个处理器并一直占有这个处理器运行直到整个应用运行结束。
进程调度的基本思想是由操作系统和应用进程共同完成调度。操作系统负责在应用进程之间划分处理器。应用程序则根据它的标志位来确定需要哪一类的处理器单元。
在这一调度中,当一个进程达到或要求新的处理器时,操作系统的调度程序主要限制处理器的分配,并且按照下面的步骤处理1)如果有空闲的处理器,满足要求,就分配指定的处理器;2)否则,对于新到达进程,通过查看该进程的标记位确定需要哪一类处理器,并从当前分配了一个以上处理器的进程手中收回一个,并把它分配给新到达进程;3)如果没有空闲或者可以回收的处理器,则保留申请直到出现可用的处理器或要求取消;4)当某个应用程序进程释放了一个或多个处理器后,扫描申请处理器的进程队列,按照先来先服务的原则把处理器逐一分配给每个申请进程直到没有可用处理器。
权利要求
1.一种面向异构多核体系的进程调度方法,其特征在于1)进程分配策略把异构多核分为主处理核和辅助处理核,操作系统为所有处理核维护一个的共用的就绪队列,每一个就绪进程有一个标志位标记该进程是运行在主处理核还是辅助处理核上;当某一个处理核空闲时,就从就绪队列里选取一个相应进程运行于该处理核上;2)操作系统的实现机制操作系统采用主从式管理结构,操作系统的核心进程运行在主处理核上,其他处理器仅运行可以在该类核上运行的各种应用程序,当应用程序需要请求操作系统服务时,请求将被传递到主处理核上的操作系统程序;3)进程的调度I.均分负载的进程调度当某一个处理核空闲时,就选择一个可以在该处理核上运行的就绪进程占有该处理器运行,一个进程就可以在任意时间在任意可运行该进程的处理核上运行;II.处理器专用的进程调度给一个应用程序专门指派一组处理器,一旦一个应用程序被调度,它的每一个线程被分配一个处理器并一直占有这个处理器运行直到整个应用程序运行结束。
全文摘要
本发明公开了一种面向异构多核体系的进程调度方法。这种方法采用所有处理核共用一个就绪进程队列,每一个就绪进程有一个标志位标记该进程是运行在主处理核还是辅助处理核上的实现方式。这种方法中操作系统采用主从式管理结构,操作系统的核心进程运行在主处理核上,其他处理器仅运行可以在该类核上运行的各种应用程序,当应用程序需要请求操作系统服务时,请求将被传递到主处理核上的操作系统程序。进程调度采用均分负载调度算法和处理器专派调度算法,实现了进程的合理调度。
文档编号G06F9/46GK101013388SQ20071006692
公开日2007年8月8日 申请日期2007年1月26日 优先权日2007年1月26日
发明者陈天洲, 黄振宝 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1