CN114281721A - 有限资源系统内外存实时置换机制及映射管理方法 - Google Patents
有限资源系统内外存实时置换机制及映射管理方法 Download PDFInfo
- Publication number
- CN114281721A CN114281721A CN202111630744.8A CN202111630744A CN114281721A CN 114281721 A CN114281721 A CN 114281721A CN 202111630744 A CN202111630744 A CN 202111630744A CN 114281721 A CN114281721 A CN 114281721A
- Authority
- CN
- China
- Prior art keywords
- page
- task
- data
- memory
- external memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种有限资源系统内外存实时置换机制及映射管理方法,包括以下步骤:定义内存空间的存储管理结构;定义外存空间的存储管理结构;任务启动并进行存储资源分配过程;任务读写时内外存实时置换机制。本发明提供的一种有限资源系统内外存实时置换机制及映射管理方法具有以下优点:本发明提供一种有限资源系统内外存实时置换机制及映射管理方法,实现一种计算机系统功能运行时数据的映射算法,通过定义运行数据在内存空间与外存空间之间有序准确映射、按需实时置换的机制,扩展运行时可用的内存空间,有效实现了内存资源受限条件下完成大量密集型任务的技术需求。
Description
技术领域
本发明属于内外存读写优化技术领域,具体涉及一种有限资源系统内外存实时置换机制及映射管理方法。
背景技术
系统级软件运行时需要直接读写硬件存储器,才能支持系统功能执行。某些应用场合的硬件存储器的存储资源有限,特定系统功能运行一般需要高于某最低值的存储空间。具体的,硬件存储器通常由内存储器、外存储器两类构成。多数核心功能频繁读写操作数据结构,适合使用速度快容量小的内存储器;外存储器速度慢但容量大,具有掉电不易失性特点,适合存储需记录的大量数据。
实际应用中,某些系统功能需要频繁读写数据,从而需要远多于内存储器容量的存储支持,或者,在硬件规划时规划的预期内存储容量,小于系统功能实际需占用的内存储容量,从而导致内存储器容量对系统功能运行形成了限制。解决此问题的通常方法是:利用预留槽位扩展内存储器容量,或者,通过扩展总线扩展槽位并接兼容协议的内存模组,或者,利用应用网络兼容协议扩展网络形式内存设备。以上各种方法,增大了系统成本,并对系统兼容扩展性具有要求,因此具有一定的使用局限性。另外,还可以从软件角度进行解决,即:使用数据压缩算法压缩内存中结构化的数据,压缩效果表现在压缩率,不确定性较高,取决于数据结构和内容是否适宜压缩,此方法虽然能在一定程度上缓解内存空间限制,但具有稳定性差的问题。
发明内容
针对现有技术存在的缺陷,本发明提供一种有限资源系统内外存实时置换机制及映射管理方法,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种有限资源系统内外存实时置换机制及映射管理方法,包括以下步骤:
步骤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的存储空间,存储临时全局变量。
优选的,步骤4.11,执行本次任务读写过程,具体包括变量数据的寻址与读写操作,包括:
步骤4.11.1,定义寻址标识符var_addr(page,num),其中,page为页号,num为变量号;
定义变量长度标识符var_len(page,num);
步骤4.11.2,根据寻址标识符var_addr(page,num)和变量长度标识符var_len(page,num),查找页面号为Page_num_f1的内存存储页面,定位到本次读写的变量标识数据;
对变量标识数据进行数据读写操作。
优选的,页面属性信息还包括:页名称,用于存放页数据的名称信息;任务属性信息还包括:任务名称,用于存放任务相关的名称信息。
优选的,任务属性信息还包括:共享标志和共享数据长度;
共享标志,表示页面数据是否存在需共享数据;
共享数据长度,表明共享数据长度。
本发明提供的一种有限资源系统内外存实时置换机制及映射管理方法具有以下优点:
本发明提供一种有限资源系统内外存实时置换机制及映射管理方法,实现一种计算机系统功能运行时数据的映射算法,通过定义运行数据在内存空间与外存空间之间有序准确映射、按需实时置换的机制,扩展运行时可用的内存空间,有效实现了内存资源受限条件下完成大量密集型任务的技术需求。
附图说明
图1为本发明提供的外存空间和内存空间的结构和对应关系图;
图2为本发明提供的外存存储页面的空间组织管理和对应关系图;
图3为本发明提供的内存管理页面、内存存储页面与外存存储页面的对应关系图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
计算机系统软件或操作系统运行时,执行系统功能和操作需要相应数据存储的支持,由于系统级软件运行时需要频繁存取数据,并且,需要在较短时间内完成读写操作(对一个独立系统任务的数据读写简称任务读写),多通道并行总线支持的内存储器的快速读写和大带宽、高吞吐量的特点非常适宜系统级任务读写。某些系统功能的复杂操作机制需要大量良好设计的复杂结构化数据支持;有一些应用场合,由于硬件条件限制导致物理内存容量有限,如只能使用单片机或MCU的高强度工控环境。因此,既要完成复杂功能支持任务读写,又存在物理内存资源受限的情况,此时,通过扩展物理内存不可行,压缩数据更不具确定性,为解决以上问题,本发明提供一种有限资源系统内外存实时置换机制及映射管理方法,实现一种计算机系统功能运行时数据的映射算法,通过定义运行数据在内存空间与外存空间之间有序准确映射、按需实时置换的机制,扩展运行时可用的内存空间,有效实现了内存资源受限条件下完成大量密集型任务的技术需求。
本发明提供一种有限资源系统内外存实时置换机制及映射管理方法,能够有效执行的前提条件是基于以下假设:
(1)系统需要执行的任务单元相互独立(即任务间没有逻辑关系,没有关键数据的共享);
(2)单个或几个任务读写需要的最大内存可以由系统物理内存支持;
(3)对任务单元的处理要求迅速无间断,任务单元间的切换有一定容忍;
(4)系统的任务单元大量且密集,或者突发、闲置状态不定。
本发明提供的有限资源系统内外存实时置换机制及映射管理方法,包括以下步骤:
步骤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.11.1,定义寻址标识符var_addr(page,num),其中,page为页号,num为变量号;
定义变量长度标识符var_len(page,num);
步骤4.11.2,根据寻址标识符var_addr(page,num)和变量长度标识符var_len(page,num),查找页面号为Page_num_f1的内存存储页面,定位到本次读写的变量标识数据;
对变量标识数据进行数据读写操作。
步骤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的存储空间,存储临时全局变量。
下面介绍一个实施例:
步骤1,定义内存空间的存储管理结构,包括:
步骤1.1,内存空间的存储容量V1为4K=4096字节,定义单个内存页面的存储容量W1为1K=1024字节,从而将内存空间划分为4个内存页面,依次表示为:mem_Page_1,mem_Page_2,mem_Page_3,mem_Page_4;
步骤1.2,第1个内存页面mem_Page_1称为内存管理页面mem_Page_1;mem_Page_2,mem_Page_3,mem_Page_4称为内存存储页面;
步骤1.3,定义内存管理页面mem_Page_1的管理结构;
内存管理页面mem_Page_1划分为外存管理结构存储区域以及全局变量存储区域;
步骤2,定义外存空间的存储管理结构,方法为:
步骤2.1,定义单个外存页面Page的存储容量与单个内存页面mem_Page的存储容量相等,均为1K=1024字节;
将外存空间按照页面1K划分为多个外存页面,例如,单片机外存空间为56K,进而划分为56个外存页面。
步骤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存储以下页面管理信息:页面属性信息和任务属性信息。外存管理页面Page_1采用页面分配表方式存储,每个外存存储页面的页面管理信息为29字节,外存管理页面Page_1为1024字节,因此,外存管理页面Page_1可存储最多30个外存存储页面的页面管理信息(占用29×30=1015字节)。
每个外存存储页面的页面管理信息,其C语言的管理结构如下:
其中:
页面号page_num:定义页面编号,可通过页长度1024定位页的首地址,用于调载和存置外存存储页面;
页名称page_name:标识页数据的名称信息;
外存存储页面中的数据变量标识使用偏移+长度的方式组织;
页存储变量数var_def_num:用于记录变量个数,用于识别解析各数据变量;
任务号task_num:标识页中数据对应的任务读写的编号,使存储页面和任务对应相关;
任务名称信息task_name:标识页相关任务的名称;
任务优先级task_prior:标识页相关任务读写运行的优先度,提供任务页面调配策略的参考;
共享标志shared_var:标识页中数据是否有需共享部分;
共享数据长度shared_def_num:标明共享部分数据长度;
脏数据标识dirty:标明页中数据当前状态是否为“脏”数据,即是否不可恢复修改或是否超时失效,作为数据清空或调节使用的标识;
页数据任务读写起始时间valid_start_time和页数据任务读写持续时间valid_duration:标识存储页面开始使用的时刻和页面有效的最大持续时间,用以保证实时数据处理的有效。
外存空间和内存空间的结构和对应关系如图1。
步骤2.4,定义外存存储页面Page_2,...,Page_m的存储结构,如图2所示,包括:
步骤2.4.1,外存存储页面Page_2,...,Page_m的页面首部,用于存储对应的页面属性信息和任务属性信息;
页面首部信息结构定义如下:
其中:
页面信息结构标明页面数据使用、页面对应任务读写执行时需要的标识。
页面号page_num:在页面处理时标识页面,用于页面定位首地址和任务读写执行时判断对应页面,页面号的值,同页面管理信息中page_num项;
任务号task_num:标识页面对应任务号,结合页面编号判断任务执行中对应页面,任务号的值,同页面管理信息task_num项;
共享标志shared_pos:记录页面中共享数据的访问标识的起始位置,如果没有共享数据,值置-1;
共享变量数量shared_num:标识共享数据在起始位置开始的长度;
脏数据机制标识modify_flag:标明页面是否适用修改无效、变动清空的“脏”数据机制;
实时机制标识valid_realtime:标明页面是否适用确定有效起止时间的实时数据机制。
步骤2.4.2,在页面首部后面,连续存储页面数据的变量标识,用于寻址读变量和按址写变量;
例如,变量标识使用2字节偏移+2字节长度{offset,len}的形式,用于寻址读变量和按址写变量。
步骤2.4.3,从页面尾部开始,逐渐向低地址延伸,写入变量数据内容;其中:变量标识和变量内容成对存放;
因此,变量数据内容实际存放在变量标识空间之后,其中,变量标识在页信息结构之后开始向高地址延伸,变量数据内容在页面尾部开始向低地址延伸。对应的变量标识和变量内容成对存放向页中间方向最大利用空间。外存存储页面的空间组织管理和对应关系如图2。
步骤3,任务启动并进行存储资源分配过程;
步骤4,任务读写时内外存实时置换机制;
任务读写时内外存实时置换机制的主要原理为:
内存受限系统执行任务读写时,将外存管理页面Page_1存储的页面分配表调入内存管理页面mem_Page_1进行页面数据支持任务的辨识调配,内存管理页面mem_Page_1中同时存储页面分配表和系统定义的全局变量,其中,全局变量存放在页面分配表之后,用于存储系统运行的必须变量和任务相关的临时全局变量。在内存管理页面mem_Page_1调配后,将内存管理页面mem_Page_1存储的页面分配表存放到外存空间,从而释放内存管理页面mem_Page_1的内存空间,任务读写开始前,临时全局变量存放在内存管理页面mem_Page_1内,以此充分利用内存空间。任务读写执行时,根据任务对应的页面号,将相应的外存存储页面调入到内存中对应的内存存储页面,独立迅速完成一组任务读写,同时按调度策略和任务优先级,选择接下来的任务读写并调入存储页面。
例如,4K内存空间划分为4个内存页面,其中,内存管理页面mem_Page_1为1K内存空间,用于存放全局变量和页面分配表;其他3K空间划分为三个内存存储页面,可调入外存空间的3个外存存储页面进行任务读写;外存空间有30K以上,划分为30个外存页面,以单任务数据使用空间1~3K为标准,此条件下运行内外存实时置换机制,可处理10~30个并发运行的任务,任务密集迅速情况下任务读写持续转换,预计可处理达100任务/秒的任务吞吐量。内存管理页面、内存存储页面与外存存储页面的对应关系如图3。
任务读写时内外存实时置换机制:在任务处理执行中,任务处理装载任务开始,查看任务相关存储页面是否在内存中,如果在内存中,则直接执行任务读写,内存数据支持任务进行;如果不在内存中,则将外存存储的对应的外存存储页面调入到内存存储页面,执行数据检查和验证机制,调配处理页面数据,再执行相关的任务读写。
任务读写完成或任务执行结束,按调度策略和任务优先级判断接下来的任务,此时,如果内存空间剩余不足,则将执行完任务读写的内存存储页面映射存放到对应的外存存储页面;如果内存有足够剩余空间,则暂不置换页面,在内存中存放。
定义两种内外存置换执行操作permute_inner_mem_to_ext(page,task,dirty,current)和permute_inner_mem_from_ext(page,task,*dirty,current),分别执行任务读写调度时内存存储页面置换外存存储页面和任务读写启动时调入相关外存存储页面的功能。参数page标识进行置换的页面号;task标识页面对应任务号;dirty标识页面调入时读数据是否经调节,页面置换出时指明是否调节,通过页面信息结构脏数据机制标识modify_flag判断是否执行脏数据机制进行清空调节;current参考当前时间,页面调入和页面置换出内存时检查页面数据是否过时,通过实时机制标识valid_realtime判断是否执行实时机制页面超时数据弃置。
调入外存存储页面执行实现过程:
步骤4.1,在任务调度过程中,当需要调度执行一个任务task1进行读写操作时,获取任务task1的任务号task_num1;
步骤4.2,将当前的外存管理页面Page_1存储的页面分配表(共29×30=1015字节)调入内存管理页面mem_Page_1的外存管理结构存储区域;
步骤4.3,根据任务号task_num1,查找内存管理页面mem_Page_1中的页面分配表,从页面分配表中读取到与任务号task_num1对应的外存存储页面的页面号Page_num1;
步骤4.3,根据任务号task_num1,查找内存管理页面mem_Page_1中的页面分配表,从页面分配表中读取到与任务号task_num1对应的外存存储页面的页面号Page_num1;
步骤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的外存存储页面调入到内存空间中的某个内存存储页面,即:页面首地址的1024字节放在某个内存存储页面空位,此时,该内存存储页面的页面号同样为Page_num1,即:建立了内存存储页面和外存存储页面的映射;
然后执行步骤4.8;
步骤4.8,在内存空间中,读取页面号为Page_num1的内存存储页面,获得页面内容管理信息,根据脏数据机制标识和实时机制标识,判断是否执行脏数据机制和实时机制;如果不执行,则执行步骤4.10;
如果执行,则执行步骤4.9;
步骤4.9,检查页面号为Page_num1的内存存储页面的数据是否为脏数据,以及,是否符合页面时效性要求;如果不是脏数据,并且,符合页面时效性要求,则执行步骤4.10;
如果为脏数据,则执行脏数据处理流程;如果不符合页面时效性要求,则执行实时机制超时处理流程;
其中:脏数据处理流程和实时机制超时处理流程相同,均为:将内存管理页面mem_Page_1中的页面分配表中对应的页面分配信息清空,将对应的内存存储页面的页面标识置为不可用状态;然后执行步骤4.10;
例如:脏数据处理流程可以为:读取页面管理结构的脏数据标识dirty,指针返回,判断脏数据标识dirty和页面信息结构脏数据机制标识modify_flag。
如果modify_flag=1且dirty=1,则执行“脏”数据处理(清空或调节页面);然后执行步骤4.10;
如果modify和dirty为其他值,直接执行步骤4.10;
实时机制超时处理流程可以为:
判断当前时间current和页面管理结构的valid_start_time和valid_duration,参考页面信息结构实时机制标识valid_realtime判断页面时效性。
如valid_realtime为1,判断起始时间、持续时间和系统当前时间确定任务读写是否超时,页面是否有效。
页面数据超时,不符合实时机制,执行实时机制超时弃置,清空内存页面中数据,然后执行步骤4.10;。
valid_realtime为0,或valid_realtime为1且页面数据未超时,直接执行步骤4.10;
步骤4.10,将内存管理页面mem_Page_1存储的页面分配表调入到外存管理页面Page_1;
内存管理页面mem_Page_1前1015字节开始用于临时全局变量。
标识内存中调入的页面为使用中数据,标识存在全局变量。
步骤4.11,执行本次任务读写过程;
在执行本次任务读写过程中,内存管理页面mem_Page_1不再存储页面分配表,而是利用内存管理页面mem_Page_1的存储空间,存储临时全局变量;
其中,任务读写过程中,正常数据修改同时改变相应脏数据标识,如果脏数据标识与页面数据不对应,则判定为第三方在最小任务单元中修改数据,即页面为脏数据;
本步骤中,执行本次任务读写过程,具体包括变量数据的寻址与读写操作,包括:
步骤4.11.1,定义寻址标识符var_addr(page,num),其中,page为页号,num为变量号;定义变量长度标识符var_len(page,num);
步骤4.11.2,根据寻址标识符var_addr(page,num)和变量长度标识符var_len(page,num),查找页面号为Page_num_f1的内存存储页面,定位到本次读写的变量标识数据;
对变量标识数据进行数据读写操作。
例如:
定义寻址标识符var_addr(page,num)返回void*地址,标识变量在内存中的绝对地址,其中,page为页号,num为变量号;定义变量长度标识符var_len(page,num)返回16位整数标识变量长度,参数同var_addr。
寻址标识符和长度标识符用于标识确定存储页面的确定变量,其作用与语言定义的变量读写语句相同,通过变量地址和长度读写存储页面中存储的变量。寻址实现的方式可以为:
1)查找变量标识,在页面信息结构后开始,按变量标识2字节+2字节长度,定位寻址标识符第二个参数变量号num指变量的标识。
2)变量标识前2字节表示变量存放位置距页面首地址的偏移,通过页面首地址标识PAGE_ADDRESS计算出变量位置首地址在内存空间地址。
3)内存空间地址以void*类型返回。
长度的实现方式与前述寻址方式相同,变量标识后2字节表示长度,步骤3)以int16类型返回。
内存置换外存执行实现过程:
步骤4.12,本次任务读写完成后,采用以下方法,将内存页面置换到外存页面:
步骤4.12.1,将外存管理页面Page_1存储的页面分配表(占用29×30=1015字节)调入到内存管理页面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前1015字节开始用于临时全局变量。
然后,内存管理页面mem_Page_1不再存储页面分配表,而是利用内存管理页面mem_Page_1的存储空间,存储临时全局变量。
本发明提供的有限资源系统内外存实时置换机制及映射管理方法,重点保护以下内容:
(一)页面管理结构自组织管理外存页面的设计方法。
(二)页面信息结构和页空间分配方法,以及实现有效检查的脏数据处理机制和实时机制。
(三)内外存页面的映射机制,以及全局变量和临时全局变量分时共用内存管理页面空间的技术。
(四)系统任务读写间接寻址变量进行读写操作,绝对地址对应变量号同相对地址的映射技术。
(五)任务读写调度同优先级进行任务选择,任务读写调入外存存储页面和读写完成存入外存存储页面的内外存数据实时置换技术。
(六)基于以上技术实现的内存资源有限硬件系统执行大量密集型任务的技术。
本发明提供的有限资源系统内外存实时置换机制及映射管理方法,通过内外存实时置换机制对计算机系统级任务执行中的数据变量存储进行优化调度,使任务执行中的数据读写需要的必要和需快速处理的数据在内存中支持任务功能,暂停待机任务的数据存储在空间相对大的外存中,并建立了完善的映射及置换机制和管理调度方法。本发明实现了硬件资源有限、内存资源受限制的条件下系统执行大量密集型任务,并稳定有效高速运行的效果。在某些条件的系统中,如单片机支持的系统或单板Soc或嵌入式硬件资源有限的形式,同时需极端环境运行时的场合中,典型适用且效果良好。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (4)
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的存储空间,存储临时全局变量。
2.根据权利要求1所述的有限资源系统内外存实时置换机制及映射管理方法,其特征在于,步骤4.11,执行本次任务读写过程,具体包括变量数据的寻址与读写操作,包括:
步骤4.11.1,定义寻址标识符var_addr(page,num),其中,page为页号,num为变量号;
定义变量长度标识符var_len(page,num);
步骤4.11.2,根据寻址标识符var_addr(page,num)和变量长度标识符var_len(page,num),查找页面号为Page_num_f1的内存存储页面,定位到本次读写的变量标识数据;
对变量标识数据进行数据读写操作。
3.根据权利要求1所述的一种有限资源系统内外存实时置换机制及映射管理方法,其特征在于,页面属性信息还包括:页名称,用于存放页数据的名称信息;任务属性信息还包括:任务名称,用于存放任务相关的名称信息。
4.根据权利要求1所述的一种有限资源系统内外存实时置换机制及映射管理方法,其特征在于,任务属性信息还包括:共享标志和共享数据长度;
共享标志,表示页面数据是否存在需共享数据;
共享数据长度,表明共享数据长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111630744.8A CN114281721A (zh) | 2021-12-28 | 2021-12-28 | 有限资源系统内外存实时置换机制及映射管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111630744.8A CN114281721A (zh) | 2021-12-28 | 2021-12-28 | 有限资源系统内外存实时置换机制及映射管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114281721A true CN114281721A (zh) | 2022-04-05 |
Family
ID=80877403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111630744.8A Pending CN114281721A (zh) | 2021-12-28 | 2021-12-28 | 有限资源系统内外存实时置换机制及映射管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281721A (zh) |
-
2021
- 2021-12-28 CN CN202111630744.8A patent/CN114281721A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6587915B1 (en) | Flash memory having data blocks, spare blocks, a map block and a header block and a method for controlling the same | |
US6470436B1 (en) | Eliminating memory fragmentation and garbage collection from the process of managing dynamically allocated memory | |
US9086920B2 (en) | Device for managing data buffers in a memory space divided into a plurality of memory elements | |
US20170075818A1 (en) | Memory management method and device | |
US7949839B2 (en) | Managing memory pages | |
WO1984002013A1 (en) | Adaptive domain partitioning of cache memory space | |
EP2645259A1 (en) | Method, device and system for caching data in multi-node system | |
US11989588B2 (en) | Shared memory management method and device | |
CN112465689B (zh) | 基于可见显存交换区的gpu不可见显存管理方法及系统 | |
US7434026B2 (en) | Disk array device and virtual volume management method using a logical table and a physical table | |
CN115629882A (zh) | 多进程中的内存的管理方法 | |
CN115269450A (zh) | 内存协同管理系统和方法 | |
CN110674051A (zh) | 一种数据存储方法及装置 | |
CN113434470A (zh) | 数据分布方法、装置及电子设备 | |
CN117215485A (zh) | Zns ssd管理方法及数据写入方法、存储装置、控制器 | |
CN109783145B (zh) | 一种创建基于多映像的多功能嵌入式系统的方法 | |
CN114281721A (zh) | 有限资源系统内外存实时置换机制及映射管理方法 | |
JPH07248967A (ja) | メモリ制御方式 | |
WO2023029982A1 (zh) | 一种内存的分配方法及系统 | |
CN116225693A (zh) | 元数据管理方法、装置、计算机设备及存储介质 | |
JP3875358B2 (ja) | 記憶装置、記憶方法および記録媒体 | |
US20080270676A1 (en) | Data Processing System and Method for Memory Defragmentation | |
CN116166606B (zh) | 基于共享紧耦合存储器的高速缓存控制架构 | |
CN117435352B (zh) | 一种定长变长数据混合管理的轻量化内存优化分配方法 | |
JP3542894B2 (ja) | ファイルシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |