著录项信息
专利名称 | 基于新型存储器的嵌入式系统及其进程的休眠与唤醒方法 |
申请号 | CN201210259941.8 | 申请日期 | 2012-07-25 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2012-12-26 | 公开/公告号 | CN102841674A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F1/32 | IPC分类号 | G;0;6;F;1;/;3;2;;;G;0;6;F;9;/;4;4;5;;;G;0;6;F;1;1;/;1;4查看分类表>
|
申请人 | 中国科学院上海微系统与信息技术研究所 | 申请人地址 | 上海市长宁区长宁路865号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中国科学院上海微系统与信息技术研究所 | 当前权利人 | 中国科学院上海微系统与信息技术研究所 |
发明人 | 李顺芬;陈小刚;王玉婵;陈一峰;许林海;周密;宋志棠 |
代理机构 | 上海光华专利事务所 | 代理人 | 李仪萍 |
摘要
本发明提供一种基于新型存储器的嵌入式系统及其进程的休眠与唤醒方法,该嵌入式系统由新型非易失存储器及DRAM内存构成存储架构,所述新型非易失存储器又由引导程序存储区、内核存储区、文件系统存储区、以及进程镜像备份区组成,其中,所述进程镜像备份区划分有镜像索引区和镜像数据保存区,可实现应用进程挂起到所述新型非易失存储器。本发明可实现系统级以及单进程的休眠,使进程休眠、唤醒管理更加灵活、方便,可降低传统嵌入式系统休眠唤醒的数据备份及恢复的工作量以及系统休眠时数据备份所占用的大量存储空间,从而提高嵌入式系统运行效率。
1.一种基于新型存储器的嵌入式系统休眠与唤醒方法,所述嵌入式系统至少包括CPU控制器、新型非易失存储器、以及DRAM内存,其中,所述新型非易失存储器由引导程序存储区、内核存储区、文件系统存储区、以及进程镜像备份区组成,其特征在于:
将所述进程镜像备份区划分为镜像索引区和镜像数据保存区;
应用进程挂起,则该应用进程释放CPU资源进入休眠状态;
所述应用进程休眠时,将该应用进程当前工作状态相对应的全部PCB控制块信息数据保存到所述进程镜像备份区中,即所述应用进程挂起到所述新型非易失存储器;或将在所述DRAM内存中该应用进程当前工作状态相对应的部分PCB控制块信息数据与所述进程镜像备份区中该应用进程的备份数据合并保存到所述进程镜像备份区中,即所述应用进程挂起到所述新型非易失存储器;或所述应用进程释放其所占用CPU资源,该应用进程当前工作状态相对应的PCB控制块信息仍保留在所述DRAM内存中;或者所述应用进程关闭退出,释放所占用CPU资源及DRAM内存空间;
应用进程唤醒,则该应用进程获得CPU资源进入或恢复工作状态;
所述应用进程唤醒时,基于所述DRAM内存中的该应用进程挂起前的PCB控制块相关信息唤醒该应用进程;或基于所述新型非易失存储器随机访问特性原位启动该应用进程;或直接重新启动一应用进程,即当所述DRAM内存中及所述进程镜像备份区均没有该应用进程挂起时的相关存储信息时,直接基于所述应用进程对应的应用程序的存储代码启动该应用进程。
2.根据权利要求1所述的基于新型存储器的嵌入式系统休眠与唤醒方法,其特征在于,所述嵌入式系统的应用进程唤醒时,至少包括以下步骤:
1)系统唤醒或启动应用进程命令;
2)扫描所述DRAM内存中内存信息保存情况;
3)判断所述DRAM内存中是否保存有该应用进程挂起前工作状态相对应的PCB控制块相关信息,若是,则进入下一步骤,若否,则转至步骤5);
4)基于所述DRAM内存中的该应用进程挂起前的PCB控制块相关信息唤醒该应用进程,快速恢复到该应用进程挂起前的工作状态,接着转至步骤18);
5)扫描所述进程镜像备份区中挂起进程镜像数据备份保存情况;
6)判断所述镜像索引区内是否保存有该应用进程的镜像索引记录,若是,则转至步骤
8),若否,则进入下一步骤;
7)直接重新启动该应用进程,接着转至步骤18);
8)基于所述新型非易失存储器随机访问特性原位启动该应用进程,并快速恢复到该应用进程挂起前的工作状态;
9)判断该应用进程执行过程中是否有写操作,若是,则进入下一步骤,若否则转至步骤
18);
10)基于当前应用进程在所述镜像数据保存区运行的工作状态信息更新保存当前应用进程在所述镜像索引区的相对应的索引记录;
11)加载当前应用进程的写操作相关的PCB控制块备份数据到所述DRAM内存,在该DRAM内存中执行后继的读、写操;
12)判断所述DRAM内存中是否有可用内存空间加载该应用进程写操作相关的PCB控制块备份信息,若是,则转至步骤14),若否,则进入下一步骤;
13)将所述DRAM内存中挂起的使用相对频繁的但挂起时间超过一定时间段的应用进程的PCB控制块相关信息备份到所述镜像数据保存区并释放其所占的所述DRAM内存,或直接将某些使用相对不频繁的应用进程关闭并释放其所占的所述DRAM内存,以获得充足可用内存空间;
14)基于所述镜像索引区内该应用进程的镜像索引记录加载该应用进程写操作相关的PCB控制块镜像备份数据到所述DRAM内存中;
15)基于加载到所述DRAM内存中的该应用进程写操作相关的PCB控制块镜像备份数据执行后继的读、写操作;
16)释放所述镜像数据保存区中保存的该应用进程写操作相关的PCB控制块镜像备份数据;
17)更新所述镜像索引区中保存的该应用进程的索引记录信息;
18)唤醒或启动所述应用进程。
3.根据权利要求1所述的基于新型存储器的嵌入式系统休眠与唤醒方法,其特征在于:所述新型非易失存储器为相变存储器PCRAM、阻变存储器R-RAM、磁存储器MRAM、或铁电存储器FeRAM。
4.根据权利要求1所述的基于新型存储器的嵌入式系统休眠与唤醒方法,其特征在于:所述应用进程休眠包括系统级进程休眠及单进程休眠,系统级进程休眠即系统休眠或关闭时使相应的应用进程进入休眠状态;单进程休眠即单个应用进程释放所占用CPU资源,挂起进入休眠状态。
5.根据权利要求4所述的基于新型存储器的嵌入式系统休眠与唤醒方法,其特征在于,所述系统级进程休眠时,至少包括以下步骤:
1)系统关闭或挂起命令;
2)按进程PID依次扫描所述DRAM内存中各进程属性;
3)判断当前进程是否为应用进程,若是,则转至步骤5),若否,则进入下一步骤;
4)该进程为系统进程,无需备份当前系统进程的PCB控制块信息,并转至步骤15);
5)判断当前应用进程是否需要挂起,若是则转至步骤7),若否,则进入下一步骤;
6)该应用进程为需要关闭进程,无需备份当前应用进程在所述DRAM内存的PCB控制块信息,并转至步骤17);
7)扫描所述进程镜像备份区中挂起进程镜像数据备份保存情况;
8)判断所述镜像索引区中是否保存有该应用进程的索引记录,若是,则转至步骤16),若否,则进入下一步骤;
9)该应用进程是基于所述DRAM内存启动的进程,其运行状态信息全部保存于所述DRAM内存,该应用进程挂起并置换出内存时需保存该应用进程当前工作状态相关的全部PCB控制块数据到所述进程镜像备份区;
10)判断所述进程镜像备份区中是否有满足存放当前应用进程镜像数据备份的存储块,若是,则转至步骤12),若否,则进入下一步骤;
11)搬移、整理、合并所述进程镜像备份区中的离散存储块,以形成连续的可用存储块;
12)基于所述进程镜像备份区中连续、可用存储块保存当前应用进程镜像备份数据;
13)更新所述镜像索引区内保存的索引表,将以当前应用进程的PCB索引标示符、备份PCB控制块存储起始地址及长度形成的索引记录添加到索引表中;
14)保存该应用进程当前工作状态对应的PCB控制块数据到该应用进程索引记录指定的所述镜像数据保存区的相应地址中;
15)判断所述DRAM内存中的进程是否被全部扫描,若是,则转至步骤21),若否,则转至步骤2);
16)该应用进程为基于所述进程镜像备份区原位启动的进程,在执行写操作时加载相关写操作数据到所述DRAM内存后继续执行,该应用进程仅部分PCB控制块数据在所述DRAM内存中,所述应用进程挂起并置换出内存时需将所述DRAM内存中的数据与所述镜像数据保存区中该应用进程的备份数据合并保存,接着转至步骤10)中;
17)扫描所述进程镜像备份区中挂起进程镜像数据备份保存情况;
18)判断所述镜像索引区是否保存有该应用进程的索引记录,若是,则转至步骤19),若否,则转至步骤15);
19)释放所述镜像数据保存区内该应用进程的PCB控制块镜像备份数据;
20)删除所述镜像索引区中保存的该应用进程的索引记录信息,转至步骤15);
21)系统关闭或休眠。
6.根据权利要求4所述的基于新型存储器的嵌入式系统休眠与唤醒方法,其特征在于,所述单进程休眠时,至少包括以下步骤:
1)应用进程挂起或关闭命令;
2)判断当前应用进程是否在所述DRAM内存中运行,若是,则进入下一步骤,若否,则转至步骤16);
3)扫描所述DRAM内存使用情况;
4)判断当前应用进程是否需要关闭,若是,则进入下一步骤,若否,则转至步骤6);
5)系统释放所述DRAM中保存的当前应用进程的PCB控制块相关信息,并转至步骤
22);
6)该应用进程挂起,并判断是否置换出内存,若是,则进入下一步骤,若否,则转至步骤
26);
7)扫描所述进程镜像备份区中挂起进程镜像数据备份保存情况;
8)判断所述镜像索引区是否保存有该应用进程的索引记录,若是,则转至步骤15),若否,则进入下一步骤;
9)该应用进程是基于所述DRAM内存启动的进程,其运行状态信息全部保存于该DRAM内存,所述应用进程挂起并置换出内存时需保存该进程当前工作状态相关的全部PCB控制块数据到所述进程镜像备份区;
10)判断所述进程镜像备份区是否有满足存放当前应用进程镜像数据备份的存储块,若是,则转至步骤12),若否,则进入下一步骤;
11)搬移、整理、合并所述进程镜像备份区中的离散存储块,以形成连续的可用存储块;
12)基于所述进程镜像备份区中连续、可用存储块保存当前应用进程镜像备份数据;
13)更新所述镜像索引区内保存的索引表,将以当前应用进程的PCB索引标示符、备份PCB控制块存储起始地址及长度形成的索引记录添加到所述索引表中;
14)保存该应用进程当前工作状态对应的PCB控制块信息到该应用进程索引记录指定的镜像数据保存区的相应地址中,并转至步骤26);
15)该应用进程为基于所述进程镜像备份区原位启动的进程,在执行写操作时加载相关写操作数据到所述DRAM内存后继续执行,该应用进程仅部分PCB控制块信息在DRAM内,所述应用进程挂起并置换出内存时需将该DRAM内存中的数据与所述镜像数据保存区该应用进程的备份数据合并保存,接着转入步骤10)中;
16)当前应用进程是基于所述进程镜像备份区运行的进程,则在所述镜像索引区及所述镜像数据保存区保存有该应用进程前一次挂起时的相关信息;
17)判断当前应用进程是否需要关闭,若是,则转至步骤20),若否,则进入下一步骤;
18)基于当前应用进程在所述镜像数据保存区运行的工作状态信息更新当前应用进程在所述镜像索引区的相对应的索引记录;
19)基于所述新型非易失存储器掉电数据不丢失的特性,当前应用进程工作状态相对应的PCB控制块信息自动被保存在所述镜像数据保存区,并转至进步骤26);
20)释放所述镜像数据保存区内该应用进程的PCB控制块镜像备份数据;
21)删除所述镜像索引区中保存的该应用进程的索引记录信息,并转至进步骤26);
22)扫描所述进程镜像备份区中挂起进程镜像数据备份保存情况;
23)判断所述镜像索引区是否保存有该应用进程的索引记录,若是,则进入下一步骤,若否,则转至步骤26);
24)释放所述镜像数据保存区内该应用进程的PCB控制块镜像备份数据;
25)删除所述镜像索引区中保存的该应用进程的索引记录信息;
26)关闭或休眠所述应用进程。
7.一种基于新型存储器的嵌入式系统,其特征在于,所述嵌入式系统至少包括:
CPU控制器、新型非易失存储器、以及DRAM内存;
所述新型非易失存储器由引导程序存储区、内核存储区、文件系统存储区、以及进程镜像备份区组成;
所述进程镜像备份区划分有镜像索引区和镜像数据保存区;
所述镜像索引区用来保存进程镜像索引表,所述进程镜像索引表用来记录挂起进程对应的进程控制块索引标示符、以及记录所述进程对应的进程控制块在所述镜像数据保存区中存储的起始地址及长度;所述镜像数据保存区用来保存挂起进程所对应的进程控制块的备份数据。
8.根据权利要求7所述的基于新型存储器的嵌入式系统,其特征在于:所述新型非易失存储器为相变存储器PCRAM、阻变存储器R-RAM、磁存储器MRAM、或铁电存储器FeRAM。
基于新型存储器的嵌入式系统及其进程的休眠与唤醒方法\n技术领域\n[0001] 本发明涉及一种嵌入式系统技术领域,特别是涉及一种基于新型存储器的嵌入式系统及其进程的休眠与唤醒方法。\n背景技术\n[0002] 进程是操作系统中一个非常重要的概念,在层次结构的操作系统中,进程是系统分配资源的基本单位,也是在多任务处理下,进程CPU调度的基本单位。进程是程序在一个数据集上的运行过程,是系统进行资源分配和调度的基本单位,而处理器若要对进程识别并进行管理,就需要有描述进程存在并能够反映起变化的物理实体,即进程的静态描述。进程的静态描述有三个部分组成,PCB(进程控制块),程序段和数据结构集。PCB包含进程的描述信息,控制信息以及资源信息,系统根据PCB感知进程的存在并掌握进程的状态以达到控制进程活动的目的。进程的程序部分描述进程所要完成的功能。而数据集是进程不可缺少的工作区的操作对象。\n[0003] 对进程的管理是操作系统中最重要的功能之一。进程从创建到撤销,要经历不同的阶段,从系统资源角度出发,进程通常有3种基本状态:\n[0004] 1)就绪状态(Ready):这是进程已具有除处理器以外的其他资源,因为处理器资源的独占性,所以暂时不能运行,需要等其他进程释放处理器资源。\n[0005] 2)运行状态(Running):进程获得处理器资源,其程序正在执行,单处理器系统中,只有一个进程处于运行状态;在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。\n[0006] 3)阻塞状态(Blocked):进程因等待某种事件的发生而暂时不能运行,如等待设备的中断、等待其他进程的信号等,在这种状态下,即使处理器空闲也无法使用。\n[0007] 在操作系统中,对进程的调度是最重要的工作之一。每个处理器上同时只能处理一个进程,为了合理的利用系统资源,通常会采用分时执行的办法让多个进程共享存储器资源,将处理器的执行时间分成较短间隔的时间段,每个进程按照分配到的时间段来运行,当时间段到了,就比换下一个进程执行,并有操作系统决定要执行的下一个进程。由于进程调度的存在,在进程的生命期里,进程所处的状态总是随着外界条件的变化和自身的推进而不断变化的。\n[0008] 进程的调度涉及到进程间状态的转换、当前进程状态的保存、新进程调度运行以及进程间的切换。为了便于管理、控制进程,系统设置的一个专门的数据结构—PCB,用它来记录进程的外部特征,描述进程的运动变化过程。系统调度时利用PCB来控制和管理各个进程的所有信息,所以PCB是系统感知进程存在的唯一标志。进程与PCB是一一对应的。\n[0009] 一般情况下,PCB中包含以下内容:\n[0010] 1)进程标识符:进程标识符是系统内部用于标识一个进程所赋予的编号,称为进程的内部名。\n[0011] 2)处理机的信息,即进程由执行状态变为其他状态时保存的CPU现场信息,以便当该进程再次变成就绪状态,被调度程序分配处理机时恢复信息,使进程能继续正常执行。\n通常包括程序状态字PSW、通用寄存器的内容(累加器和变址器的内容)、程序计数器的内容和用户栈的指针等。\n[0012] 3)进程调度信息包括进程状态,进程的优先级,进程调度所需的其它信息,事件等信息\n[0013] 4)进程控制信息包括程序的数据的地址,资源清单,进程同步和通信机制,链接指针等信息。\n[0014] 通过对PCB的操作,系统为有关进程分配资源从而使得有关进程得以被调度执行;而完成进程所要求功能的程序段的有关地址,以及程序过程中因某种原因被停止执行后的现场信息也都在PCB中。最后,当进程执行结束后,则通过释放PCB来释放进程所占用的各种资源。\n[0015] 基于上述进程特性、进程状态转换、系统调用的原理特性,传统嵌入式系统在进程状态转换、系统调用过程中,进程的当前工作状态的相对应的PCB控制块信息或者保存在内存DRAM中或者保存在交换分区中,当系统掉电时或关闭时,系统中那些正在运行的进程或挂起的进程的相对应的PCB控制块信息将全部丢失,当系统重新启动进程或再次启动被强制关闭的应用进程时,都需要基于文件系统中存放的应用程序的存储代码启动该应用进程,同时要恢复该进程上次关闭前的工作状态时需要经过多步重复性操作从而带来内存浪费、时效性差等问题;现有的嵌入式系统具有休眠唤醒功能,一定程度上可实现基于系统的休眠唤醒实现进程工作状态的快速恢复,加快进程的启动,然而,系统休眠唤醒是以系统为单位来降低系统的功耗,系统休眠时需要保存内存中所有进程的PCB控制块信息,同时需要较大的非易失存储器空间来存储系统休眠时的挂起进程是相关备份数据,虽然能保证系统下电后能基于非易失存储器系统休眠时保存的备份信息快速恢复到进程休眠前的工作状态,但是以系统休眠时对内存中所有进程PCB控制块信息备份及牺牲较大容量的非易失存储器换来的。\n[0016] 鉴于此,如何基于进程级别的管理进一步降低嵌入式系统的功耗及系统休眠、唤醒过程中的工作量实现应用程序快速恢复到挂起前的工作状态已成为一个亟待解决的问题。\n发明内容\n[0017] 鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于动态镜像管理的嵌入式系统及其应用进程的休眠与唤醒方法,用于解决现有技术中嵌入式系统进程休眠过程中存在数据备份过大造成内存浪费、以及唤醒进程时装载工作量相对较大、系统运行速度慢以及时效性差等问题。\n[0018] 为实现上述目的及其他相关目的,本发明提出一种基于新型存储器的嵌入式系统休眠与唤醒方法,所述嵌入式系统至少包括CPU控制器、新型非易失存储器、以及DRAM内存,其中,所述新型非易失存储器由引导程序存储区、内核存储区、文件系统存储区、以及进程镜像备份区组成,所述嵌入式系统还包括:\n[0019] 将所述进程镜像备份区划分为镜像索引区和镜像数据保存区;\n[0020] 应用进程挂起,则该应用进程释放CPU资源进入休眠状态;\n[0021] 所述应用进程休眠时,将该应用进程当前工作状态相对应的全部PCB控制块信息数据保存到所述进程镜像备份区中,即所述应用进程挂起到所述新型非易失存储器;或将在所述DRAM内存中该应用进程当前工作状态相对应的部分PCB控制块信息数据与所述进程镜像备份区中该应用进程的备份数据合并保存到所述进程镜像备份区中,即所述应用进程挂起到所述新型非易失存储器;或所述应用进程释放其所占用CPU资源,该应用进程当前工作状态相对应的PCB控制块信息仍保留在所述DRAM内存中;或者所述应用进程关闭退出,释放所占用CPU资源及DRAM内存空间;\n[0022] 应用进程唤醒,则该应用进程获得CPU资源进入或恢复工作状态;\n[0023] 所述应用进程唤醒时,基于所述DRAM内存中的该应用进程挂起前的PCB控制块相关信息唤醒该应用进程;或基于所述新型非易失存储器随机访问特性原位启动该应用进程;或直接重新启动一应用进程,即当所述DRAM内存中及所述进程镜像备份区均没有该应用进程挂起时的相关存储信息时,直接基于所述应用进程对应的应用程序的存储代码启动该应用进程。\n[0024] 可选地,所述嵌入式系统的应用进程唤醒时,至少包括以下步骤:\n[0025] 1)系统唤醒或启动应用进程命令;\n[0026] 2)扫描所述DRAM内存中内存信息保存情况;\n[0027] 3)判断所述DRAM内存中是否保存有该应用进程挂起前工作状态相对应的PCB控制块相关信息,若是,则进入下一步骤,若否,则转至步骤5);\n[0028] 4)基于所述DRAM内存中的该应用进程挂起前的PCB控制块相关信息唤醒该应用进程,快速恢复到该应用进程挂起前的工作状态,接着转至步骤18);\n[0029] 5)扫描所述进程镜像备份区中挂起进程镜像数据备份保存情况;\n[0030] 6)判断所述镜像索引区内是否保存有该应用进程的镜像索引记录,若是,则转至步骤8),若否,则进入下一步骤;\n[0031] 7)直接重新启动该应用进程,接着转至步骤18);\n[0032] 8)基于所述新型非易失存储器随机访问特性原位启动该应用进程,并快速恢复到该应用进程挂起前的工作状态;\n[0033] 9)判断该应用进程执行过程中是否有写操作,若是,则进入下一步骤,若否则转至步骤18);\n[0034] 10)基于当前应用进程在所述镜像数据保存区运行的工作状态信息更新保存当前应用进程在所述镜像索引区的相对应的索引记录;\n[0035] 11)加载当前应用进程的写操作相关的PCB控制块备份数据到所述DRAM内存,在该DRAM内存中执行后继的读、写操;\n[0036] 12)判断所述DRAM内存中是否有可用内存空间加载该应用进程写操作相关的PCB控制块备份信息,若是,则转至步骤14),若否,则进入下一步骤;\n[0037] 13)将所述DRAM内存中挂起的使用相对频繁的但挂起时间超过一定时间段的应用进程的PCB控制块相关信息备份到所述镜像数据保存区并释放其所占的所述DRAM内存,或直接将某些使用相对不频繁的应用进程关闭并释放其所占的所述DRAM内存,以获得充足可用内存空间;\n[0038] 14)基于所述镜像索引区内该应用进程的镜像索引记录加载该应用进程写操作相关的PCB控制块镜像备份数据到所述DRAM内存中;\n[0039] 15)基于加载到所述DRAM内存中的该应用进程写操作相关的PCB控制块镜像备份数据执行后继的读、写操作;\n[0040] 16)释放所述镜像数据保存区中保存的该应用进程写操作相关的PCB控制块镜像备份数据;\n[0041] 17)更新所述镜像索引区中保存的该应用进程的索引记录信息;\n[0042] 18)唤醒或启动所述应用进程。\n[0043] 可选地,所述新型非易失存储器为相变存储器PCRAM、阻变存储器R-RAM、磁存储器MRAM、或铁电存储器FeRAM。\n[0044] 可选地,所述应用进程休眠包括系统级进程休眠及单进程休眠,系统级进程休眠即系统休眠或关闭时使相应的应用进程进入休眠状态;单进程休眠即单个应用进程释放所占用CPU资源,挂起进入休眠状态。\n[0045] 可选地,所述系统级进程休眠时,至少包括以下步骤:\n[0046] 1)系统关闭或挂起命令;\n[0047] 2)按进程PID依次扫描所述DRAM内存中各进程属性;\n[0048] 3)判断当前进程是否为应用进程,若是,则转至步骤5),若否,则进入下一步骤;\n[0049] 4)该进程为系统进程,无需备份当前系统进程的PCB控制块信息,并转至步骤\n15);\n[0050] 5)判断当前应用进程是否需要挂起,若是则转至步骤7),若否,则进入下一步骤;\n[0051] 6)该应用进程为需要关闭进程,无需备份当前应用进程在所述DRAM内存的PCB控制块信息,并转至步骤17);\n[0052] 7)扫描所述进程镜像备份区中挂起进程镜像数据备份保存情况;\n[0053] 8)判断所述镜像索引区中是否保存有该应用进程的索引记录,若是,则转至步骤\n16),若否,则进入下一步骤;\n[0054] 9)该应用进程是基于所述DRAM内存启动的进程,其运行状态信息全部保存于所述DRAM内存,该应用进程挂起并置换出内存时需保存该进程当前工作状态相关的全部PCB控制块数据到所述进程镜像备份区;\n[0055] 10)判断所述进程镜像备份区中是否有满足存放当前应用进程镜像数据备份的存储块,若是,则转至步骤12),若否,则进入下一步骤;\n[0056] 11)搬移、整理、合并所述进程镜像备份区中的离散存储块,以形成连续的可用存储块;\n[0057] 12)基于所述进程镜像备份区中连续、可用存储块保存当前应用进程镜像备份数据;\n[0058] 13)更新所述镜像索引区内保存的索引表,将以当前应用进程的PCB索引标示符、备份PCB控制块存储起始地址及长度形成的索引记录添加到索引表中;\n[0059] 14)保存该应用进程当前工作状态对应的PCB控制块数据到该应用进程索引记录指定的所述镜像数据保存区的相应地址中;\n[0060] 15)判断所述DRAM内存中的进程是否被全部扫描,若是,则转至步骤21),若否,则转至步骤2);\n[0061] 16)该应用进程为基于所述进程镜像备份区原位启动的进程,在执行写操作时加载相关写操作数据到所述DRAM内存后继续执行,该应用进程仅部分PCB控制块数据在所述DRAM内存中,所述应用进程挂起并置换出内存时需将所述DRAM内存中的数据与所述镜像数据保存区中该应用进程的备份数据合并保存,接着转至步骤10)中;\n[0062] 17)扫描所述进程镜像备份区中挂起进程镜像数据备份保存情况;\n[0063] 18)判断所述镜像索引区是否保存有该应用进程的索引记录,若是,则转至步骤\n19),若否,则转至步骤15);\n[0064] 19)释放所述镜像数据保存区内该应用进程的PCB控制块镜像备份数据;\n[0065] 20)删除所述镜像索引区中保存的该应用进程的索引记录信息,转至步骤15);\n[0066] 21)系统关闭或休眠。\n[0067] 可选地,所述单进程休眠时,至少包括以下步骤:\n[0068] 1)应用进程挂起或关闭命令;\n[0069] 2)判断当前应用进程是否在所述DRAM内存中运行,若是,则进入下一步骤,若否,则转至步骤16);\n[0070] 3)扫描所述DRAM内存使用情况;\n[0071] 4)判断当前应用进程是否需要关闭,若是,则进入下一步骤,若否,则转至步骤\n6);\n[0072] 5)系统释放所述DRAM中保存的当前应用进程的PCB控制块相关信息,并转至步骤\n22);\n[0073] 6)该应用进程挂起,并判断是否置换出内存,若是,则进入下一步骤,若否,则转至步骤26);\n[0074] 7)扫描所述进程镜像备份区中挂起进程镜像数据备份保存情况;\n[0075] 8)判断所述镜像索引区是否保存有该应用进程的索引记录,若是,则转至步骤\n15),若否,则进入下一步骤;\n[0076] 9)该应用进程是基于所述DRAM内存启动的进程,其运行状态信息全部保存于该DRAM内存,所述应用进程挂起并置换出内存时需保存该进程当前工作状态相关的全部PCB控制块数据到所述进程镜像备份区;\n[0077] 10)判断所述进程镜像备份区是否有满足存放当前应用进程镜像数据备份的存储块,若是,则转至步骤12),若否,则进入下一步骤;\n[0078] 11)搬移、整理、合并所述进程镜像备份区中的离散存储块,以形成连续的可用存储块;\n[0079] 12)基于所述进程镜像备份区中连续、可用存储块保存当前应用进程镜像备份数据;\n[0080] 13)更新所述镜像索引区内保存的索引表,将以当前应用进程的PCB索引标示符、备份PCB控制块存储起始地址及长度形成的索引记录添加到所述索引表中;\n[0081] 14)保存该应用进程当前工作状态对应的PCB控制块信息到该应用进程索引记录指定的镜像数据保存区的相应地址中,并转至步骤26);\n[0082] 15)该应用进程为基于所述进程镜像备份区原位启动的进程,在执行写操作时加载相关写操作数据到所述DRAM内存后继续执行,该应用进程仅部分PCB控制块信息在DRAM内,所述应用进程挂起并置换出内存时需将该DRAM内存中的数据与所述镜像数据保存区该应用进程的备份数据合并保存,接着转入步骤10)中;\n[0083] 16)当前应用进程是基于所述进程镜像备份区运行的进程,则在所述镜像索引区及所述镜像数据保存区保存有该应用进程前一次挂起时的相关信息;\n[0084] 17)判断当前应用进程是否需要关闭,若是,则转至步骤20),若否,则进入下一步骤;\n[0085] 18)基于当前应用进程在所述镜像数据保存区运行的工作状态信息更新当前应用进程在所述镜像索引区的相对应的索引记录;\n[0086] 19)基于所述新型非易失存储器掉电数据不丢失的特性,当前应用进程工作状态相对应的PCB控制块信息自动被保存在所述镜像数据保存区,并转至进步骤26);\n[0087] 20)释放所述镜像数据保存区内该应用进程的PCB控制块镜像备份数据;\n[0088] 21)删除所述镜像索引区中保存的该应用进程的索引记录信息,并转至进步骤\n26);\n[0089] 22)扫描所述进程镜像备份区中挂起进程镜像数据备份保存情况;\n[0090] 23)判断所述镜像索引区是否保存有该应用进程的索引记录,若是,则进入下一步骤,若否,则转至步骤26);\n[0091] 24)释放所述镜像数据保存区内该应用进程的PCB控制块镜像备份数据;\n[0092] 25)删除所述镜像索引区中保存的该应用进程的索引记录信息;\n[0093] 26)关闭或休眠所述应用进程。\n[0094] 此外,本发明的另一目的提供一种基于新型存储器的嵌入式系统,至少包括:\n[0095] CPU控制器、新型非易失存储器、以及DRAM内存;\n[0096] 所述新型非易失存储器由引导程序存储区、内核存储区、文件系统存储区、以及进程镜像备份区组成;\n[0097] 所述进程镜像备份区划分有镜像索引区和镜像数据保存区;\n[0098] 所述镜像索引区用来保存进程镜像索引表,所述进程镜像索引表用来记录挂起进程对应的进程控制块索引标示符、以及记录所述进程对应的进程控制块在所述镜像数据保存区中存储的起始地址及长度;所述镜像数据保存区用来保存挂起进程所对应的进程控制块的备份数据。\n[0099] 可选地,所述新型非易失存储器为相变存储器PCRAM、阻变存储器R-RAM、磁存储器MRAM、或铁电存储器FeRAM。\n[0100] 如上所述,本发明的一种基于新型存储器的嵌入式系统及其进程的休眠与唤醒方法,具有以下有益效果:\n[0101] 该嵌入式系统将新型非易失存储器与DRAM内存构成的存储架构的进程镜像备份区划分有镜像索引区和镜像数据保存区,可实现应用进程挂起到该新型非易失存储器,基于进程挂起时保存的镜像备份数据实现应用进程快速恢复挂起前工作状态,以进程为单位降低系统休眠、唤醒时的工作量,基于本发明提供的嵌入式系统进程休眠与唤醒的方法可实现系统级以及单进程的休眠,使进程休眠、唤醒管理更加灵活、方便,可降低传统嵌入式系统休眠唤醒的数据备份及恢复的工作量以及系统休眠时数据备份所占用的大量存储空间,从而实现嵌入式系统进程的快速休眠与唤醒。\n附图说明\n[0102] 图1显示为本发明中基于新型存储器的嵌入式系统结构示意图。\n[0103] 图2显示为本发明的基于新型存储器的嵌入式系统单进程休眠方法流程示意图。\n[0104] 图3显示为本发明的基于新型存储器的嵌入式系统级多进程休眠方法流程示意图。\n[0105] 图4显示为本发明的基于新型存储器的嵌入式系统进程唤醒方法流程示意图。\n[0106] 元件标号说明\n[0107] 1CPU控制器\n[0108] 2新型非易失存储器\n[0109] 20Bootloader(引导程序存储区)\n[0110] 21Kernel(内核存储区)\n[0111] 22Rootfs(文件系统存储区)\n[0112] 23进程镜像备份区\n[0113] 230镜像索引区\n[0114] 231镜像数据保存区\n[0115] S1~S22、S31~S51、S61~S78 步骤\n具体实施方式\n[0116] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。\n[0117] 请参阅图1至图4。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。\n[0118] 如图1所述,本发明提供一种基于新型存储器的嵌入式系统,所述嵌入式系统至少包括CPU控制器1、新型非易失存储器2、以及DRAM内存3,其中,新型非易失存储器2由引导程序存储区20、内核存储区21、文件系统存储区22、以及进程镜像备份区23组成;所述进程镜像备份区23划分有镜像索引区230和镜像数据保存区231;所述镜像索引区230用来保存进程镜像索引表,所述进程镜像索引表用来记录挂起进程对应的PCB索引标示符、以及记录所述进程对应的PCB在所述镜像数据保存区231中存储的起始地址及长度;所述镜像数据保存区231用来保存挂起进程所对应的PCB的备份数据。\n[0119] 需要说明的是,本实施例中所述新型非易失主存选为相变存储器PCRAM,但不限于此,在其它实施例中亦可以为阻变存储器R-RAM、磁存储器MRAM、或铁电存储器FeRAM等非易失存储器。\n[0120] 本发明的基于新型存储器的嵌入式系统将新型非易失存储器与DRAM内存相结合构成的嵌入式存储架构体系,在所述新型非易失存储器中划分出一进程镜像备份区,嵌入式系统休眠或关闭时只需在所述进程镜像备份区中保存所需要应用进程的状态信息,而不需要的系统进程的状态信息无需保存,可大大降低数据备份的工作量以及节省备份数据的存储空间,同时在系统唤醒时使所述嵌入式系统快速启动。此外,基于所述新型非易失存储器构造嵌入式存储系统可实现存储空间的共享,根据需求可以调整各个存储区的大小,便于实现软件升级及嵌入式设备的高效运行,同时可简化CPU接口,节约I/O引脚数量,可实现节约成本。新型存储器具有非易失特性之外还具有随机读取的特性,使得嵌入式系统运行应用程序时,可在应用程序代码存储的地方原位执行,进行相应的读操作,涉及写操作时加载相应代码到DRAM运行即可,而无需像传统的嵌入式系统那样需将应用程序代码从NAND FLASH拷贝到DRAM内后才能进行相应的读写操作,从而简化系统工作量提高嵌入式系统的运行效率。\n[0121] 而传统的而传统的嵌入式系统中采用NOR flash、NAND flash、以及DRAM内存构成的存储架构,不同的存储器采用不同的物理接口及访问协议,因此CPU对各种存储器的访问接口不同、访问引脚不同、以及访问速度不同,CPU也不能同时访问不同类型的存储器,因此造成了嵌入式系统的运行效率的降低。\n[0122] 本发明的另一目的是提供一种基于新型存储器的嵌入式系统进程的休眠与唤醒方法。参考图1所示,所述嵌入式系统至少包括CPU控制器1、新型非易失存储器2、以及DRAM内存3,其中,所述新型非易失存储器2由引导程序存储区20、内核存储区21、文件系统存储区22、以及进程镜像备份区23组成;所述进程镜像备份区23划分有镜像索引区230和镜像数据保存区231。\n[0123] 进程休眠,则将该进程挂起到所述新型非易失存储器2,且系统释放其所占用的CPU资源;或将该进程关闭,且系统释放该进程在所述DRAM内存3及进程镜像备份区23中所对应的PCB控制块信息数据。\n[0124] 所述进程休眠时包括两种情况:\n[0125] 1)系统级多进程休眠。所述嵌入式系统关闭或休眠时,保存当前内存中所有挂起无需关闭的应用进程的PCB控制块数据到所述进程镜像备份区23;当前内存中系统进程及需要关闭的应用进程的PCB控制块信息无需备份。\n[0126] 2)单进程休眠。即单个应用进程释放所占用CPU资源,挂起进入休眠状态。若系统运行过程中,单一应用进程关闭时,系统释放该应用进程在所述DRAM内存3及所述进程镜像备份区23内所对应的PCB控制块数据。\n[0127] 若该应用进程是基于所述进程镜像备份区23运行的进程挂起时,则更新该应用进程对应索引记录,基于所述新型非易失存储器2掉电数据不丢失的特性,该应用进程可直接挂起,当前应用进程的PCB控制块数据自动被保存;若该应用进程是在所述DRAM内存\n3中运行时,当所述镜像索引区230没保存有该应用进程的索引记录时,该应用进程的运行状态信息全部保存于所述DRAM内存3,若应用进程挂起并置换出内存,需保存该应用进程当前工作状态相关的全部PCB控制块信息数据到所述进程镜像备份区23;否则只是挂起该应用进程,当前应用进程相对应的PCB控制块数据仍保留在该DRAM内存3中;当所述镜像索引区230保存有该应用进程的索引记录时,该应用进程仅部分PCB信息在所述DRAM内存\n3,若应用进程挂起并退出内存,则更新所述镜像索引区230内该应用进程对应的索引记录并将所述DRAM内存3中的数据与所述镜像数据保存区231中该应用进程的备份数据合并保存;否则只是挂起该应用进程,当前应用进程相对应的PCB控制块数据仍保留在该DRAM内存3中。\n[0128] 为进一步阐明本发明单进程休眠的原理及功效,请参阅图2,图2显示为本发明的嵌入式系统单进程的休眠流程示意图。\n[0129] 如图2所示,在步骤S1中,用户请求系统对某一应用进程休眠,CPU控制器3发出挂起或关闭命令,接着进入下一步骤S2中。\n[0130] S2:判断当前应用进程是否在所述DRAM内存3中运行,若是,则进入下一步骤S3,若否,则转至步骤S16。\n[0131] S3:扫描所述DRAM内存3的使用情况,接着进入下一步骤S4。\n[0132] S4:判断当前应用进程是否需要关闭,若是,则进入下一步骤S5,若否,则转至步骤S6。\n[0133] S5:系统释放所述DRAM内存3中保存的当前应用进程的PCB控制块相关信息,并转至步骤S22。\n[0134] S6:该应用进程挂起,判断是否置换出内存,若是,则进入下一步骤S7,若否,则转至步骤S26。\n[0135] S7:扫描所述进程镜像备份区23中挂起进程镜像数据备份保存情况,接着进入下一步骤S8。\n[0136] S8:判断所述镜像索引区230是否保存有该应用进程的索引记录,若是,则转至步骤S15,若否,则进入下一步骤S9。\n[0137] S9:该应用进程是基于所述DRAM内存3启动的进程,其运行状态信息全部保存于该DRAM内存3,所述应用进程挂起并置换出内存时需保存该进程当前工作状态相关的全部PCB控制块数据到所述进程镜像备份区23,接着进入下一步骤S10。\n[0138] S10:判断所述进程镜像备份区23是否有满足存放当前应用进程镜像数据备份的存储块,若是,则转至步骤S12,若否,则进入下一步骤S11。\n[0139] S11:搬移、整理、合并所述进程镜像备份区23中的离散存储块,以形成连续的可用存储块,接着进入下一步骤S12。\n[0140] S12:基于所述进程镜像备份区23中连续、可用存储块保存当前应用进程镜像备份数据,接着进入下一步骤S13中。\n[0141] S13:更新所述镜像索引区230内保存的索引表,将以当前应用进程的PCB索引标示符、备份PCB控制块存储起始地址及长度形成的索引记录添加到所述索引表中,接着进入下一步骤S14。\n[0142] S14:保存该应用进程当前工作状态对应的PCB控制块信息到该应用进程索引记录指定的镜像数据保存区231的相应地址中,并转至步骤S26。\n[0143] S15:该应用进程为基于所述进程镜像备份23原位启动的进程,在执行写操作时加载相关写操作数据到所述DRAM内存3后继续执行,该应用进程仅部分PCB控制块信息在DRAM内存中,所述应用进程挂起并置换出内存时需将该DRAM内存3中的数据与所述镜像数据保存区231中该应用进程的备份数据合并保存,接着转至步骤S10。\n[0144] S16:当前应用进程是基于所述进程镜像备份区23运行的进程,则在所述镜像索引区230及所述镜像数据保存区231保存有该应用进程前一次挂起时的相关信息,接着进入下一步骤S17。\n[0145] S17:判断当前应用进程是否需要关闭,若是,则转至步骤S20,若否,则进入下一步骤S18。\n[0146] S18:基于当前应用进程在所述镜像数据保存区231中运行的工作状态信息更新当前应用进程在所述镜像索引区230的相对应的索引记录,接着进入下一步骤S19。\n[0147] S19:基于所述新型非易失存储器2掉电数据不丢失的特性,当前应用进程工作状态相对应的PCB控制块信息自动被保存在所述镜像数据保存区231,并转至进步骤S26。\n[0148] S20:释放所述镜像数据保存区231内该应用进程的PCB控制块的镜像备份数据,接着进入步骤S21。\n[0149] S21:删除所述镜像索引区230中保存的该应用进程的索引记录信息,接着进入步骤S26。\n[0150] S22:扫描所述进程镜像备份区23中挂起进程镜像数据备份保存情况,接着进入步骤S23。\n[0151] S23:判断所述镜像索引区230是否保存有该应用进程的索引记录,若是,则转至步骤S24,若否,则进入步骤S26。\n[0152] S24:释放所述镜像数据保存区231内该应用进程的PCB控制块镜像备份数据,则进入下一步骤S25;\n[0153] S25:删除所述镜像索引区230中保存的该应用进程的索引记录信息,则进入下一步骤S26。\n[0154] S26:关闭或休眠所述应用进程。\n[0155] 在该步骤中,完成休眠前的工作状态保存,此时该应用进程可进入休眠状态。由上可知,当仅仅单个应用进程挂起时,根据该应用进程的属性决定是否备份其当前工作状态相关数据到所述新型非易失存储器2,单进程休眠实现以进程为单位降低系统功耗,使进程休眠管理更加灵活。\n[0156] 本发明中嵌入式系统级进程休眠时,涉及到多进程的关闭与休眠。此时,系统将保存当前内存中所有挂起但无需关闭的应用进程的工作状态相对应的PCB信息到所述进程镜像备份区23,当前内存中系统进程及需要关闭的应用进程的工作状态相对应的PCB信息无需备份。\n[0157] 为进一步阐明本发明嵌入式系统级进程休眠的原理及功效,请参阅图3,图3显示为本发明的嵌入式系统级休眠流程示意图。\n[0158] 在步骤S31中,CPU控制器发出系统挂起或关闭命令,接着进入下一步骤S32中。\n[0159] S32:按进程PID依次扫描所述DRAM内存中各进程属性,接着进入下一步骤S33。\n[0160] S33:判断当前进程是否为应用进程,若是,则转至步骤S35,若否,则进入下一步骤S34。\n[0161] S34:该进程为系统进程,无需备份当前系统进程的PCB控制块信息,并转至步骤S45。\n[0162] S35:判断当前应用进程是否需要挂起,若是,则转至步骤S37,若否,则进入下一步骤S36。\n[0163] S36:该应用进程为需要关闭进程,无需备份当前应用进程的PCB控制块信息,并转至步骤S47。\n[0164] S37:扫描所述进程镜像备份区23中挂起进程镜像数据备份保存情况,接着进入下一步骤S38。\n[0165] S38:判断所述镜像索引区230中是否保存有该应用进程的索引记录,若是,则转至步骤S46,若否,则进入下一步骤S39。\n[0166] S39:该应用进程是基于所述DRAM内存3启动的进程,其运行状态信息全部保存于所述DRAM内存3,该应用进程挂起并置换出内存时需保存该应用进程当前工作状态相关的全部PCB控制块数据到所述进程镜像备份区23,接着进入下一步骤S40。\n[0167] S40:判断所述进程镜像备份区23中是否有满足存放当前应用进程镜像数据备份的存储块,若是,则转至步骤S42,若否,则进入下一步骤S41。\n[0168] S41:搬移、整理、合并所述进程镜像备份区23中的离散存储块,以形成连续的可用存储块,接着进入下一步骤S42。\n[0169] S42:基于所述进程镜像备份区23中连续、可用存储块保存当前应用进程镜像备份数据,接着进入下一步骤S43。\n[0170] S43:更新所述镜像索引区230内保存的索引表,将以当前应用进程的PCB索引标示符、备份PCB控制块存储起始地址及长度形成的索引记录添加到索引表中,接着进入下一步骤S44。\n[0171] S44:保存该应用进程当前工作状态对应的PCB控制块数据到该应用进程索引记录指定的所述镜像数据保存区231的相应地址中,接着进入下一步骤S45。\n[0172] S45:所述DRAM内存中的进程是否被全部扫描,若是,则转至步骤S51,若否,则转至步骤S32。\n[0173] S46:该应用进程为基于所述进程镜像备份区23原位启动的进程,在执行写操作时加载相关写操作数据到所述DRAM内存3后继续执行,该应用进程仅部分PCB控制块数据在所述DRAM内存3中,所述应用进程挂起并置换出内存时需将所述DRAM内存3中的数据与所述镜像数据保存区231中该应用进程的备份数据合并保存,接着进入下一步骤S40。\n[0174] S47:扫描所述进程镜像备份区23中挂起进程镜像数据备份保存情况,接着进入下一步骤S48。\n[0175] S48:判断所述镜像索引区230是否保存有该应用进程的索引记录,若是,则进入下一步骤S49,若否,进入下一步骤S45。\n[0176] S49:释放所述镜像数据保存区231内该应用进程的PCB控制块镜像备份数据,接着进入下一步骤S50。\n[0177] S50:删除所述镜像索引区230中保存的该应用进程的索引记录信息,接着转至步骤S45中。\n[0178] S51:在该步骤中,完成所述嵌入式系统挂起或关闭前的工作状态保存,此时系统可进入休眠或关闭状态。\n[0179] 由上可知,本发明的嵌入式系统级休眠时,只将所需要挂起的应用进程的状态信息挂起到所述新型非易失存储器2中,而需要关闭的应用进程和系统进程的状态信息无需备份,可大大降低数据备份的工作量以及节省备份数据的存储空间。\n[0180] 针对本发明中嵌入式系统进程的休眠方法,则进程唤醒包括三种情况:\n[0181] 1)基于所述DRAM内存3中保存的当前应用进程相对应的PCB控制块数据唤醒该应用进程。\n[0182] 2)基于所述进程镜像备份区23中的进程镜像备份数据唤醒挂起的应用进程,若DRAM内存3中未保存当前应用进程相对应的PCB控制块数据且所述进程镜像备份区23中保存有该应用进程的索引记录,则根据所述镜像索引区230保存的该应用进程的索引记录及所述镜像数据保存区231中保存的该应用进程的PCB控制块备份数据基于所述新型非易失存储器2随机访问特性原位启动该应用进程,并快速恢复到该应用进程挂起前的工作状态。\n[0183] 若该应用进程启动后只执行读操作则直接在该应用进程存储区运行该应用进程;\n若该应用进程执行过程中涉及写操作,则加载当前应用进程写操作相关的PCB控制块信息到所述DRAM内存3,在所述DRAM内存3中执行后继的读、写操作,并释放所述镜像数据保存区231内该应用进程加载到该DRAM内存3之中的写操作相关的PCB控制块镜像备份数据、以及更新所述镜像索引区230中保存的该应用进程的索引记录信息。\n[0184] 3)直接重新启动一进程,即当所述DRAM内存3及所述进程镜像备份区23均没有该进程挂起时的相关存储信息时,直接加载该应用程序的存储代码到所述DARM内存3中启动该应用进程。\n[0185] 为进一步阐明本发明中所述嵌入式系统进程的唤醒原理及功效,请参阅图4,图4显示为本发明的所述嵌入式系统的应用进程的唤醒流程示意图。\n[0186] S61:系统发出唤醒或启动应用进程命令,接着进入步骤S62中。\n[0187] S62:扫描所述DRAM内存3中内存信息保存情况,接着进入步骤S63中。\n[0188] S63:判断所述DRAM内存3中是否保存有该应用进程挂起前工作状态相对应的PCB控制块相关信息,若是,则进入下一步骤S64,若否,则转至步骤S65。\n[0189] S64:基于所述DRAM内存3中的该应用进程挂起前的PCB控制块相关信息唤醒该应用进程,快速恢复到该应用进程挂起前的工作状态,接着转至步骤S78。\n[0190] S65:扫描所述进程镜像备份区23中挂起进程镜像数据备份保存情况,接着进入下一步骤S66。\n[0191] S66:判断所述镜像索引区230内是否保存有该应用进程的镜像索引记录,若是,则转至步骤S68,若否,则进入下一步骤S67。\n[0192] S67:直接重新启动该应用进程,接着转至步骤S78。\n[0193] S68:基于所述新型非易失存储器2随机访问特性及该应用进程的镜像索引记录、以及镜像备份数据原位启动该应用进程,快速回复到挂起前的工作状态,接着进入下一步骤S69。\n[0194] S69:判断该应用进程执行过程中是否有写操作,若是,则进入下一步骤S70,若否则转至步骤S78。\n[0195] S70:基于当前应用进程在所述镜像数据保存区231运行的工作状态信息更新保存当前应用进程在所述镜像索引区230的相对应的索引记录,接着进入下一步骤S71。\n[0196] S71:加载当前应用进程的写操作相关的PCB控制块备份数据到所述DRAM内存3,在该DRAM内存3中执行后继的读、写操,接着进入下一步骤S72。\n[0197] S72:判断所述DRAM内存3中是否有可用内存空间加载该应用进程写操作相关的PCB控制块备份信息,若是,则转至步骤S74,若否,则进入下一步骤S73。\n[0198] S73:将所述DRAM内存3中挂起的使用相对频繁的但挂起时间超过一定时间段的应用进程的PCB控制块相关信息备份到所述镜像数据保存区231并释放其所占的所述DRAM内存3,或直接将某些使用相对不频繁的应用进程关闭并释放其所占的所述DRAM内存3,以获得充足可用内存空间,接着进入下一步骤S74。\n[0199] S74:基于所述镜像索引区230内该应用进程的镜像索引记录加载该应用进程写操作相关的PCB控制块镜像备份数据到所述DRAM内存3中,接着进入下一步骤S75。\n[0200] S75:基于加载到所述DRAM内存3中的该应用进程写操作相关的PCB控制块镜像备份数据执行后继的读、写操作,接着进入下一步骤S76。\n[0201] S76:释放所述镜像数据保存区231中保存的该应用进程写操作相关的PCB控制块镜像备份数据,接着进入下一步骤S77。\n[0202] S77:更新所述镜像索引区230中保存的该应用进程的索引记录信息,接着进入下一步骤S78。\n[0203] S78:完成所述应用进程的唤醒或启动,由上可知,应用进程唤醒时,基于该应用进程挂起时保存的镜像备份数据实现应用进程快速恢复挂起前工作状态,以进程为单位降低系统唤醒时的工作量,提高了系统唤醒的速度,提高了工作效率。\n[0204] 综上所述,本发明提供一种基于新型存储器的嵌入式系统及其进程的休眠与唤醒的方法,该嵌入式系统由新型非易失存储器及DRAM内存构成存储架构,所述新型非易失存储器又由引导程序存储区、内核存储区、文件系统存储区、以及进程镜像备份区组成,其中,进程镜像备份区划分有镜像索引区和镜像数据保存区,可实现应用进程挂起到该新型非易失存储器,基于应用进程挂起时保存的镜像备份数据实现应用进程快速恢复挂起前工作状态,以进程为单位降低系统休眠、唤醒时的工作量。本发明可实现系统级以及单进程的休眠,使进程休眠、唤醒管理更加灵活、方便,可降低传统嵌入式系统休眠与唤醒的数据备份及恢复的工作量以及系统休眠时数据备份所占用的大量存储空间,从而提高嵌入式系统的运行效率。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。\n[0205] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
法律信息
- 2015-02-04
- 2013-02-13
实质审查的生效
IPC(主分类): G06F 1/32
专利申请号: 201210259941.8
申请日: 2012.07.25
- 2012-12-26
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2010-05-19
|
2009-11-25
| | |
2
| |
2006-08-30
|
2006-03-31
| | |
3
| |
2006-08-16
|
2006-03-16
| | |
4
| |
2011-02-09
|
2010-10-13
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |