混合内存设备的挂起或关机方法

文档序号:6502866阅读:186来源:国知局
混合内存设备的挂起或关机方法
【专利摘要】本申请公开了一种混合内存设备的挂起或关机方法,通过逐步关闭应用程序的进程,来逐步缩小内存中的强制型数据,最终将易失性内存中的强制型数据全部转移到非易失性内存中。除非关闭进程出错,才会回归到现有的混合内存设备的挂起或关机方法。本申请可以在多种情况下避免数据压缩、数据从内存转移到外存储器等操作,因而大大加快了挂起或关机的处理时间,也就相应地加快了唤醒或开机的处理时间,同时避免了唤醒或开机初期的系统性能下降问题。
【专利说明】混合内存设备的挂起或关机方法

【技术领域】
[0001] 本申请涉及一种智能电子设备的挂起和唤醒机制,特别是涉及一种混合内存设备 的挂起和唤醒机制。

【背景技术】
[0002] 诸如计算机、平板电脑、手机等智能电子设备中,都具有CPU、内存、外存储器等组 成部分。外存储器通常都是非易失性存储器,即掉电后数据保留,例如磁盘、闪存(flash存 储器)等。如果内存全部是易失性存储器,即掉电后数据丢失,则称为易失性内存的智能电 子设备(简称为易失性内存设备)。如果内存分为易失性和非易失性两部分,则称为混合内 存的智能电子设备(简称为混合内存设备)。
[0003] 混合内存设备中,通常采用DRAM (动态随机存取存储器)作为易失性内存、NVRAM (非易失性随机存取存储器)作为非易失性内存。NVRAM集中了 RAM的快速随机存取和闪存 的掉电后不丢失数据的优点,但是成本较高。在混合内存设备中非易失性内存与易失性内 存的容量之比通常在1 :10?1 :40之间。
[0004] 智能电子设备所运行的软件分为两部分:操作系统、运行在操作系统之上的应用 程序。在任意时刻,所有运行中的软件(也称为所有软件的运行状态)在内存中的数据被分 为强制型(mandatory)和可丢弃型(droppable)两种;如者必须保留在内存中;后者可以丢 弃或转移到外存储器中。
[0005] 请参阅图1,这是现有的混合内存设备实现挂起或关机的方法,包括如下步骤:
[0006] 第1步,当操作系统准备挂起或关机时,判断非易失性内存中的空闲空间是否可 容纳易失性内存中的强制型数据。如果是,则操作系统将易失性内存中的强制型数据转移 到非易失性内存的空闲空间,完成挂起或关机。如果否,则进入第2步。
[0007] 第2步,操作系统将非易失性内存中的可丢弃型数据或者丢弃、或者转移到外存 储器中,然后进入第3步。
[0008] 第3步,操作系统再次判断非易失性内存中的空闲空间是否可容纳易失性内存中 的强制型数据。如果是,则操作系统将易失性内存中的强制型数据转移到非易失性内存的 空闲空间,完成挂起或关机。如果否,则进入第4步。
[0009] 第4步,操作系统将易失性内存中的强制型数据不经压缩(优选)或压缩后(次选), 全部转移到外存储器中,完成挂起或关机。
[0010] 请参阅图2,这是图1所示的混合内存设备实现挂起或关机的方法的第一种变形。 第1步?第3步不变,第4步变为第4A步如下。
[0011] 第4A步,操作系统判断非易失性内存中的空闲空间是否可容纳压缩后的易失性 内存中的强制型数据。如果是,则操作系统将易失性内存中的强制型数据压缩后全部转移 到非易失性内存的空闲空间,完成挂起或关机。如果否,则操作系统将易失性内存中的强制 型数据不经压缩(优选)或压缩后(次选),全部转移到外存储器中,完成挂起或关机。
[0012] 请参阅图3,这是图1所示的混合内存设备实现挂起或关机的方法的第二种变形。 第1步?第3步不变,第4步变为第4B步如下。
[0013] 第4B步,操作系统判断非易失性内存中的空闲空间是否可容纳压缩后的易失性 内存中的强制型数据。如果是,则操作系统将易失性内存中的强制型数据压缩后全部转移 到非易失性内存的空闲空间,完成挂起或关机。如果否,则操作系统将易失性内存中的强制 型数据不经压缩(优选)或压缩后(次选),一部分转移到非易失性内存的空闲空间(优选首 先填满非易失性内存的空闲空间),剩余部分再转移到外存储器中,完成挂起或关机。
[0014] 图1?图3所示的混合内存设备实现挂起或关机的方法中,在完成挂起或关机之 前操作系统还将易失性内存中的可丢弃型数据或者丢弃、或者转移到外存储器中,该操作 可以放在任意步骤中进行。涉及到将易失性内存中的数据转移到非易失性内存中,可采用 内存热插拔(memory hot plug)技术。涉及到将内存中的数据转移到外存储器中的,可采用 强制移出(force swap out)技术,并优选转移到外存储器的交换(swap)分区(针对Linux 系统)或虚拟内存空间(针对windows系统)。内存热插拔与强制移出均为现有技术,不再赘 述。
[0015] 混合内存设备在挂起状态下全部断电,包括内存断电;因而挂起状态等同于关机 状态。所不同的只是挂起通常是由操作系统自动进入的,而关机通常是由用户触发的。
[0016] 请参阅图4,这是现有的混合内存设备实现唤醒或开机的方法,包括如下步骤:
[0017] 第1步,在混合内存设备处于挂起或关机状态下,开机程序捕捉到来自于按钮、键 盘等的触发唤醒或触发开机的操作。所述开机程序通常存储在智能电子设备的单独一个非 易失性存储器中,用于唤醒或启动操作系统。
[0018] 第2步,开机程序根据内存中的非压缩数据数据进行唤醒或启动。如果内存中的 非压缩数据满足系统唤醒或启动的需求,则开机程序不报错,进入第6步。如果内存中的非 压缩数据不满足系统唤醒或启动的需求,开机程序就会报错,错误信息可能是如下三种情 况中的一种或多种:
[0019] -A :唤醒或启动操作系统要用到非易失性内存中的压缩数据,进入第3步; [0020] --B :唤醒或启动操作系统要用到外存储器中的非压缩数据,进入第4步。
[0021] --C :唤醒或启动操作系统要用到外存储器中的压缩数据,进入第5步。
[0022] 第3步,开机程序从非易失性内存中将该压缩数据解压缩到内存中,然后回到第2 止 /J/ 〇
[0023] 第4步,开机程序从外存储器中将该非压缩数据加载到内存中,然后回到第2步。
[0024] 第5步,开机程序从外存储器中将该压缩数据解压缩后加载到内存中,然后回到 第2步。
[0025] 第6步,开机程序完成唤醒或启动操作系统。
[0026] 易失性内存设备在开机时需要在内存中加载操作系统映像文件,然后对外围设备 初始化,接着对跟随操作系统一起开机启动的应用程序初始化。
[0027] 混合内存设备在唤醒或开机时可以从非易失性内存和/或外存储器中直接加载 上一次挂起或关机时的所有运行中的软件,而恢复到上一次挂起或关机时状态。与易失性 内存设备在唤醒时总是需要从外存储器中加载上一次挂起时的所有运行中的软件相比,混 合内存设备缩短了唤醒或开机的时间。
[0028] 但是,混合内存设备中的非易失性内存的容量有限,在挂起或关机时往往需要进 行数据压缩、数据从内存转移到外存储器等操作。而数据压缩速度、外存储器的数据读写速 度都远小于内存的数据读写速度,这使得混合内存设备处理挂起或关机的时间较长。相应 地,混合内存设备在唤醒或开机时也需要进行数据解压缩、数据从外存储器转移到内存等 操作,也使得在触发唤醒或触发开机后的一段时间(通常为几十秒)内,系统的性能大幅度 降低,即处理唤醒或开机的时间较长。实际环境中,混合内存设备难以实现频繁地挂起和唤 醒。


【发明内容】

[0029] 本申请所要解决的技术问题是提供一种混合内存设备实现挂起或关机的方法,在 非易失性内存容量有限的前提下,减少挂起和唤醒的处理时间,提升唤醒初期的系统性能。
[0030] 为解决上述技术问题,本申请混合内存设备的挂起或关机方法为:
[0031] 第1步,当操作系统准备挂起或关机时,判断非易失性内存中的空闲空间是否可 容纳易失性内存中的强制型数据;
[0032] 如果是,则操作系统将易失性内存中的强制型数据转移到非易失性内存的空闲空 间,完成挂起或关机;
[0033] 如果否,则进入第2步;
[0034] 第2步,操作系统将非易失性内存中的可丢弃型数据或者丢弃、或者转移到外存 储器中,然后进入第3步;
[0035] 第3步,操作系统再次判断非易失性内存中的空闲空间是否可容纳易失性内存中 的强制型数据;
[0036] 如果是,则操作系统将易失性内存中的强制型数据转移到非易失性内存的空闲空 间,完成挂起或关机;
[0037] 如果否,则进入第4步;
[0038] 第4步,将当前在易失性内存中具有强制型数据的、且属于应用程序的进程称为 目标进程;操作系统标识当前时刻所有目标进程的优先级以及目标进程之间的依赖关系, 并选择不被其他目标进程所依赖的、且优先级最低的目标进程强制退出;
[0039] 如果强制退出成功,则返回第3步;
[0040] 如果强制退出失败,则进入第5步;
[0041] 第5步,操作系统将易失性内存中的强制型数据不经压缩或压缩后,全部转移到 外存储器中,完成挂起或关机。
[0042] 本申请混合内存设备的挂起或关机方法通过逐步关闭应用程序的进程,来逐步缩 小内存中的强制型数据,最终将易失性内存中的强制型数据全部转移到非易失性内存中。 除非关闭进程出错(少数情况下),才会回归到现有的混合内存设备的挂起或关机方法。本 申请可以在多种情况下避免数据压缩、数据从内存转移到外存储器等操作,因而大大加快 了挂起或关机的处理时间,也就相应地加快了唤醒或开机的处理时间,同时避免了唤醒或 开机初期的系统性能下降问题。

