交换操作的实现方法和装置的制造方法

文档序号:8905054阅读:369来源:国知局
交换操作的实现方法和装置的制造方法
【技术领域】
[0001] 本发明实施例涉及通信技术,尤其涉及一种交换操作的实现方法和装置。
【背景技术】
[0002] 交换(SWAP)分区虽然是存储介质(例如磁盘)上的一部分,但是被作为许多操作系 统(如Linux、Windows)的虚拟内存分区来使用。当操作系统检测到空闲物理内存不足或 耗尽的时候,操作系统启动SWAP换出操作,将部分物理内存页面中的数据迁移到SWAP分区 中,用于临时扩充物理内存资源的容量。由于SWAP分区本质上是存储介质,其性能会明显 比物理内存的性能差。如果SWAP分区中的数据需要频繁访问,则需要操作系统启动SWAP 换入操作,将SWAP分区中的数据换入到物理内存中。因此,操作系统需要负责将数据在物 理内存和SWAP分区间进行迁移,也就是SWAP操作。
[0003]现有技术中的SWAP操作,操作系统的开销比较大,影响计算机系统的性能。

【发明内容】

[0004] 本发明实施例提供一种交换操作的实现方法和装置,用W解决现有技术中操作系 统的开销大,影响计算机系统的性能的技术问题。
[0005] 第一方面,本发明实施例提供一种交换操作的实现方法,包括:
[0006] 内存控制器接收处理器发送的第一请求;其中,所述第一请求包括第一虚拟地址, 用于请求所述内存控制器为所述第一虚拟地址对应的第一数据分配第一空闲物理内存页 面;
[0007] 所述内存控制器根据当前空闲物理内存空间状态和所述第一请求的优先级判断 是否为所述第一数据分配所述第一空闲物理内存页面;
[0008] 若所述内存控制器为所述第一数据分配了所述第一空闲物理内存页面,则所述内 存控制器根据剩余的空闲物理内存空间状态判断是否启动SWAP换出操作。
[0009] 结合第一方面,在第一方面的第一种可能的实施方式中,所述内存控制器根据当 前空闲物理内存空间状态和所述第一请求的优先级判断是否为所述第一数据分配所述第 一空闲物理内存页面,包括:
[0010] 所述内存控制器判断当前空闲物理内存空间是否大于第一阔值;
[0011] 若是,则所述内存控制器为所述第一数据分配所述第一空闲物理内存页面;若否, 则所述内存控制器判断所述第一请求的优先级是否大于第二阔值;
[0012] 若是,则所述内存控制器为所述第一数据分配所述第一空闲物理内存页面;
[001引若否,则所述内存控制器将所述第一数据存储至所述SWAP分区。
[0014] 结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式 中,若所述内存控制器为所述第一数据分配了所述第一空闲物理内存页面,则所述内存控 制器根据剩余的空闲物理内存空间状态判断是否启动SWAP换出操作,包括:
[0015] 若所述内存控制器判断剩余的空闲物理内存空间状态小于第H阔值,则所述内存 控制器启动SWAP换出操作。
[0016] 结合第一方面的第二种可能的实施方式,在第一方面的第H种可能的实施方式 中,所述内存控制器启动SWAP换出操作,具体包括:
[0017] 所述内存控制器确定访问频度小于第五阔值的物理内存页面;
[001引所述内存控制器在所述SWAP分区中选择第一磁盘片段;
[0019] 所述内存控制器将所述访问频度小于第五阔值的物理内存页面中的数据迁移至 所述第一磁盘片段;
[0020] 所述内存控制器将所述第一虚拟地址和所述第一磁盘片段的映射关系增加至 SWAP分区映射表中;其中,所述SWAP分区映射表包括各个虚拟地址和各个虚拟地址对应的 数据在所述SWAP分区中的存储位置之间的映射关系。
[0021] 结合第一方面,在第一方面的第四种可能的实施方式中,所述方法还包括:
[0022] 所述内存控制器根据当前SWAP分区的第二数据的访问频度判断是否启动SWAP换 入操作。
[0023] 结合第一方面的第四种可能的实施方式,在第一方面的第五种可能的实施方式 中,所述内存控制器根据当前SWAP分区的第二数据的访问频度确定是否启动SWAP换入操 作,包括:
[0024] 若所述内存控制器判断当前SWAP分区中的第二数据的访问频度大于第四阔值, 则所述内存控制器启动SWAP换入操作。
[0025] 结合第一方面的第五种可能的实施方式,在第一方面的第六种可能的实施方式 中,所述内存控制器启动SWAP换入操作,具体包括:
[0026] 所述内存控制器为所述第二数据分配第二空闲物理内存页面;
[0027] 所述内存控制器将所述第二数据迁移至所述第二空闲物理内存页面;
[002引所述内存控制器更新SWAP分区映射表。
[0029] 结合第一方面,在第一方面的第走种可能的实施方式中,所述方法还包括:
[0030] 若所述内存控制器判断所述当前空闲物理内存空间状态和当前未分配的SWAP分 区状态均小于第六阔值,则所述内存控制器通知操作系统执行缺页异常处理。
[0031] 结合第一方面至第一方面的第走种可能的实施方式中的任一项,在第一方面的第 八种可能的实施方式中,所述方法还包括:
[0032]所述内存控制器接收处理器发送的第二请求;其中,所述第二请求携带第二虚拟 地址;
[0033] 所述内存控制器判断所述第二虚拟地址是否合法;
[0034] 若不合法,则所述内存控制器上报所述第二虚拟地址错误给操作系统;
[0035] 若合法,则所述内存控制器根据页表判断所述内存控制器是否为所述第二虚拟地 址对应的第H数据分配了存储空间,获得判断结果;
[0036] 所述内存控制器根据所述判断结果执行第一操作。
[0037] 结合第一方面的第八种可能的实施方式,在第一方面的第九种可能的实施方式 中,若所述判断结果为所述内存控制器为所述第H数据分配了所述存储空间,则所述第一 操作包括:
[003引所述内存控制器根据所述页表判断所述第H数据是否存放于SWAP分区中;
[0039] 若是,则所述内存控制器根据SWAP分区映射表确定所述第H数据存储在所述 SWAP分区中的位置和长度信息;
[0040] 所述内存控制器根据所述第H数据存储在所述SWAP分区中的位置访问所述第H 数据;
[0041] 所述内存控制器将所述第H数据发送给所述处理器;
[0042] 若否,则所述内存控制器确定所述第H数据存储在物理内存空间中;
[0043] 所述内存控制器根据所述页表确定所述第H数据在所述物理内存空间中对应的 物理地址;
[0044] 所述内存控制器根据所述物理地址访问所述第H数据;
[0045] 所述内存控制器将所述第H数据发送给所述处理器。
[0046] 结合第一方面的第八种可能的实施方式,在第一方面的第十种可能的实施方式 中,若所述判断结果为所述内存控制器没有为所述第H数据分配所述存储空间,则所述第 一操作包括:
[0047] 所述内存控制器执行缺页中断处理,为所述第H数据分配所述存储空间。
[0048] 第二方面,本发明实施例提供一种交换操作的实现装置,包括:
[0049] 接收模块,用于接收处理器发送的第一请求;其中,所述第一请求包括第一虚拟地 址,用于请求为所述第一虚拟地址对应的第一数据分配第一空闲物理内存页面;
[0050] 判断分配模块,用于根据当前空闲物理内存空间状态和所述第一请求的优先级判 断是否为所述第一数据分配所述第一空闲物理内存页面;还用于若所述判断分配模块为所 述第一数据分配了所述第一空闲物理内存页面,则根据剩余的空闲物理内存空间状态判断 是否启动SWAP换出操作。
[0051] 结合第二方面,在第二方面的第一种可能的实施方式中,所述判断分配模块,具体 用于判断当前空闲物理内存空间是否大于第一阔值;若是,则为所述第一数据分配所述第 一空闲物理内存页面;若否,则判断所述第一请求的优先级是否大于第二阔值;若是,则为 所述第一数据分配所述第一空闲物理内存页面;若否,则将所述第一数据存储至所述SWAP 分区。
[0052] 结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式 中,所述判断分配模块,具体用于若判断所述剩余的空闲物理内存空间状态小于第H阔值, 则确定启动SWAP换出操作。
[0053] 结合第二方面的第二种可能的实施方式,在第二方面的第H种可能的实施方式 中,所述判断分配模块,具体包括:
[0054] 确定单元,用于确定访问频度小于第五阔值的物理内存页面;
[00巧]选择单元,用于在所述SWAP分区中选择第一磁盘片段;
[0056] 第一迁移单元,用于将所述访问频度小于第五阔值的物理内存页面中的数据迁移 至所述第一磁盘片段;
[0057] 增加单元,用于将所述第一虚拟地址和所述第一磁盘片段的映射关系增加至SWAP 分区映射表中;其中,所述SWAP分区映射表包括各个虚拟地址和各个虚拟地址对应的数据 在所述SWAP分区中的存储位置之间的映射关系。
[0058] 结合第二方面,在第二方面的第四种可能的实施方式中,所述判断分配模块,还用 于
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1