一种对称多处理系统中进程与中断的处理方法及装置的制作方法

文档序号:6458142阅读:267来源:国知局
专利名称:一种对称多处理系统中进程与中断的处理方法及装置的制作方法
技术领域
本发明涉及对称多处理器系统领域,特别是一种对称多处理器系统中进程 与中断的处理方法及装置。
背景技术
随着多处理器技术的迅速发展,多处理器平台正越来越广泛地应用在工业 自动化、电子通讯、家电等各个领域。同时,多处理器平台对各种进程调度和 中断源的处理也越来越复杂。在这种情况下,为了保证多处理器平台在进程调 度和中断处理过程中的系统稳定性和实时性,原来的进程调度和中断处理技术 也随之不断发展。多处理系统包括对称多处理系统和非对称多处理系统。目前用于对称多处理系统中的中断处理方法主要包括以下流程(1)如附图1所示,硬件设备产 生外部IRQs (中断请求)信号,并上报给I/O APIC (I/O高级可编程中断控制 器),由I/OAPIC进行中断优先级判断以及屏蔽控制后,根据I/OAPIC中的编 程逻辑,通过中断控制器通信总线,动态的将外部IRQs分发到某个CPU的本 地APIC (高级可编程中断控制器),由该CPU处理接收到的外部IRQs及自己 的本地IRQs; (2)附图2是中断根据中断处理原则被分发到具体的某一个CPU 上后进行软件处理的流程图,获得外部IRQs的CPU^4居该IRQs对应的中断 向量查找中断向量表,确定中断类型,然后跳转至ISR (中断服务例程),执行 用户设定的中断响应代码进行中断处理;并在底层的中断服务例程中调用上层 注册的回调函数,处理上层中断业务或分发业务,底层中断上下文中执行完上 层的代码后中断返回。目前对称多处理系统中的进程调度方法主要有基于优先级的调度算法、基于比例共享的调度算法、基于时间的进程调度算法等,但最通用的还是基于优 先级的调度算法。对称多处理系统中的进程调度主要包括以下流程(l)用户创建进程,该进程最初在某个处理器A上开始运行;(2)多个处理器独立进行 进程调度,在处理器A下次调度到该进程的时候根据负载均衡原则将进程分发 到负载轻的处理器B上;(3)依此类推,该进程将在多个处理器上轮转执行。 但是随着挂接中断的设备越来越多,及用户进程数的不断增多,现有的多 处理器系统的进程调度和中断处理方法在稳定性和实时性方面正面临各种挑 战。首先,由于每个处理器都是既处理中断又运行用户进程,如果某种设备中 断过于频繁,处理器在执行进程的时候要不断的进入中断,中断处理完后再切 换回进程,周而复始,对于抢占式操作系统,CPU占有率将维持4艮高的水平, 导致进程处理延迟,直观上看是操作系统对用户的输入反应迟钝,影响了系统 的实时性。其次,由于进程和中断都是均衡分发到各个处理器,频繁的产生中 断和调度较多的进程,就会在处理器上频繁切换;由于高速緩存总是把访问率 高的数据或者正在运行的程序下一步要调用的数据存入其中,如果作业频繁切 换,对于处理器高速緩存而言,就需要在将运行中断要涉及的相关数据调入和 将运行进程要涉及的相关数据调入之间频繁切换,这对处理器的高速緩存而言 是个灾难,将不能保证较高的命中率,在某些情况下会严重影响系统的稳定性 和实时性。现有的申请号为CN200710066924的中国专利申请"面向异构多核体系的 进程调度方法,,中,由于该专利申请将中断和进程放在同一个核上处理,无法 避免在进程数较多和中断频繁的情况下频繁切换带来的系统开销, 一定程度上 影响了系统的实时性。申请号为US20050246461的美国专利申请"Scheduling threads in a multi-processor computer"(在多处理器CPU之间调度线程),虽然在该专利 中,对进程和中断在多个核上进行了均衡分发,但是它不能根本性的解决同一 个核上进程和中断频繁切换带来的系统开销;因而在中断设备多样、中断处理 复杂以及进程数较多的情况下,会影响系统响应中断和处理进程的实时性。发明内容有鉴于此,本发明的主要目的在于提供一种对称多处理系统中进程与中断 的处理方法及装置,以防止系统在进程较多和中断频繁的情况下的处理迟滞和 系统稳定性下降。为达到上述目的,本发明的技术方案是这样实现的本发明公开了 一种对称多处理系统中进程与中断的处理方法,该方法采用 中断处理和进程处理在处理器级上相分离的办法,用一个或一组处理器专门处 理中断,其余的处理器专门处理进程;并且进一步地,对进程和中断处理进行 监控,对两组处理器中的处理器数进行动态调整。该方法包括a. 中断信号产生以后,绑定中断到中断处理器组,所述中断处理器组对中 断进行处理;b. 将产生的进程绑定到进程处理器组,所述进程处理器组对进程进行处c. 对中断处理器组和进程处理器组进行监控,计算每组处理器的负载指 数,并根据负载指数对两组处理器中的处理器数进行动态调整。进一步的,在步骤a中所述中断处理器组对中断进行处理,为根据中断 处理器组内CPU负载情况将中断均衡地在本组CPU间动态分发,并根据中断 亲和性原则让同 一个CPU处理同 一类型中断。在步骤c中所述计算中断处理器组处理器的负载指数,为A=(intLoad 1 +intLoad2+...十intLoadn) /n,其中intLoad 1 intLoadn为中断处理器 组内每个CPU的负载指数,n指中断处理器组内当前的CPU个数;或者,在 步骤c中所述计算进程处理器组处理器的负载指数,为B=(processLoadl+processLoad2+…+processLoadm ) /m , 其中 processLoad1 processLoadm为进程处理器组内每个CPU的负载指数,m指进程处理器组内当 前的CPU个数。在步骤c中所述根据负载指数对两组处理器中的处理器数进行 动态调整,为如果监控到中断处理器组负载指数大于进程处理器组负载指数,则将进程处理器组中负载指数最小的处理器绑定到中断处理器组;如果中断处 理器组负载指数小于进程处理器组负载指数,则将中断处理器组内负载指数最 小的处理器绑定到进程处理器组。本发明还公开了 一种对称多处理系统中进程与中断的处理装置,包括中断处理模块,用于中断信号产生以后,根据系统需要进行中断绑定分发 处理,包括配置I/OAPIC、绑定中断到中断处理器组;进程处理模块,用于将产生的进程绑定到进程处理器组及在进程处理器组 的CPU之间调度进程;中断处理器组,用于对中断进行处理;进程处理器组,用于对进程进行处理,所述进程处理器组中包含的处理器 与中断处理器组中包含的处理器不相同。该装置还包括进程和中断监控模块,用于对进程处理器组和中断处理器 组进行统计,计算每组处理器的负载能力,并根据负载指数对两组处理器中的 处理器数进行动态调整。与现有技术相比,本发明所提供的对称多处理系统中进程与中断的处理方 法和装置,具有以下的优点和特点由于采用了进程处理和中断处理在处理器一级相分离的方法, 一方面保证 了进程处理和中断处理互相不受干扰,确保进程和中断的处理都能够得到及时 响应,保证系统的实时性要求;另一方面,如果将中断或进程绑定到一个(或 一组)处理器上,CPU高速缓存保存当前运行程序下一步要调用的数据、或访 问率高的数据,并且不用频繁大量读入或移出,可以避免或降低在多个处理器上分发造成的高速緩存问题,确保高速緩存始终保持高命中率。此外,本发明还提供了进程和中断监控模块,进行两组处理器相关信息的 统计,并根据统计的结果进行中断处理和进程处理的重新绑定,令多处理器系 统即使在设备中断过于频繁,或者进程急剧增多的情况下(如电子通讯领域), 也会自动启动负载均衡机制,避免进程或中断处理延误,从而显著提高系统在 处理进程和中断时的稳定性和实时性。