【专利附图】

【附图说明】
[0043] 图1?图3是现有的混合内存设备实现挂起或关机的方法的流程图;
[0044] 图4是现有的混合内存设备实现唤醒或开机的方法的流程图;
[0045] 图5?图7是本申请混合内存设备实现挂起或关机的方法的流程图;
[0046] 图8是本申请为目标进程标识优先级的方法的流程图;
[0047] 图9是各个目标进程之间的依赖关系的树状示意图;
[0048] 图10是本申请筛选出符合某些条件的目标进程并强制退出的方法的流程图。

【具体实施方式】
[0049] 请参阅图5,这是本申请混合内存设备实现挂起或关机的方法,包括如下步骤:
[0050] 第1步,当操作系统准备挂起或关机时,判断非易失性内存中的空闲空间是否可 容纳易失性内存中的强制型数据。如果是,则操作系统将易失性内存中的强制型数据转移 到非易失性内存的空闲空间,完成挂起或关机。如果否,则进入第2步。
[0051] 第2步,操作系统将非易失性内存中的可丢弃型数据或者丢弃、或者转移到外存 储器中,然后进入第3步。
[0052] 第3步,操作系统再次判断非易失性内存中的空闲空间是否可容纳易失性内存中 的强制型数据。如果是,则操作系统将易失性内存中的强制型数据转移到非易失性内存的 空闲空间,完成挂起或关机。如果否,则进入第4步。
[0053] 第4步,将当前在易失性内存中具有强制型数据的、且属于应用程序的进程 (process)称为目标进程。操作系统标识当前时刻所有目标进程的优先级以及目标进程之 间的依赖关系。接着,操作系统从目标进程中选择不被其他目标进程所依赖的、且优先级最 低的目标进程强制退出。如果强制退出成功,则返回第3步。如果强制退出失败,则进入第 5步。
[0054] 当满足上述条件的目标进程被强制退出后,其必然会释放内存。一种情况下,被强 制退出的进程释放出易失性内存的空间,则易失性内存中的强制型数据减少。另一种情况 下,被强制退出的进程释放出非易失性内存的空间,则非易失性内存中的空闲空间增加。再 一种情况下,被强制退出的进程同时释放出易失性内存和非易失性内存的空间。无论哪种 情况,都增加了非易失性内存中的空闲空间可容纳易失性内存中的强制型数据的概率。
[0055] 第5步,操作系统将易失性内存中的强制型数据不经压缩(优选)或压缩后(次选), 全部转移到外存储器中,完成挂起或关机。
[0056] 请参阅图6,这是图5所示的混合内存设备实现挂起或关机的方法的第一种变形。 第1步?第4步不变,第5步变为第5A步如下。
[0057] 第5A步,操作系统判断非易失性内存中的空闲空间是否可容纳压缩后的易失性 内存中的强制型数据。如果是,则操作系统将易失性内存中的强制型数据压缩后全部转移 到非易失性内存的空闲空间,完成挂起或关机。如果否,则操作系统将易失性内存中的强制 型数据不经压缩(优选)或压缩后(次选),全部转移到外存储器中,完成挂起或关机。
[0058] 请参阅图7,这是图5所示的混合内存设备实现挂起或关机的方法的第二种变形。 第1步?第4步不变,第5步变为第5B步如下。
[0059] 第5B步,操作系统判断非易失性内存中的空闲空间是否可容纳压缩后的易失性 内存中的强制型数据。如果是,则操作系统将易失性内存中的强制型数据压缩后全部转移 到非易失性内存的空闲空间,完成挂起或关机。如果否,则操作系统将易失性内存中的强制 型数据不经压缩(优选)或压缩后(次选),一部分转移到非易失性内存的空闲空间(优选首 先填满非易失性内存的空闲空间),剩余部分再转移到外存储器中,完成挂起或关机。
[0060] 图5?图7所示的混合内存设备实现挂起或关机的方法中,在完成挂起或关机之 前操作系统还将易失性内存中的可丢弃型数据或者丢弃、或者转移到外存储器中,该操作 可以放在任意步骤中进行。涉及到将易失性内存中的数据转移到非易失性内存中,可采用 内存热插拔技术。涉及到将内存中的数据转移到外存储器中的,可采用强制移出技术,并优 选转移到外存储器的交换分区或虚拟内存空间。
[0061] 在任意时刻,智能电子设备的所有软件的运行状态(runtime)在内存中的强制型 数据分为两部分,第一部分是操作系统的运行状态(即运行中的操作系统)在内存中的强制 型数据,第二部分是应用程序的运行状态(即运行中的应用程序)在内存中的强制型数据。 其中,后者的容量远大于前者。本申请就是逐一关闭应用程序的进程,同时始终保留操作系 统的进程;直至所有软件的运行状态在内存中的强制型数据可以全部转移到非易失性内存 为止。这样,本申请就在非易失性内存有限的前提下,在挂起或关机时不用进行数据压缩、 数据从内存转移到外存储器的操作,从而大大加快了挂起和关机的处理时间。采用本申请 所述的挂起或关机方法后,相应的唤醒或开机时不用进行数据解压缩、数据从外存储器转 移到内存的操作,从而大大加快了唤醒和开机的处理时间,也避免了唤醒和开机后的一段 时间内系统性能降低的问题。
[0062] 图5?图7所示方法的第4步中涉及到标识目标进程的优先级,下面就给出一种 具体的标识优先级的做法,如图8所示。
[0063] 第1步,操作系统为每个目标进程均添加自启动标识、10 (输入和/或输出)标识 和窗口标识。
[0064] 所述自启动标识用来表明该目标进程是否需要自行启动。自启动标识例如以一位 二进制数来表示,为1表明在唤醒或开机后用户希望该目标进程能够自行启动,为〇表明在 唤醒或开机后用户不希望该目标进程自行启动。操作系统可为所有进程预先设置自启动标 识,然后只需从中摘选出符合目标进程定义的进程的自启动标识即可。各个进程的自启动 标识也可由用户自行设置或更改。
[0065] 所述10标识用来记录该目标进程在当前时刻是否正在进行10处理,例如从网络 接口上传或下载数据、或者从磁盘读写数据等。10标识例如以一位二进制数来表示,为1表 明当前正在进行10处理,为0表示当前没有进行10处理。
[0066] 所述窗口标识用来记录该目标进程在当前时刻之前的一段时间内处于最前方窗 口(topview)的次数。窗口标识例如以多位二进制数来表示,优选为6位。所述一段时间 例如取30秒、60秒、90秒等。
[0067] 第2步,操作系统根据上述三个标识计算各个目标进程的优先级。总的原则是自 启动标识的权重最高,10标识次之,窗口标识最低。例如优先级是长度为一个字节的二进 制数,最高位是自启动标识,次高位是10标识,剩余6位是窗口标识。
[0068] 图5?图7所示方法的第4步中还涉及到标识目标进程之间的依赖关系。通常, 操作系统对于任意时刻所有运行中的进程之间的依赖关系是已知的,只需从中摘选出符合 目标进程定义的进程之间的依赖关系即可。请参阅图9,假设其表现的是某一时刻正在运行 中的所有目标进程,其中箭头末端的进程要依赖箭头尖端的进程才能运行。A进程不依赖于 其他的目标进程即可运行,同时A进程被B1和B2进程所依赖。B1和B2进程均需要依赖A 进程才能正常运行,同时B1进程被Cl和C3进程所依赖,B2进程被C2和C3进程所依赖。 Cl、C2和C3均需要依赖B1和/或B2进程才能正常运行,同时Cl、C2和C3进程均没有被 其他的目标进程所依赖。
[0069] 可选地,本申请还可由操作系统为每个目标进程均添加依赖标识,用来表明该目 标进程是否被其他目标进程所依赖以及被依赖程度。如果第一目标进程不被任何其他的目 标进程所依赖,则该第一目标进程的依赖标识取值为〇 (或其他特定值)。如果第二目标进 程仅被第三目标进程所依赖,则该第二目标进程的依赖标识取值为第三目标进程的依赖标 识+1。如果第四目标进程同时被多个其他目标进程所依赖,则该第四目标进程的依赖标识 取值为多个其他目标进程的依赖标识中的最大值+1。
[0070] 图5?图7所示方法的第4步中还涉及到将符合某些条件的目标进程强制退出, 在操作系统已为各个目标进程计算出优先级的情况下,该方法如图10所示,包括如下步 骤:
[0071] 第1步,选择出所有不被任何其他的目标进程所依赖的目标进程。
[0072] 如果有依赖标识、且依赖标识取值为0表示不被任何其他的目标进程所依赖的目 标进程,那么就相当于选择出所有依赖标识为0的目标进程。
[0073] 第2步,将第1步所选出的目标进程根据优先级由低到高排成一个队列。
[0074] 第3步,将位于所述队列开头的进程强制退出。如果强制退出成功,且需要再次强 制退出新的目标进程,则需要回到第1步,这是由于各个目标进程的依赖标识和优先级都 可能随着时间发生变化。
[0075] 本申请仅提供了一种新型的混合内存设备实现挂起或关机的方法,对混合内存设 备实现唤醒或开机的方法并无改变,仍可采用图4所示的现有方法。
[0076] 以上仅为本申请的优选实施例,并不用于限定本申请。对于本领域的技术人员来 说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同 替换、改进等,均应包含在本申请的保护范围之内。
【权利要求】
1. 一种混合内存设备的挂起或关机方法,其特征是,包括如下步骤: 第1步,当操作系统准备挂起或关机时,判断非易失性内存中的空闲空间是否可容纳 易失性内存中的强制型数据; 如果是,则操作系统将易失性内存中的强制型数据转移到非易失性内存的空闲空间, 完成挂起或关机; 如果否,则进入第2步; 第2步,操作系统将非易失性内存中的可丢弃型数据或者丢弃、或者转移到外存储器 中,然后进入弟3步; 第3步,操作系统再次判断非易失性内存中的空闲空间是否可容纳易失性内存中的强 制型数据; 如果是,则操作系统将易失性内存中的强制型数据转移到非易失性内存的空闲空间, 完成挂起或关机; 如果否,则进入第4步; 第4步,将当前在易失性内存中具有强制型数据的、且属于应用程序的进程称为目标 进程;操作系统标识当前时刻所有目标进程的优先级以及目标进程之间的依赖关系,并选 择不被其他目标进程所依赖的、且优先级最低的目标进程强制退出; 如果强制退出成功,则返回第3步; 如果强制退出失败,则进入第5步; 第5步,操作系统将易失性内存中的强制型数据不经压缩或压缩后,全部转移到外存 储器中,完成挂起或关机。
2. 根据权利要求1所述的混合内存设备的挂起或关机方法,其特征是,所述方法第5步 改为第5A步:操作系统判断非易失性内存中的空闲空间是否可容纳压缩后的易失性内存 中的强制型数据; 如果是,则操作系统将易失性内存中的强制型数据压缩后全部转移到非易失性内存的 空闲空间,完成挂起或关机; 如果否,则操作系统将易失性内存中的强制型数据不经压缩或压缩后,全部转移到外 存储器中,完成挂起或关机。
3. 根据权利要求1所述的混合内存设备的挂起或关机方法,其特征是,所述方法第5步 改为第5B步:操作系统判断非易失性内存中的空闲空间是否可容纳压缩后的易失性内存 中的强制型数据; 如果是,则操作系统将易失性内存中的强制型数据压缩后全部转移到非易失性内存的 空闲空间,完成挂起或关机; 如果否,则操作系统将易失性内存中的强制型数据不经压缩或压缩后,一部分转移到 非易失性内存的空闲空间,剩余部分再转移到外存储器中,完成挂起或关机。
4. 根据权利要求1所述的混合内存设备的挂起或关机方法,其特征是,所述方法第4步 中,操作系统标识当前时刻所有目标进程的优先级的方法为: 首先,操作系统为每个目标进程均添加自启动标识、10标识和窗口标识; 所述自启动标识表明该目标进程是否需要自行启动; 所述10标识记录该目标进程在当前时刻是否正在进行10处理; 所述窗口标识记录该目标进程在当前时刻之前的一段时间内处于最前方窗口的次 数; 然后,操作系统根据上述三个标识计算各个目标进程的优先级;所述自启动标识的权 重最高,10标识的权重次之,窗口标识的权重最低。
5. 根据权利要求1所述的混合内存设备的挂起或关机方法,其特征是,所述方法第4步 中,操作系统标识当前时刻所有目标进程的依赖关系的方法为:操作系统根据已知的当前 时刻所有运行中的进程之间的依赖关系,从中摘选出当前时刻所有目标进程之间的依赖关 系。
6. 根据权利要求1所述的混合内存设备的挂起或关机方法,其特征是,所述方法第4步 中,操作系统选择不被其他目标进程所依赖的、且优先级最低的目标进程强制退出的方法 为: 首先,操作系统选择出所有不被任何其他的目标进程所依赖的目标进程; 然后,操作系统将所选出的目标进程根据优先级由低到高排成一个队列; 最后,操作系统将位于所述队列开头的目标进程强制退出。
【文档编号】G06F9/445GK104156226SQ201310178446
【公开日】2014年11月19日 申请日期:2013年5月15日 优先权日:2013年5月15日
【发明者】徐景, 朱峰, 蔡俊杰, 赵浩, 陈虎 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1