信息化 频道

情景导购:银行系统如何动态管理资源

四. 模块设计

    1. DRSM模块内部结构说明

    DRSM模块包含五部分:

    DyResourceManageInit--系统动态资源管理模块内存初始化程序,将DRSM配置信息导入共享内存,即根据资源配置信息初始化共享内存的键值结构和文本结构;

    DyResourceManage--DRSM模块资源管理守护程序,完成纳入DRSM的资源的动态管理;循环读取共享内存中的键值区中的配置信息,根据任务请求的动态变化,利用动态资源管理算法启动或释放任务,维护共享内存中的文本结构和键值结构。

    DrsmMonitor--DRSM模块服务监控程序,该程序显示DRSM所管理的资源状况;当该进程手工启动后,循环读取共享内存中的键值结构和相应的文本结构,并打印输出。

    Dispdsm--DRSM模块服务程序,该程序显示DRSM内存区状况;顺序读取共享内存结构信息,并写到文件中。

    DrsmRefresh--动态更新资源管理模块参数程序。 能够动态更新的参数包括:任务的最小值、任务增量、临界值、采样周期。当数据库中的资源配置信息改变以后,运行DrsmRefresh会读取变更后的资源配置,更新共享内存结构,DyResourceManage会按照更新后的资源配置进行资源的动态管理。

DRSM模块设计

    2. 模块程序设计流程说明

    资源启动流程:

    首先通过模块初始化功能,获取当前进程号,将当前进程设置为成为一个新会话期的开始者,清空信号集,注册到邮箱系统和共享信息系统。设置子进程退出信号处理中断入口,处理子进程退出信号,将子进程退出信号加入信号集。开始动态资源管理服务。

    在DRSM可管理最大任务数范围内,顺序读取键值指针指向的共享内存结构内容;对每一个任务的键值结构内容进行任务启动算法判断,进入任务启动流程。

    任务启动有两种情况,一种情况是当一种资源目前已经启动的任务数小于配置信息的最小启动任务数,那么启动任务数等于最小启动任务数与目前已启动的任务数的差值,DRSM保证每一种资源的启动任务数至少等于配置信息中的最小任务数;另一重情况是目前的活动任务数与启动任务数非常接近(接近程度用临界值来衡量)的时候,按照配置信息中指定的任务增量启动资源子进程,启动任务总数不能超过配置信息中的最大任务数。

    实现过程,顺序读取共享内存键值结构指针,首先判断任务是否为空,为空继续读取下一个指针;如果非空,判断启动任务的第一种情况,如果满足条件执行对应的启动操作,否则继续进行判断第二种情况。

    资源释放流程:

    资源释放按采样周期进行,采样周期是配置信息中规定的采样次数。当达到采样周期的时候,决定是否释放资源和释放资源的数量主要取决于维持任务数和当前活动任务数。

    资源的释放有两种方式:安全释放模式和被动释放模式。安全释放模式是指空闲服务接收DRSM的释放请求,在清理完现场后执行退出;被动释放模式是指DRSM通过向空闲的服务发出退出信号,服务在收到信号后,中断当前的处理,清理完现场后退出。

    维持任务数是指上一个采样周期的加权平均活动任务数,维持任务数的计算有两种情况:

    1)当轮巡次数恰好达到采样周期的时候

DRSM模块设计DRSM模块设计

    2) 当轮巡次数没有达到采样周期的时候

DRSM模块设计

DRSM模块设计

    其中,DRSM模块设计表示对DRSM模块设计取整。

    如果维持任务数小于最小任务数,那么nkeep= nMinTask。

    DRSM释放资源的条件是当到达一个采样周期的时候,计算维持任务数,比较当前活动任务数与维持任务数,如果当前活动任务数小于维持任务数,那么系统决定释放资源,可释放的资源数量等于启动任务数与维持任务数的差值;为了避免系统资源频繁大量的启动和释放,释放资源的过程参照启动资源的过程,当维持任务数减去当前活动任务数的值大于任务增/减量(nIncTask)的时候,系统一次释放任务增/减量个资源。

    资源启动与释放周期预测曲线:

    在一个事务并发高峰周期,DRSM对资源的启动与释放曲线如图:

DRSM模块设计

    资源报告流程:

    当循环次数达到资源报告规定周期的时候,顺序读取共享内存结构指针指向的每条记录内容,输出资源配置信息与状态信息。

    通过资源监控进程可以选择只监视每种资源的键值结构区内容还是同时监视文本结构区内容,由程序调用的参数决定。

    通过资源配置更新程序可以更新资源的配置信息,可以置更新一种资源或者全部更新,由函数调用的参数决定。

    3. 设计语言描述

    基于Unix操作系统的标准C语言和嵌入式SQL语言。

    4. 设计关键点

    DRSM模块运行流程中,DRSM读取到的资源配置信息对DRSM资源管理的效率起着决定性的影响,资源动态管理算法是在配置信息固定以后动态管理效率的主要影响因素。

    由于DRSM要控制所与配置信息中的资源,所以DRSM管理的资源全部以资源动态管理子进程的形式存在,在启动和释放资源的过程中对子进程退出信号的处理是模块顺利运行的关键。

0
相关文章