图1为传统对称多处理器系统中断、进程处理流程框图; 图2为在某一个CPU上对中断进行软件处理的流程图; 图3为本发明对称多处理器系统中断、进程处理相分离原理图; 图4为本发明的对称多处理器进程和中断主要处理流程图。
具体实施方式
本发明利用对称多处理系统进程与中断的处理装置进行进程和中断处理包 括以下步骤步骤A.多处理系统启动过程中,由搡作系统内核调用中断处理模块接口, 中断处理模块启动,之后中断处理模块进行中断绑定分发处理,包括配置I/O APIC、绑定中断到一个或一组处理器,这组处理器就成为中断处理器组,余下 的没有绑定中断的处理器将成为进程处理器组;步骤B.多处理系统启动过程中,由操作系统内核调用进程和中断监控模 块接口启动监控程序,实时监控中断处理器組和进程处理器组的负载情况;步骤C.多处理系统启动后,由用户程序调用进程处理模块接口,进程处 理模块启动后,将产生的所有进程绑定到进程处理器组;步骤D.进程和中断监控模块根据监控到的每组处理器的负载情况,动态 的对两组处理器进行重新配置,包括如果检测进程处理器组负载指数大于中断 处理器组,则将中断处理器组中负载指数最小的处理器绑定到进程处理器组, 反之如果进程处理器组负载指数小于中断处理器组,则将进程处理器组中负载 指数最小的处理器绑定到中断处理器组。下面结合附图对本发明对称多处理器系统中断和进程处理方法及装置进行 详细说明。如图3所示,本发明的对称多处理器系统中断及进程处理装置的结构包括 进程和中断监控模块301 ,这部分负责在系统运行时监控进程处理器组305 和中断处理器组304的负载情况,并且根据进程处理器组305和中断处理器组进程处理器组305的负载指数大于中断处理器组304的负载指数,则通过进程 和中断监控模块301在进程处理模块303和中断处理模块302之间的调度,将 中断处理器组304负载指数最小的处理器绑定到进程处理器组305;如果进程 处理器组305的负载指数小于中断处理器组304的负载指数,则通过进程和中 断监控模块301在进程处理模块303和中断处理模块302之间的调度,将进程 处理器组305负载指数最小的处理器绑定到中断处理器组304;中断处理模块302,该部分负责在中断信号产生以后,根据系统需要进行 中断绑定分发处理,包括配置I/OAPIC、绑定中断到一个或一组中断处理器。 该部分的中断处理由中断处理器组304的CPU完成,对于多种中断类型,根据 中断亲和性原则尽可能让同一个CPU处理同一类型中断,并根据组内CPU负 载情况均衡地在本组CPU间动态分发;在上述中断处理模块302中,在本组CPU间动态分发中断的实现方法是 首先软件对I/O APIC编程,根据本CPU的负载指数转换成优先级值写入I/O APIC的中断重定向表,这样I/O APIC就会根据中断重定向表把中断送给优先 级最低的CPU,在运行过程中中断重定向表被动态的调整,因此中断就会动态 的分发到各CPU;进程处理模块303,该部分负责在进程创建后,将进程绑定到相应的进程 处理器组305,并且在进程处理器组305内的CPU之间调度进程,采用通用的 进程调度方法,比如基于优先级的调度算法、基于比例共享的调度算法、基于 时间的进程调度算法等。如图4所示,本发明的主要处理流程步骤401:多处理器启动;步骤402:中断处理模块被操作系统内核调用启动,然后执行步骤405; 步骤403:进程和中断监控模块被搡作系统内核调用启动,然后分别执行 步骤409和步-腺414;步骤404:进程处理模块由用户程序调用启动,然后执行步骤407;步骤405:中断处理模块绑定中断到中断处理器组;步骤406:中断处理模块在中断处理器组内的中断根据组内CPU负载情况, 动态分发,进行中断处理;步骤407:进程处理模块绑定进程到进程处理器组;度方法调度进程;步骤409:进程和中断监控模块启动中断监控任务; 步骤410:定时,如1S轮询中断组内每个CPU;步骤411:检测该组内每个CPU在1S内处理中断的数量IntNum及CPU 占有率CpuPercent;步骤412:根据公式intLoad= IntNum* CpuPercent计算出该组内每个CPU 的负载指数intLoad;步骤413:根据该CPU组内每个CPU的负载指数求出该组CPU的平均负 载指数A:A= (intLoadl+intLoad2+…+intLoadn) /n,其中n指该中断处理器组内当前 的CPU个数;然后执行步骤419;步骤414:与步骤409同时,进程和中断监控模块启动进程监控任务;步骤415:定时,如1S轮询进程处理器组内每个CPU;步骤416:4全测该组内每个CPU在IS内处理进程的数量ProcessNum及CPU 占有率CpuPercent;步骤417:根据公式processLoad二ProcessNun^CpuPercent计算出该组内每 个CPU的负载指数processLoad;步骤418:根据该组内每个CPU的负载指数求出该组CPU的平均负载指数B:B= ( processLoadl+processLoad2+...十processLoadm ) /m, 其中m指该进禾呈 组内当前的CPU个数;步骤419:比较A和B的值,如果A大于B,说明中断处理器组的CPU负载过重,因此执行步骤421,将进程处理器组内CPU负载指数最小的CPU 绑定到中断处理器组,对于^L绑定到中断处理器组的该CPU上原有的任务转移 到进程处理器组内负载指数最小的CPU上;
步骤420:如果A小于B,说明进程处理器组CPU负载过重,将中断处理 器组内CPU负载指数最小的CPU绑定到进程处理器组,对于被绑定到进程处 理器组的该CPU上原有的任务转移到中断处理器组内负载指数最小的CPU上; 如果A等于B,不做任何处理。
然后从步骤409、 414开始,继续轮询每组CPU,长时间运行后,两组CPU 负载总体处于均衡水平,进程和中断都得到及时有效的处理。
图4中,步骤402、步骤405、步骤406为相关的中断处理流程,步骤404、 步骤407、步骤408为相关的进程处理流程,步骤403、及步骤409-421为进 程和中断监控模块处理流程。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1、一种对称多处理系统中进程与中断的处理方法,其特征在于,该方法包括a.中断信号产生以后,绑定中断到中断处理器组,所述中断处理器组对中断进行处理;b.将产生的进程绑定到进程处理器组,所述进程处理器组对进程进行处理,所述进程处理器组中的处理器与中断处理器组中的处理器不相同。
2、 根据权利要求1所述的方法,其特征在于,该方法进一步包括c. 对中断处理器组和进程处理器组进行监控,计算每组处理器的负载指 数,并根据负载指数对两组处理器中的处理器数进行动态调整。
3、 根据权利要求1所述的方法,其特征在于,在步骤a中所述中断处理器 组对中断进行处理,为根据中断处理器组内CPU负载情况将中断均衡地在本 组CPU间动态分发,并根据中断亲和性原则让同 一个CPU处理同 一类型中断。
4、 根据权利要求2所述的方法,其特征在于,在步骤c中所述计算中断处理器组处理器的负载指数,为A-(intLoadl+intLoad2+…+intLoadn) /n,其中intLoad1 intLoadn为中断处理器 组内每个CPU的负载指数,n指中断处理器组内当前的CPU个数;或者,在步骤c中所述计算进程处理器组处理器的负载指数,为B= (processLoadl+processLoad2+…+processLoadm ) /m , 其中 processLoad1 processLoadm为进程处理器组内每个CPU的负载指数,m指进程处理器组内当 前的CPU个数。
5、 根据权利要求2所述的方法,其特征在于,在步骤c中所述根据负载指 数对两组处理器中的处理器数进行动态调整,为如果监控到中断处理器组负 载指数大于进程处理器组负载指数,则将进程处理器组中负载指数最小的处理 器绑定到中断处理器组;如果中断处理器组负载指数小于进程处理器组负载指数,则将中断处理器组内负载指数最小的处理器绑定到进程处理器组。
6、 一种对称多处理系统中进程与中断的处理装置,其特征在于,该装置包括中断处理模块,用于中断信号产生以后,根据系统需要进行中断绑定分发 处理,包括配置I/OAPIC、绑定中断到中断处理器组;进程处理模块,用于将产生的进程绑定到进程处理器组及在进程处理器组 的CPU之间调度进程;中断处理器组,用于对中断进行处理;进程处理器组,用于对进程进行处理,所述进程处理器组中包含的处理器 与中断处理器组中包含的处理器不相同。
7、 根据权利要求6所述的装置,其特征在于,该装置进一步包括 进程和中断监控模块,用于对进程处理器组和中断处理器组进行统计,计算每组处理器的负载能力,并根据负载指数对两组处理器中的处理器数进行动 态调整。
全文摘要
本发明公开了一种对称多处理系统中进程与中断的处理方法,该方法采用中断处理和进程处理在处理器级上相分离的办法,用一个或一组处理器专门处理中断,其余的处理器专门处理进程;并且进一步地,对进程和中断处理进行监控,根据进程或中断处理器组的负载指数,对两组处理器中的处理器数进行动态调整。本发明还公开了一种对称多处理系统中进程与中断的处理装置,该装置包括中断处理模块、进程处理模块,并进一步包括进程和中断监控模块,确保系统的进程处理和中断处理相互不干扰,提高了高速缓存的命中率,保证了系统的稳定性和实时性要求。
文档编号G06F9/46GK101246438SQ20081000773
公开日2008年8月20日 申请日期2008年3月7日 优先权日2008年3月7日
发明者尹旭全 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1