一种嵌入式系统分区的动态调整方法和装置制造方法
【专利摘要】本发明提供了一种嵌入式系统分区的动态调整方法和装置,方法包括:获知当前分区的存储空间不足时,确定当前分区的存储空间需求量,并获取嵌入式系统中其它所有分区信息;根据其它所有分区信息判断嵌入式系统中是否存在满足当前分区的存储空间需求量的剩余存储空间,如果是,则根据当前分区的存储空间需求量对其它各分区进行数据搬移和存储空间调整以获得与当前分区相邻且满足当前分区的存储空间需求量的剩余存储空间,并将剩余存储空间并入当前分区。本发明通过动态调整分区达到合理利用存储空间的目的。
【专利说明】一种嵌入式系统分区的动态调整方法和装置
【技术领域】
[0001]本发明涉及数据存储【技术领域】,特别涉及一种嵌入式系统分区的动态调整方法和装置。
【背景技术】
[0002]现在的嵌入式系统中,存储分区固定,当某个特定功能的分区空间不足时,依赖该分区的操作无法正常进行。例如,在嵌入式系统升级过程中,主要操作就是将新的嵌入式系统的系统镜像写入待升级的嵌入式系统的系统分区中。随着嵌入式系统版本的升高,系统镜像的大小以及所需要的系统分区的大小都会变大,当原有的系统分区大小不足时,就无法进行更新版本的系统升级。
[0003]另一方面,当某个特定功能的分区空间不足导致依赖该分区的操作不能正常进行时,其它分区可能存在空闲空间,但是这些空闲空间却无法被该特定功能的分区使用,从而也造成存储空间的不合理使用。
【发明内容】
[0004]有鉴于此,本发明的目的在于提供一种嵌入式系统分区的动态调整方法和装置,通过分区动态调整来合理利用嵌入式系统的存储空间。
[0005]为了达到上述目的,本发明提供了了如下技术方案:
[0006]一种嵌入式系统分区的动态调整方法,包括:
[0007]获知当前分区的存储空间不足时,确定当前分区的存储空间需求量,并获取嵌入式系统中其它所有分区信息;
[0008]根据其它所有分区信息判断嵌入式系统中是否存在满足当前分区的存储空间需求量的剩余存储空间,如果是,则根据当前分区的存储空间需求量对其它各分区进行数据搬移和存储空间调整以获得与当前分区相邻且满足当前分区的存储空间需求量的剩余存储空间,并将剩余存储空间并入当前分区。
[0009]一种嵌入式系统分区的动态调整装置,包括:
[0010]获取单元,用于获知当前分区的存储空间不足时,确定当前分区的存储空间需求量,并获取嵌入式系统中其它所有分区信息;
[0011]判断单元,用于根据其它所有分区信息判断嵌入式系统中是否存在满足当前分区的存储空间需求量的剩余存储空间;
[0012]处理单元,用于嵌入式系统中存在满足当前分区的存储空间需求量的剩余存储空间时,根据当前分区的存储空间需求量对其它各分区进行数据搬移和存储空间调整以获得与当前分区相邻且满足当前分区的存储空间需求量的剩余存储空间,并将剩余存储空间并入当前分区。
[0013]由上面的技术方案可知,本发明中,当一个分区的存储空间不足时,通过对其他分区的数据搬移和存储空间调整,可以将其他分区的剩余存储空间并入到存储空间不足的分区,使得依赖该分区的分区操作可以得以继续执行。可见,本发明可以通过分区动态调整来达到合理利用嵌入式系统的存储空间的目的。
【专利附图】
【附图说明】
[0014]图1是本发明实施例嵌入式系统分区的动态调整方法流程图;
[0015]图2是本发明实施例分区分布示意图;
[0016]图3是本发明实施例分区中数据搬移前后对照示意图;
[0017]图4是本发明实施例一调整后的分区分布示意图;
[0018]图5是本发明实施例二调整后的分区分布示意图;
[0019]图6是本发明实施例嵌入式系统分区的动态调整装置的结构示意图。
【具体实施方式】
[0020]为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并据实施例,对本发明的技术方案进行详细说明。
[0021]参见图1,图1是本发明实施例嵌入式系统分区的动态调整方法流程图,如图1所示,该方法主要包括以下步骤:
[0022]步骤101、获知当前分区的存储空间不足时,确定当前分区的存储空间需求量,并获取嵌入式系统中其它所有分区信息。
[0023]本实施例中,所述分区信息包括:分区标识、分区的文件系统类型、已用空间、未用空间(也即剩余存储空间)等信息。由于嵌入式系统会记录各分区的使用情况,包括已用空间和未用空间等信息,因此,可以通过读取这些信息来获得所有分区信息。
[0024]获知当前分区的存储空间不足的方法有多种,例如,
[0025]用户主动向嵌入式系统发送针对目标分区的存储空间请求。用户的存储空间请求中可携带目标分区和目标分区的存储空间需求量,其中,目标分区为存在空间不足的分区,目标分区的存储空间需求量表示目标分区当前需要补足的存储空间量。当嵌入式系统接收到用户的存储空间请求时,就可以确定存储空间请求中的目标分区存在分区空间不足的情况,以及需要补足的存储空间大小。
[0026]另外,当执行分区操作时,分区操作所需的存储空间确定,在执行分区操作前,可以先将分区操作所需的存储空间和分区操作所依赖的分区的剩余存储空间的大小进行比较,当分区操作所需的存储空间大于分区操作所依赖的分区的剩余存储空间时,可确定分区操作所依赖的分区空间不足。
[0027]因此,本步骤中,当嵌入式系统接收到用户发送的针对当前分区的存储空间请求,或,确定依赖当前分区的分区操作所需的存储空间超出当前分区的剩余存储空间时,可确定当前分区空间不足。
[0028]本实施例中,分区的存储空间需求量,也即分区需要补足的存储空间,例如,当分区操作需要2G存储空间,而分区的剩余存储空间仅有IG时,则分区空间需求量为1G,也即还需要再为分区补足IG的存储空间。
[0029]步骤102、根据其它所有分区信息判断嵌入式系统中是否存在满足当前分区的存储空间需求量的剩余存储空间,如果是,则根据当前分区的存储空间需求量对其它各分区进行数据搬移和存储空间调整以获得与当前分区相邻且满足当前分区的存储空间需求量的剩余存储空间,并将剩余存储空间并入当前分区。
[0030]本步骤中,根据其它所有分区信息判断嵌入式系统中是否存在满足当前分区的存储空间需求量的剩余存储空间的方法为:如果其它所有分区的剩余存储空间总和大于当前分区的存储空间需求量,则确定嵌入式系统中存在满足当前分区的存储空间需求量的剩余存储空间。
[0031]当确定嵌入式系统存在满足当前分区的存储空间需求量的剩余存储空间时,可以先从其它所有分区中选出剩余存储空间总和大于当前分区的存储空间需求量的N个分区,将选出的每个分区的数据向该分区中偏离当前分区的方向搬移以获得该分区中连续的剩余存储空间;然后基于所述N个分区中连续的剩余存储空间,将所述N个分区中距离当前分区最远的一个分区到当前分区之间的每个分区的数据向偏离当前分区的方向搬移并进行分区表修改,得到与当前分区相邻且满足当前分区的存储空间需求量的剩余存储空间。其中,N为大于0,且小于嵌入式系统的分区个数的整数。
[0032]得到与当前分区相邻且满足当前分区的存储空间需求量的剩余存储空间后,可以将得到的剩余存储空间并入当前分区,从而解决当前分区的存储空间不足问题。
[0033]在实际应用中,嵌入式系统在运行过程中存在断电的可能性,当嵌入式系统中某个分区的数据进行搬移时,如果发生断电,则会造成正在搬移的数据块的数据丢失,为了避免数据丢失,可以在对分区中的数据进行搬移的过程中,对该分区中的数据执行断电保护。
[0034]在对分区的数据进行搬移的过程中,对该分区中的数据执行断电保护的方法为:在对该分区中每个数据块进行搬移前,保存该分区的文件系统中该数据块对应的元数据,并在该数据块搬移成功后,根据搬移到的位置更新该分区的文件系统中该数据块对应的元数据;其中,所述数据块对应的元数据包括该数据块的起始位置等属性信息;
[0035]通过上述断电保护措施,当对分区中每个数据块进行搬移时,如果嵌入式系统发生断电重启,则在断电重启后,可以根据保存的该分区的文件系统中该数据块对应的元数据,重新对该数据块进行搬移,从而避免该数据块的数据丢失。
[0036]下面通过具体的例子,对图1所示本发明实施例进行详细说明。
[0037]参见图2,图2是本发明实施例嵌入式系统的分区分布示意图,包括A、B、C、D四个分区,其中分区A、B、C、D的存储空间分别为4G、8G、8G、8G,已用空间分别为3G、6G、7G、1G,未用空间(剩余存储空间)分别为16、26、16、76,存储位置分别为06-46、46-126、126-206、20G-28G。
[0038]当某个依赖分区A的分区操作,例如系统版本升级,所需的存储空间为4G时,可以确定分区A的存储空间不足,且分区A的存储空间需求量为4G-1G = 3G。
[0039]由于分区B、C、D的剩余存储空间总和为10G,大于分区A的存储空间需求量,因此,嵌入式系统中存在满足分区A的存储空间需求量的剩余存储空间。
[0040]于是,可以从分区B、C、D中选出剩余存储空间总和大于分区A的存储空间需求量的N个分区,共有五种可能的选择结果:
[0041](I)仅选择一个分区D。
[0042](2)选择分区 B、C、D。
[0043](3)选择分区 A、B。
[0044](4)选择分区 B、D。
[0045](5)选择分区 C、D。
[0046]针对第(I)中情况,数据搬移和存储空间调整过程如下:
[0047]先将分区D中分散的数据向分区D中偏离分区A的方向搬移,从而将分区D中的剩余存储空间集中到分区D的起始位置且形成连续的剩余存储空间,搬移结果具体如图3所示。
[0048]接着,修改分区表中分区D对应的表项信息,使得分区D的总存储空间改变为5G,存储位置为23G-28G,已用空间为1G、未用空间为4G,从而将分区D中的3G剩余存储空间(也即从第20G到23G之间的存储空间)从分区D中独立出来。
[0049]再接着,基于从分区D独立出来的3G存储空间,将分区C的中的数据向偏离分区A的方向搬移,并修改分区表中分区C对应的表项信息,使得分区C的总存储空间、已用空间和未用空间均保持不变,但存储位置变为第15G-23G。此时,第12G到15G之间的存储空间独立出来,不属于任何已有分区。
[0050]再接着,将分区B的中的数据向偏离分区A的方向搬移,并修改分区表中分区B对应的表项信息,使得分区B的总存储空间、已用空间和未用空间均保持不变,但存储位置变为第7G-15G。此时,第4G到7G之间的存储空间独立出来,不属于任何已有分区。
[0051]最后,修改分区表中分区A对应的表项信息,将第4G到7G之间的存储空间并入分区A。最终分区A的总存储空间为7G,存储位置变为第0G-7G、已用空间为3G、未用空间为4G,可以满足系统版本升级所需的存储空间。
[0052]依据上述针对第(I)情况的数据搬移和存储空间调整过程,最终得到如图4所示的分区分布示意图。
[0053]此后,可以利用扩展了存储空间后的分区A进行系统版本升级。
[0054]针对第⑵种情况,以从每个分区中独立出IG剩余存储空间为例,数据搬移和存储空间调整过程如下:
[0055]分别将分区B、C、D中分散的数据向各自分区中偏离分区A的方向搬移,从而将分区B、C、D中的剩余存储空间集中到各自分区的起始位置且形成连续的剩余存储空间。
[0056]接着,修改分区表中分区D对应的表项信息,使得分区D的总存储空间变为7G,存储位置为21G-28G,已用空间为1G、未用空间为6G,从而将分区D中的IG剩余存储空间(也即从第20G到21G之间的存储空间)从分区D中独立出来。
[0057]再接着,基于从分区D独立出来的IG存储空间,将分区C的中的数据向偏离分区A的方向搬移,并修改分区表中分区C对应的表项信息,使得分区C的总存储空间改变为7G,已用空间为7G,未用空间变为0G,存储位置变为第14G-21G。此时,第12G到14G之间的存储空间独立出来,不属于任何已有分区。
[0058]再接着,将分区B的中的数据向偏离分区A的方向搬移,并修改分区表中分区B对应的表项信息,使得分区B的总存储空间变为7G,已用空间为6G,未用空间变为1G,存储位置变为第7G-14G。此时,第4G到7G之间的存储空间独立出来,不属于任何已有分区。
[0059]最后,修改分区表中分区A对应的表项信息,将第4G到7G之间的存储空间并入分区A。最终分区A的总存储空间为7G,已用空间为3G、未用空间为4G,存储位置变为第0G-7G,可以满足系统版本升级所需的存储空间。
[0060]依据上述针对第(2)情况的数据搬移和存储空间调整过程,最终得到如图5所示的分区分布示意图。
[0061]此后,可以利用扩展了存储空间后的分区A进行系统版本升级。
[0062]针对第⑶、⑷、(5)中情况的数据搬移和存储空间调整过程与针对第⑴、(2)种情况的处理原理相同,不再赘述。
[0063]需要说明的是,上述针对第(I)、(2)种情况的数据搬移和存储空间调整过程并不是绝对的,例如,针对第(2)中情况,还可以先修改分区表中分区B、C、D对应的表项信息,将3个分区中的IG剩余存储空间独立出来,然后再进行数据搬移和分区表修改,也可以达到同样的目的。而且,从各分区独立出来的剩余存储空间的大小也可以不相同,例如按照各分区剩余存储空间的比例来确定需要从各分区独立出来的剩余存储空间大小。但是,基本原理都是相同的,也即,均是通过数据搬移和分区表修改,将与分区A相邻的3G存储空间独立出来,然后通过分区表将这3G空间并入分区A。
[0064]以上对本发明嵌入式系统分区的动态调整方法进行了详细说明,本发明还提供了一种嵌入式系统分区的动态调整装置,下面结合图6进行说明。
[0065]参见图6,图6是本发明实施例嵌入式系统分区的动态调整装置的结构示意图,如图6所示,该装置包括:
[0066]获取单元601,用于获知当前分区的存储空间不足时,确定当前分区的存储空间需求量,并获取嵌入式系统中其它所有分区信息;
[0067]判断单元602,用于根据其它所有分区信息判断嵌入式系统中是否存在满足当前分区的存储空间需求量的剩余存储空间;
[0068]处理单元603,用于嵌入式系统中存在满足当前分区的存储空间需求量的剩余存储空间时,根据当前分区的存储空间需求量对其它各分区进行数据搬移和存储空间调整以获得与当前分区相邻且满足当前分区的存储空间需求量的剩余存储空间,并将剩余存储空间并入当前分区。
[0069]图6所示装置中,
[0070]所述获取单元601获知当前分区的存储空间不足时,用于:接收到用户发送针对当前分区的存储空间请求,或,确定依赖当前分区的分区操作所需的存储空间超出当前分区的剩余存储空间时,确定当前分区的存储空间不足;
[0071]其中,所述存储空间请求携带目标分区和目标分区的存储空间需求量。
[0072]图6所示装置中,
[0073]所述判断单元602根据其它所有分区信息判断嵌入式系统中是否存在满足当前分区的存储空间需求量的剩余存储空间时,用于:如果其它所有分区的剩余存储空间总和大于当前分区的存储空间需求量,则确定嵌入式系统中存在满足当前分区的存储空间需求量的剩余存储空间。
[0074]图6所示装置中,
[0075]所述处理单元603根据当前分区的存储空间需求量对其它各分区进行数据搬移和存储空间调整以获得与当前分区相邻且满足当前分区的存储空间需求量的剩余存储空间时,用于:
[0076]从其它所有分区中选出剩余存储空间总和大于当前分区的存储空间需求量的N个分区,将选出的每个分区的数据并向该分区中偏离当前分区的方向搬移以获得该分区中连续的剩余存储空间;
[0077]基于所述N个分区中连续的剩余存储空间,对所述N个分区中距离当前分区最远的一个分区到当前分区之间的每个分区的数据进行搬移并进行分区表修改,得到与当前分区相邻且满足当前分区的存储空间需求量的剩余存储空间;
[0078]其中,N为大于0,且小于嵌入式系统的分区个数的整数。
[0079]图6所示装置中,
[0080]所述处理单元603对分区的数据进行搬移的过程中,对该分区中的数据执行断电保护。
[0081]图6所示装置中,
[0082]所述处理单元603对分区的数据进行搬移的过程中,对该分区中的数据执行断电保护时,用于:在对该分区中每个数据块进行搬移前,保存该分区的文件系统中该数据块对应的元数据,并在该数据块搬移成功后,更新该分区的文件系统中该数据块对应的元数据;其中,所述数据块对应的元数据包括该数据块的起始位置;
[0083]所述处理单元603,进一步用于:在对分区中每个数据块进行搬移时,如果嵌入式系统发生断电重启,则在断电重启后,根据保存的该分区的文件系统中该数据块对应的元数据,重新对该数据块进行搬移。
[0084]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种嵌入式系统分区的动态调整方法,其特征在于,该方法包括: 获知当前分区的存储空间不足时,确定当前分区的存储空间需求量,并获取嵌入式系统中其它所有分区信息; 根据其它所有分区信息判断嵌入式系统中是否存在满足当前分区的存储空间需求量的剩余存储空间,如果是,则根据当前分区的存储空间需求量对其它各分区进行数据搬移和存储空间调整以获得与当前分区相邻且满足当前分区的存储空间需求量的剩余存储空间,并将剩余存储空间并入当前分区。
2.根据权利要求1所述的方法,其特征在于, 获知当前分区的存储空间不足的方法为:接收到用户发送针对当前分区的存储空间请求,或,确定依赖当前分区的分区操作所需的存储空间超出当前分区的剩余存储空间时,确定当前分区的存储空间不足; 其中,所述存储空间请求携带目标分区和目标分区的存储空间需求量。
3.根据权利要求1所述的方法,其特征在于, 根据其它所有分区信息判断嵌入式系统中是否存在满足当前分区的存储空间需求量的剩余存储空间的方法为:如果其它所有分区的剩余存储空间总和大于当前分区的存储空间需求量,则确定嵌入式系统中存在满足当前分区的存储空间需求量的剩余存储空间。
4.根据权利要求3所述的方法,其特征在于, 根据当前分区的存储空间需求量对其它各分区进行数据搬移和存储空间调整以获得与当前分区相邻且满足当前分区的存储空间需求量的剩余存储空间的方法为: 从其它所有分区中选出剩余存储空间总和大于当前分区的存储空间需求量的N个分区,将选出的每个分区的数据向该分区中偏离当前分区的方向搬移以获得该分区中连续的剩余存储空间; 基于所述N个分区中连续的剩余存储空间,将所述N个分区中距离当前分区最远的一个分区到当前分区之间的每个分区的数据向偏离当前分区的方向搬移并进行分区表修改,得到与当前分区相邻且满足当前分区的存储空间需求量的剩余存储空间; 其中,N为大于O,且小于嵌入式系统的分区个数的整数。
5.根据权利要求4任一权项所述的方法,其特征在于, 对分区中的数据进行搬移的过程中,对该分区中的数据执行断电保护。
6.根据权利要求5所述的方法,其特征在于, 对分区的数据进行搬移的过程中,对该分区中的数据执行断电保护的方法为:在对该分区中每个数据块进行搬移前,保存该分区的文件系统中该数据块对应的元数据,并在该数据块搬移成功后,根据搬移到的位置更新该分区的文件系统中该数据块对应的元数据;其中,所述数据块对应的元数据包括该数据块的起始位置; 该方法进一步包括:在对分区中每个数据块进行搬移时,如果嵌入式系统发生断电重启,则在断电重启后,根据保存的该分区的文件系统中该数据块对应的元数据,重新对该数据块进行搬移。
7.一种嵌入式系统分区的动态调整装置,其特征在于,该装置包括: 获取单元,用于获知当前分区的存储空间不足时,确定当前分区的存储空间需求量,并获取嵌入式系统中其它所有分区信息;判断单元,用于根据其它所有分区信息判断嵌入式系统中是否存在满足当前分区的存储空间需求量的剩余存储空间; 处理单元,用于嵌入式系统中存在满足当前分区的存储空间需求量的剩余存储空间时,根据当前分区的存储空间需求量对其它各分区进行数据搬移和存储空间调整以获得与当前分区相邻且满足当前分区的存储空间需求量的剩余存储空间,并将剩余存储空间并入当前分区。
8.根据权利要求7所述的装置,其特征在于, 所述获取单元获知当前分区的存储空间不足时,用于:接收到用户发送针对当前分区的存储空间请求,或,确定依赖当前分区的分区操作所需的存储空间超出当前分区的剩余存储空间时,确定当前分区的存储空间不足; 其中,所述存储空间请求携带目标分区和目标分区的存储空间需求量。
9.根据权利要求7所述的装置,其特征在于, 所述判断单元根据其它所有分区信息判断嵌入式系统中是否存在满足当前分区的存储空间需求量的剩余存储空间时,用于:如果其它所有分区的剩余存储空间总和大于当前分区的存储空间需求量,则确定嵌入式系统中存在满足当前分区的存储空间需求量的剩余存储空间。
10.根据权 利要求9所述的装置,其特征在于, 所述处理单元根据当前分区的存储空间需求量对其它各分区进行数据搬移和存储空间调整以获得与当前分区相邻且满足当前分区的存储空间需求量的剩余存储空间时,用于: 从其它所有分区中选出剩余存储空间总和大于当前分区的存储空间需求量的N个分区,将选出的每个分区的数据并向该分区中偏离当前分区的方向搬移以获得该分区中连续的剩余存储空间; 基于所述N个分区中连续的剩余存储空间,对所述N个分区中距离当前分区最远的一个分区到当前分区之间的每个分区的数据进行搬移并进行分区表修改,得到与当前分区相邻且满足当前分区的存储空间需求量的剩余存储空间; 其中,N为大于0,且小于嵌入式系统的分区个数的整数。
11.根据权利要求10所述的装置,其特征在于, 所述处理单元对分区的数据进行搬移的过程中,对该分区中的数据执行断电保护。
12.根据权利要求11所述的装置,其特征在于, 所述处理单元对分区的数据进行搬移的过程中,对该分区中的数据执行断电保护时,用于:在对该分区中每个数据块进行搬移前,保存该分区的文件系统中该数据块对应的元数据,并在该数据块搬移成功后,更新该分区的文件系统中该数据块对应的元数据;其中,所述数据块对应的元数据包括该数据块的起始位置; 所述处理单元,进一步用于:在对分区中每个数据块进行搬移时,如果嵌入式系统发生断电重启,则在断电重启后,根据保存的该分区的文件系统中该数据块对应的元数据,重新对该数据块进行搬移。
【文档编号】G06F12/02GK104077234SQ201410329139
【公开日】2014年10月1日 申请日期:2014年7月10日 优先权日:2014年7月10日
【发明者】刘春海, 孙海, 赵诚, 金柱勳 申请人:三星电子(中国)研发中心, 三星电子株式会社