[发明专利]有限资源系统内外存实时置换机制及映射管理方法在审
| 申请号: | 202111630744.8 | 申请日: | 2021-12-28 |
| 公开(公告)号: | CN114281721A | 公开(公告)日: | 2022-04-05 |
| 发明(设计)人: | 安思成;陈蕾;徐重酉;林胥登;宋晓阳;周水良 | 申请(专利权)人: | 华北电力大学;国网浙江省电力有限公司宁波供电公司 |
| 主分类号: | G06F12/126 | 分类号: | G06F12/126;G06F12/02;G06F9/50 |
| 代理公司: | 北京市盛峰律师事务所 11337 | 代理人: | 席小东 |
| 地址: | 10220*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 有限 资源 系统 外存 实时 置换 机制 映射 管理 方法 | ||
1.一种有限资源系统内外存实时置换机制及映射管理方法,其特征在于,包括以下步骤:
步骤1,定义内存空间的存储管理结构,包括:
步骤1.1,设内存空间的存储容量为V1;根据内存空间的存储容量V1,确定单个内存页面的存储容量为W1,从而将内存空间划分为n=V1/W1个内存页面,依次表示为:mem_Page_1,mem_Page_2,...,mem_Page_n;
步骤1.2,将第1个内存页面mem_Page_1称为内存管理页面mem_Page_1;将第2个内存页面mem_Page_2到第n个内存页面mem_Page_n称为内存存储页面;
步骤1.3,定义内存管理页面mem_Page_1的管理结构;
所述内存管理页面mem_Page_1划分为外存管理结构存储区域以及全局变量存储区域;所述外存管理结构存储区域用于调入外存管理页面Page_1的页面分配表;所述全局变量存储区域用于存储系统运行的全局变量,包括各个内存存储页面的页面标识,用于标识各个内存存储页面的可用状态,即:标识内存存储页面不可用状态或可用状态;
步骤2,定义外存空间的存储管理结构,方法为:
步骤2.1,定义单个外存页面Page的存储容量与单个内存页面mem_Page的存储容量相等,均为W1;
设外存空间的存储容量为V2,从而将外存空间划分为m=V2/W1个外存页面,依次表示为:Page_1,Page_2,...,Page_m;
步骤2.2,将第1个外存页面Page_1称为外存管理页面Page_1;将第2个外存页面Page到第m个外存页面Page_m称为外存存储页面;
步骤2.3,定义外存管理页面Page_1的管理结构:
外存管理页面Page_1用于存储由Page_1,Page_2,...,Page_m的页面管理信息形成的页面分配表;
其中:对于Page_1,Page_2,...,Page_m中的任意外存存储页面Page_i,i=1,2,3,...,m,外存管理页面Page_1存储以下页面管理信息:页面属性信息和任务属性信息;
其中,页面属性信息包括页面号;任务属性信息包括任务号、任务优先级、脏数据机制标识、脏数据标识、实时机制标识、页数据任务读写起始时间和页数据任务读写持续时间;
其中:
页面号,为外存存储页面的唯一页面标识;
任务号,标识页面数据对应的任务读写的编号,使外存存储页面和任务对应相关,其中,一个外存存储页面唯一对应一个任务号;一个任务号可对应多个外存存储页面;
任务优先级,用于标识页面对应任务的读写优先度,提供页面调配策略的参考;
脏数据机制标识,用于标明页面是否适用修改无效、变动清空的“脏”数据机制;其中,脏数据是指在一个最小操作单元也就是任务读写过程中,其他任务不能修改此数据,在此最小操作单元中数据是独占的,其执行原理为:当在此最小操作单元执行正常修改数据一系列操作后,计算数据标识,数据标识用于代表数据状态,如果任务读写起止时数据标识改变,表明任务过程中数据改变,即定义为脏数据;
实时机制标识,标明页面是否适用确定有效起止时间的实时数据机制;
页数据任务读写起始时间,表示页面开始使用的起始时刻;
页数据任务读写持续时间,表示页面数据有效的最大持续时间,用于判断页面数据是否在生命周期内,进而保证实时数据处理的有效;
步骤2.4,定义外存存储页面Page_2,...,Page_m的存储结构,包括:
步骤2.4.1,外存存储页面Page_2,...,Page_m的页面首部,用于存储对应的页面属性信息和任务属性信息;
步骤2.4.2,在页面首部后面,连续存储页面数据的变量标识,用于寻址读变量和按址写变量;
步骤2.4.3,从页面尾部开始,逐渐向低地址延伸,写入变量数据内容;其中:变量标识和变量内容成对存放;
步骤3,任务启动并进行存储资源分配过程,方法为:
步骤3.1,在任务调度过程中,当需要启动一个新任务tasknew时,配置任务属性信息;
步骤3.2,确定新任务tasknew运行需占用的页面数量为s;
步骤3.3,将当前的外存管理页面Page_1存储的页面分配表调入内存管理页面mem_Page_1;
步骤3.4,读取页面分配表,获得未分配任务的s个外存存储页面,将s个外存存储页面分配给新任务tasknew,分配方式为:
将新任务tasknew的任务属性信息写入页面分配表的对应外存存储页面的页面管理信息中,由此得到新的页面分配表;
步骤3.5,判断当前是否存在待执行的任务读写操作,如果存在,则执行步骤4.3;如果不存在,则将新的页面分配表写出到外存空间的外存管理页面Page_1中;
至此完成任务启动并进行存储资源分配过程;
步骤4,任务读写时内外存实时置换机制:
步骤4.1,在任务调度过程中,当需要调度执行一个任务task1进行读写操作时,获取任务task1的任务号task_num1;
步骤4.2,将当前的外存管理页面Page_1存储的页面分配表调入内存管理页面mem_Page_1的外存管理结构存储区域;其中,内存管理页面mem_Page_1的全局变量存储区域存储系统全局变量及各个内存存储页面的页面标识;
步骤4.3,根据任务号task_num1,查找内存管理页面mem_Page_1中的页面分配表,从页面分配表中读取到与任务号task_num1对应的外存存储页面的页面号Page_num1;
步骤4.4,根据各个内存存储页面的页面标识,遍历内存空间中各个页面标识为可用状态的内存存储页面,判断是否存在页面号为Page_num1的内存存储页面;如果不存在,则执行步骤4.5-步骤4.7;如果存在,则执行步骤4.8;
步骤4.5,遍历外存空间中各个外存存储页面,判断是否存在页面号为Page_num1的外存存储页面;如果不存在,则返回错误,由任务调度策略进行本次任务的任务启动并进行存储资源分配过程,即执行步骤3,或进行下一个任务读写过程;
如果存在,则执行步骤4.6;
步骤4.6,读取页面号为Page_num1的外存存储页面,获得任务task1的优先级,按任务调度策略集结合任务优先级判断是否执行任务task1,当需要执行任务task1时,执行步骤4.7;
如果是,执行步骤4.7;
步骤4.7,建立内存存储页面和外存存储页面的映射,方法为:
在外存空间中定位到页面号为Page_num1的外存存储页面,将页面号为Page_num1的外存存储页面调入到内存空间中的某个内存存储页面,此时,该内存存储页面的页面号同样为Page_num1,即:建立了内存存储页面和外存存储页面的映射;
然后执行步骤4.8;
步骤4.8,在内存空间中,读取页面号为Page_num1的内存存储页面,获得页面内容管理信息,根据脏数据机制标识和实时机制标识,判断是否执行脏数据机制和实时机制;如果不执行,则执行步骤4.10;
如果执行,则执行步骤4.9;
步骤4.9,检查页面号为Page_num1的内存存储页面的数据是否为脏数据,以及,是否符合页面时效性要求;如果不是脏数据,并且,符合页面时效性要求,则执行步骤4.10;
如果为脏数据,则执行脏数据处理流程;如果不符合页面时效性要求,则执行实时机制超时处理流程;
其中:脏数据处理流程和实时机制超时处理流程相同,均为:将内存管理页面mem_Page_1中的页面分配表中对应的页面分配信息清空,将对应的内存存储页面的页面标识置为不可用状态;然后执行步骤4.10;
步骤4.10,将内存管理页面mem_Page_1存储的页面分配表调入到外存管理页面Page_1;
步骤4.11,执行本次任务读写过程;
在执行本次任务读写过程中,内存管理页面mem_Page_1不再存储页面分配表,而是利用内存管理页面mem_Page_1的存储空间,存储临时全局变量;
其中,任务读写过程中,正常数据修改同时改变相应脏数据标识,如果脏数据标识与页面数据不对应,则判定为第三方在最小任务单元中修改数据,即页面为脏数据;
步骤4.12,本次任务读写完成后,采用以下方法,将内存页面置换到外存页面:
步骤4.12.1,将外存管理页面Page_1存储的页面分配表调入到内存管理页面mem_Page_1;
步骤4.12.2,根据任务号task_num1和页面号Page_num1,查找页面分配表,判断是否存在与任务号task_num1和页面号Page_num1对应的页面分配信息;如果不存在,则返回错误,由任务调度策略进行本次任务的任务启动并进行存储资源分配过程,即执行步骤3,或进行下一个任务读写过程;
如果存在,则执行步骤4.12.3;
步骤4.12.3,按脏数据机制判断页面号为Page_num1的内存存储页面,其在任务读写开始时调入的页面与任务读写完成时的页面是否形成脏数据,并向内存管理页面mem_Page_1存储的页面分配表的对应页面写入脏数据标识,由此形成新的页面分配表;
如果形成脏数据,则清空页面号为Page_num1的内存存储页面,然后执行步骤4.12.4;
如果没有形成脏数据,则将页面号为Page_num1的内存存储页面,调出到页面号为Page_num1的外存存储页面;然后执行步骤4.12.4;
步骤4.12.4,将内存管理页面mem_Page_1存储的最新的页面分配表调出到外存管理页面Page_1;
然后,内存管理页面mem_Page_1不再存储页面分配表,而是利用内存管理页面mem_Page_1的存储空间,存储临时全局变量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华北电力大学;国网浙江省电力有限公司宁波供电公司,未经华北电力大学;国网浙江省电力有限公司宁波供电公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111630744.8/1.html,转载请声明来源钻瓜专利网。





