CN102369518A - 管理计算机系统内存的方法、内存管理单元和计算机系统 - Google Patents
管理计算机系统内存的方法、内存管理单元和计算机系统 Download PDFInfo
- Publication number
- CN102369518A CN102369518A CN2011800017223A CN201180001722A CN102369518A CN 102369518 A CN102369518 A CN 102369518A CN 2011800017223 A CN2011800017223 A CN 2011800017223A CN 201180001722 A CN201180001722 A CN 201180001722A CN 102369518 A CN102369518 A CN 102369518A
- Authority
- CN
- China
- Prior art keywords
- internal memory
- memory
- mode
- following
- consumer process
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Memory System (AREA)
Abstract
本发明公开了一种管理计算机系统内存的方法、内存管理单元和计算机系统。该方法包括:接收用户进程发送的分配请求;根据该分配请求为该用户进程分配内存,并为该内存设置下线标记;接收该用户进程发送的锁定请求;根据该锁定请求和该内存的下线标记,对该内存进行锁定操作;根据该内存的下线标记对该内存进行下线操作。该内存管理单元包括第一接收模块、分配模块、第二接收模块、锁定模块和下线模块。该计算机系统包括至少一个内存以及根据本发明实施例的内存管理单元。本发明实施例的管理计算机系统内存的方法、内存管理单元和计算机系统,通过内核与用户进程的交互以及给内存设置下线模式,能够实现对用户进程锁定的内存进行下线。
Description
技术领域
本发明涉及计算机领域,尤其涉及计算机领域中管理计算机系统内存的方法、内存管理单元和计算机系统。
背景技术
中高端服务器需要具备一定的可伸缩性,而设备热插拔特性是可伸缩性的一个重要组成部分,即服务器可以在计算机系统不中断的情况,实现设备的动态添加和删除,以达到扩容、错误隔离等目的,满足计算机系统可靠性、业务能力或者节能等要求。
热插拔设备一般包括处理器、内存、输入输出(Input Output,简称为“IO”)外围设备等,其中内存热插拔是最重要的组成部分之一,这是由于内存是计算机系统的重要资源之一。内存热插是指在计算机系统不中断的情况下添加一个内存设备,内存热拔是指在计算机系统不中断的情况下删除一个内存设备。内存热拔需要将目标内存中已占用的内存迁移、回收。然而计算机系统中存在着不可迁移的页,包括内核占用的物理页和用户进程锁定的物理页。
在申请的过程中,内核占用的物理页会被计算机系统标记为不可迁移的页,因此在内核申请内存过程中,计算机系统可以从特定的区域(不可迁移的内存区域)分配物理内存,从而达到目标内存下线的目的。用户进程申请内存时,该内存属于可以迁移的普通内存,但在用户进程指定将该内存锁定后,该内存就被标记为不可迁移的页,从而成为目标内存下线的障碍。用户进程锁定的内存能否下线是实现内存能否热插拔的关键因素之一。
面对用户进程锁定的内存难以下线的问题,通常可以反复尝试去迁移该内存,以希望该内存在此反复尝试过程中被用户进程解锁。然而,反复尝试迁移的方法并不能确保该内存被下线,这是由于用户进程对锁定的内存进行解锁的行为完全不受尝试迁移内存的影响,两者没有必然的联系。因而,在尝试内存下线的过程中,被用户进程锁定的内存可能一直保持着锁定状态。
因此,需要合适的方案来管理计算机系统的内存,以实现对用户进程锁定的内存进行下线,从而实现内存的热插拔。
发明内容
本发明实施例提供了一种管理计算机系统内存的方法、内存管理单元和计算机系统,能够实现对用户进程锁定的内存进行下线,从而实现内存的热插拔。
一方面,本发明实施例提供了一种管理计算机系统内存的方法,该方法包括:接收用户进程发送的分配请求,该分配请求用于请求为该用户进程分配计算机系统的内存;根据该分配请求为该用户进程分配内存,并为该内存设置下线标记,该下线标记用于表示该内存的下线模式;接收该用户进程发送的锁定请求,该锁定请求用于请求对该内存进行锁定;根据该锁定请求和该内存的下线标记,对该内存进行锁定操作;根据该内存的下线标记对该内存进行下线操作。
另一方面,本发明实施例提供了一种内存管理单元,该内存管理单元包括:第一接收模块,用于接收用户进程发送的分配请求,该分配请求用于请求为该用户进程分配计算机系统的内存;分配模块,用于根据该第一接收模块接收的该分配请求,为该用户进程分配内存,并为该内存设置下线标记,该下线标记用于表示该内存的下线模式;第二接收模块,用于接收该用户进程发送的锁定请求,该锁定请求用于请求对计算机系统的内存进行锁定;锁定模块,用于根据该第二接收模块接收的该锁定请求和该内存的下线标记,对该内存进行锁定操作;下线模块,用于根据该内存的下线标记,对该锁定模块锁定的该内存进行下线操作。
再一方面,本发明实施例提供了一种计算机系统,该计算机系统包括至少一个内存,以及根据本发明实施例的内存管理单元,该内存管理单元用于管理该至少一个内存。该内存管理单元包括:第一接收模块,用于接收用户进程发送的分配请求,该分配请求用于请求为该用户进程分配计算机系统的内存;分配模块,用于根据该第一接收模块接收的该分配请求,为该用户进程分配内存,并为该内存设置下线标记,该下线标记用于表示该内存的下线模式;第二接收模块,用于接收该用户进程发送的锁定请求,该锁定请求用于请求对计算机系统的内存进行锁定;锁定模块,用于根据该第二接收模块接收的该锁定请求和该内存的下线标记,对该内存进行锁定操作;下线模块,用于根据该内存的下线标记,对该锁定模块锁定的该内存进行下线操作。
基于上述技术方案,根据本发明实施例的管理计算机系统内存的方法、内存管理单元和计算机系统,通过内核与用户进程的交互以及给内存设置下线模式,使得内核能够根据内存的下线模式对内存进行相应的下线操作,从而能够实现对用户进程锁定的内存进行下线,由此能够实现内存的热插拔,并避免系统资源的浪费。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的管理计算机系统内存的方法的示意性流程图。
图2是根据本发明另一实施例的管理计算机系统内存的方法的示意性流程图。
图3是根据本发明再一实施例的管理计算机系统内存的方法的示意性流程图。
图4是根据本发明实施例的修改内存的下线模式的方法的示意性流程图。
图5是根据本发明实施例的锁定内存的方法的示意性流程图。
图6是根据本发明实施例的对锁定的内存进行下线操作的方法的示意性流程图。
图7是根据本发明实施例的解锁内存的方法的示意性流程图。
图8是根据本发明实施例的内存管理单元的示意性框图。
图9是根据本发明另一实施例的内存管理单元的示意性框图。
图10是根据本发明再一实施例的内存管理单元的示意性框图。
图11是根据本发明实施例的锁定模块的示意性框图。
图12是根据本发明实施例的下线模块的示意性框图。
图13是根据本发明实施例的确定模块的示意性框图。
图14是根据本发明实施例的计算机系统的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
应理解,本发明实施例的技术方案可以应用于各种计算机系统,包括个人计算机(Personal Computer,简称为“PC”)、大型计算机系统或各种超级计算机(Supercomputer)等。本发明实施例以包括至少一个内存的计算机系统为例进行说明,但是本发明实施例并不限于此。
图1示出了根据本发明实施例的管理计算机系统内存的方法100的示意性流程图。如图1所示,该方法100包括:
S110,接收用户进程发送的分配请求,该分配请求用于请求为该用户进程分配计算机系统的内存;
S120,根据该分配请求为该用户进程分配内存,并为该内存设置下线标记,该下线标记用于表示该内存的下线模式;
S130,接收该用户进程发送的锁定请求,该锁定请求用于请求对该内存进行锁定;
S140,根据该锁定请求和该内存的下线标记,对该内存进行锁定操作;
S150,根据该内存的下线标记对该内存进行下线操作。
计算机系统的内核或操作系统或内存管理单元,在接收用户进程发送的用于请求分配计算机系统的内存的分配请求后,为该用户进程分配内存,并为该内存设置用于表示内存的下线模式的下线标记;该内核或操作系统在接收到用户进程发送的对内存进行锁定的请求后,可以根据用户进程的锁定请求和该内存的下线标记,对该内存进行锁定操作,并且在需要对锁定的内存进行下线时,可以根据该内存的下线标记对该内存进行下线操作。
因此,根据本发明实施例的管理计算机系统内存的方法,通过内核与用户进程的交互以及给内存设置下线模式,使得内核能够根据内存的下线模式对内存进行相应的下线操作,从而能够实现对用户进程锁定的内存进行下线,由此能够实现内存的热插拔,并避免系统资源的浪费。
在本发明实施例中,下线模式或下线策略可以包括缺省模式(DEFAULT)、迁移模式(MIGRATE)、通知模式(NOTIFY)和强行解锁模式(UNLOCK)中的至少一种。可选地,该下线模式包括缺省模式、迁移模式、通知模式和强行解锁模式。
对于缺省模式,用户进程可以指定该内存使用缺省模式进行下线操作,在用户进程未指定下线策略时,也可以使用该模式;对于迁移模式,指内存在锁定之前需要迁移到不可移动的区域,然后再被锁定;对于通知模式,指内核在需要对内存下线前,通知用户进程解锁该内存;对于强行解锁模式,指内核在需要对内存下线时,内核可以对该内存进行强行解锁,然后下线该内存。应理解,本发明实施例中的上述四种下线模式的名称以及其简要描述,只是为了读者更好地理解本发明实施例,本发明实施例并不限于此,并且上述四种下线模式的具体含义,应结合本发明实施例中描述的具体操作进行理解。
在本发明实施例中,用户进程还可以根据需要,对申请到的内存的下线模式进行修改,即用户进程可以设置内存的下线模式。因此,如图2所示,根据本发明实施例的管理计算机系统内存的方法100还可以包括:
S160,接收该用户进程发送的包括模式信息的修改请求,该模式信息表示该用户进程为该内存设置的下线模式;
S170,根据该模式信息,将该内存的下线标记修改为表示该用户进程设置的下线模式。
即在用户进程申请到内存之后,用户进程可以根据需要对申请到的内存设置下线模式,并通过向内核发送包括模式信息的修改请求,使得内核根据该模式信息,将该内存的下线标记修改为表示该用户进程设置的下线模式。
在本发明实施例中,内核在接收该用户进程发送的锁定请求之后,可以根据该内存的下线标记确定该内存的下线模式,如果该内存的下线模式为缺省模式,则内核可以根据情况对内存的下线模式重新设置。即,如图2所示,根据本发明实施例的该方法100还可以包括;
S180,如果该内存的下线模式为缺省模式,则根据该计算机系统的要求重新确定该内存的下线模式,并将该内存的下线标记修改为表示重新确定的该下线模式。
可选地,如果计算机系统要求系统运行性能,则内核将该内存的下线模式确定为缺省模式;如果该计算机系统要求热插拔性能,则内核将该内存的下线模式确定为迁移模式。
应理解,本发明实施例的方法可以由内核或操作系统或内存管理单元执行,为了描述方便,下文中将以内核作为执行主体进行描述,但是本发明实施例并不限于此。
具体而言,在S110中,用户进程可以根据自身需求向内核发送请求分配内存的分配请求。
在S120中,内核根据该分配请求为该用户进程分配内存,并为该内存设置下线标记,该下线标记用于表示该内存的下线模式。可选地,内核为该分配的内存设置用于表示缺省模式的下线标记。例如,内核可以为该内存增加下线标记PG_flag,并对该下线标记赋值为PG_flag=DEFAULT。当然,内核也可以为该内存设置其他下线模式,本发明实施例并不限于此。
可选地,用户进程可以通过内核提供的接口为申请到的内存设置或制定下线模式或下线策略。具体而言,在S160中,用户进程可以根据自身需求向内核发送修改内存的下线模式的修改请求,该修改请求包括用于表示该用户进程为该内存设置的下线模式的模式信息。例如,该修改请求可以包括BEHAVIOR参数,该BEHAVIOR参数可以赋值为DEFAULT、MIGRATE、NOTIFY和UNLOCK,分别表示该用户进程将该内存的下线模式设置为缺省模式、迁移模式、通知模式和强制解锁模式。
在S170中,内核根据该模式信息,对该内存的下线模式进行修改。具体地,内核可以根据该修改请求中传递的BEHAVIOR参数,将该内存的下线标记修改为表示该用户进程设置的下线模式。
具体而言,例如,对于请求被修改下线模式的内存A,内核可以解析该修改请求中包括的参数BEHAVIOR,如果BEHAVIOR==DEFAULT,那么内核可以确定用户进程将该内存A的下线模式设置为缺省模式,此时,内核可以修改该内存A的下线标记PG_flag,即对该下线标记赋值为PG_flag=DEFAULT;如果BEHAVIOR==MIGRATE,那么内核可以确定用户进程将该内存A的下线模式设置为迁移模式,此时,内核可以对该内存A的下线标记赋值为PG_flag=MIGRATE;类似地,如果BEHAVIOR==NOTIFY,那么内核可以确定用户进程将该内存A的下线模式设置为通知模式,此时,内核可以将该内存A的下线标记赋值为PG_flag=NOTIFY;如果BEHAVIOR==UNLOCK,那么内核可以确定用户进程将该内存A的下线模式设置为强行解锁模式,此时,内核可以将该内存A的下线标记赋值为PG_flag=UNLOCK。
在S130中,用户进程可以根据自身需求向内核申请对计算机系统的内存进行锁定。
在S140中,内核接收到用户进程发送的锁定请求后,需要确定被请求锁定的内存的下线模式,并根据具体的下线模式和锁定请求,对该内存进行锁定操作。
具体而言,内核可以通过解析内存的下线标记,确定该内存的下线模式。例如,如果内核确定该内存的下线标记PG_flag=DEFAULT,则该内存的下线模式为缺省模式,类似地,如果内核确定该内存的下线标记PG_flag为MIGRATE、NOTIFY或UNLOCK,则内核可以确定该内存的下线模式为迁移模式、通知模式或强制解锁模式。
可选地,如果该内存的下线标记表示该缺省模式、该通知模式或该强行解锁模式,则对该内存进行锁定;如果该内存的下线标记表示该迁移模式,则对该内存进行迁移,并且如果该内存迁移成功,则对迁移后的内存进行锁定,以及将该迁移后的内存设置用于表示该迁移模式的下线标记;如果该内存迁移失败,则对该内存进行锁定,以及将该内存的下线标记修改为表示该缺省模式。
可选地,如果内核确定该内存的下线模式为缺省模式,则内核可以重新确定该内存的更合适的下线模式。即在S180中,内核根据计算机系统的要求重新确定该内存的下线模式,并将该内存的下线标记修改为表示重新确定的该下线模式。
在S150中,如果内核需要对用户进程锁定的内存进行下线,那么内核可以通过对内存的下线标记进行解析,确定该内存的下线模式,并根据该下线模式对该内存进行下线操作。
可选地,如果该内存的下线标记表示该缺省模式或该迁移模式,则等待该内存被解锁,并在该内存被解锁后,对该内存进行迁移;如果该内存的下线标记表示该通知模式,则通知该用户进程对该内存进行解锁,并在该内存被解锁后,对该内存进行迁移,以及在该内存被迁移后,通知该用户进程对迁移后的内存进行锁定;如果该内存的下线标记表示该强行解锁模式,则对该内存进行解锁,并在该内存被解锁后,对该内存进行迁移,以及对迁移后的内存进行锁定,并将该迁移后的内存设置用于表示该强行解锁模式的下线标记。
因此,根据本发明实施例的管理计算机系统内存的方法,通过内核与用户进程的交互以及给内存设置下线模式,使得内核能够根据内存的下线模式对内存进行相应的下线操作,从而能够实现对用户进程锁定的内存进行下线,由此能够实现内存的热插拔,并避免系统资源的浪费。
在本发明实施例中,可选地,如果用户进程申请对锁定的内存进行解锁,那么如图3所示,根据本发明实施例的该方法100还包括:
S190,接收用户进程发送的解锁请求,该解锁请求用于请求对该内存进行解锁;
S195,根据该解锁请求,如果该内存的下线标记表示该迁移模式,则将该内存回迁到该用户进程所在的节点上。
即,在用户进程主动要求对锁定的内存进行解锁的流程中,如果该内存的下线标记表示该内存的下线模式为迁移模式,则在对该锁定的内存进行解锁之前,内核可以申请本地内存,以将该被锁定的内存回迁到该用户进程所在的节点上。对于下线模式为缺省模式、通知模式或强制解锁模式的被锁定内存,则内核可以根据用户进程的申请,直接将被锁定内存进行解锁。例如,在此情况下,对于具有MIGRATE下线标记的锁定内存,在被解锁之前通过将该内存回迁到用户进程所在的节点上,能够进一步提升系统的性能。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
因此,根据本发明实施例的管理计算机系统内存的方法,通过内核与用户进程的交互以及给内存设置下线模式,使得内核能够根据内存的下线模式对内存进行相应的下线操作,从而能够实现对用户进程锁定的内存进行下线,由此能够实现内存的热插拔,提升系统的性能,并避免系统资源的浪费。
下面将结合图4至图7所示的具体实施例,对根据本发明实施例的修改内存的下线模式的方法、锁定内存的方法、对锁定的内存进行下线操作的方法以及解锁内存的方法进行详细描述。
如图4所示,根据本发明实施例的设置内存的下线模式的方法200包括:
S201,用户进程根据自身需要向内核申请内存A。
S202,内核根据用户进程发送的分配请求,为该用户进程分配内存,并为该内存设置下线标记,该下线标记用于表示该内存的下线模式。可选地,内核将该内存的下线标记PG_flag设置为缺省模式DEFAULT,即PG_flag=DEFAULT。
可选地,用户进程在申请得到内存A之后,可以通过内核提供的接口设置该内存A的下线模式,该下线模式包括缺省模式、迁移模式、通知模式和强行解锁模式。
即S203,用户进程向内核发送申请修改内存的下线模式的修改请求,该修改请求包括用于表示该用户进程为该内存设置的下线模式的模式信息。该模式信息例如为BEHAVIOR参数。
S204,内核通过解析用户进程传输的诸如BEHAVIOR参数的模式信息,以确定用户进程为该内存A设置的下线模式。
如果用户进程为该内存A设置的下线模式为缺省模式,那么流程进行到S205;如果用户进程为该内存A设置的下线模式不为缺省模式,那么流程进行到S206、S207或S208。具体而言,如果用户进程为该内存A设置的下线模式为迁移模式,那么流程进行到S206;如果用户进程为该内存A设置的下线模式为通知模式,那么流程进行到S207;如果用户进程为该内存A设置的下线模式为强行解锁模式,那么流程进行到S208。
S205,内核将该内存A的下线标记赋值为PG_flag=DEFAULT。此时,对于用户进程设置的下线模式为缺省模式的内存A,该内存A的下线模式设置流程结束。
S206,内核将该内存A的下线标记赋值为PG_flag=MIGRATE。此时,对于用户进程设置的下线模式为迁移模式的内存A,该内存A的下线模式设置流程结束。
S207,内核将该内存A的下线标记赋值为PG_flag=NOTIFY。此时,对于用户进程设置的下线模式为通知模式的内存A,该内存A的下线模式设置流程结束。
S208,内核将该内存A的下线标记赋值为PG_flag=UNLOCK。此时,对于用户进程设置的下线模式为强行解锁模式的内存A,该内存A的下线模式设置流程结束。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
因此,通过内核与用户进程的交互以及给内存设置下线模式,使得内核能够根据内存的下线模式对内存进行相应的锁定和下线操作,从而能够实现对用户进程锁定的内存进行下线。
图5示出了根据本发明实施例的锁定内存的方法300的示意性流程图。如图4所示,该方法300包括:
S301,用户进程可以根据需要向内核申请对内存A进行锁定。
S302,内核通过解析内存A的下线标记PG_flag,确定该内存A被设置的下线模式。
如果内核确定该内存A的下线模式为缺省模式,即PG_flag==DEFAULT,那么流程进行到S303;如果内核确定该内存A的下线模式不为缺省模式,即PG_flag!=DEFAULT,那么流程进行到S305、S309或S310。具体地,如果内核确定该内存A的下线模式为迁移模式,即PG_flag==MIGRATE,那么流程进行到S305;如果内核确定该内存A的下线模式为通知模式,即PG_flag==NOTIFY,那么流程进行到S309;如果内核确定该内存A的下线模式为强行解锁模式,即PG_flag==UNLOCK,那么流程进行到S310。
S303,内核确定计算机系统的配置或要求。如果内核确定该计算机系统要求系统运行性能,则流程进行到S304;如果该计算机系统要求热插拔性能,则流程进行到S305。
S304,如果内存A的下线模式为缺省模式,则内核锁定该内存A,并对该内存的下线标记赋值为PG_flag=DEFAULT。此时,对于下线模式为缺省模式的内存A,该内存A的锁定流程结束。
S305,如果内存A的下线模式为迁移模式,则内核在系统指定区域重新申请内存B,该指定区域为不可移动内存区域,一般被限定在主节点上。
S306,内核将内存A迁移到内存B,并将内存A释放。
S307,内核确定内存A是否迁移成功。如果内存A迁移成功,那么流程进行到S308,否则流程进行到S304。
S308,内核锁定该内存B,并为该内存B设置下线标记PG_flag,并对该下线标记赋值为PG_flag=MIGRATE。即此时,对于下线模式为迁移模式的内存A,该内存A的锁定流程结束。
S309,如果内存A的下线模式为通知模式,则内核锁定该内存A。即此时,对于下线模式为通知模式的内存A,该内存A的锁定流程结束。
S310,如果内存A的下线模式为强行解锁模式,则内核锁定该内存A。即此时,对于下线模式为强行解锁模式的内存A,该内存A的锁定流程结束。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图6示出了根据本发明实施例的对锁定的内存进行下线操作的方法400的示意性流程图。如图6所示,该方法400包括:
S401,内核根据需要确定对内存A进行下线操作。
S402、内核通过解析内存A的下线标记PG_flag,确定该内存A被设置的下线模式。
如果内核确定该内存A的下线模式为缺省模式,即PG_flag==DEFAULT,那么流程进行到S403;如果内核确定该内存A的下线模式不为缺省模式,即PG_flag!=DEFAULT,那么流程进行到S403、S406或S408。具体地,如果内核确定该内存A的下线模式为迁移模式,即PG_flag==MIGRATE,那么流程进行到S403;如果内核确定该内存A的下线模式为通知模式,即PG_flag==NOTIFY,那么流程进行到S406;如果内核确定该内存A的下线模式为强行解锁模式,即PG_flag==UNLOCK,那么流程进行到S408。
S403,如果内存A的下线模式为缺省模式或迁移模式,则内核等待内存A被用户进程解锁。
S404,内核检验该内存A是否被用户进程解锁。如果该内存A被解锁,那么流程进行到S405;否则,流程进行到S403,即内核继续等待内存A被解锁。
S405,如果内存A被用户进程解锁,那么内核迁移内存A。应理解,所谓迁移内存A即为将内存A迁移到其他内存。对于迁移后的新内存,内核可以将该新内存的下线标记设置为PG_flag=DEFAULT。此时,对于下线模式为缺省模式或迁移模式的内存A,该内存A的下线流程结束。
S406,如果内存A的下线模式为通知模式,则内核通知该用户进程对该内存进行解锁,并在该内存A被用户进程解锁后,对该内存A进行迁移。即,对于内存A的下线模式为通知模式的情况,流程从S406进行到S404、S405和S407。
S407,在该内存A被迁移后,内核通知该用户进程对迁移后的新内存进行锁定。对于迁移后的新内存,内核可以将该新内存的下线标记设置为PG_flag=NOTIFY。此时,对于下线模式为通知模式的内存A,该内存A的下线流程结束。
S408,如果内存A的下线模式为强行解锁模式,则内核对该内存A进行解锁。
S409,内核检验是否成功解锁该内存A。如果该内存A被解锁,那么流程进行到S410;否则,流程进行到S408,即内核继续对内存A进行解锁。
S410,在该内存A被解锁后,内核对该内存A进行迁移,例如将该内存A迁移到内存B。
S411,内核锁定新内存B,并给新内存B设置下线标记,以标识该新内存B的下线模式为强制解锁模式,即对该下线标记赋值为PG_flag=UNLOCK。此时,对于下线模式为强行解锁模式的内存A,该内存A的下线流程结束。
图7示出了根据本发明实施例的解锁内存的方法500的示意性流程图。如图7所示,该方法500包括:
S501,用户进程向内核申请对锁定的内存A进行解锁。
S502,内核通过解析内存A的下线标记,确定该内存A的下线模式。
如果内核确定该内存A的下线模式为缺省模式,即PG_flag==DEFAULT,那么流程进行到S504;如果内核确定该内存A的下线模式不为缺省模式,即PG_flag!=DEFAULT,那么流程进行到S503或S504。具体地,如果内核确定该内存A的下线模式为迁移模式,即PG_flag==MIGRATE,那么流程进行到S503和S504;如果内核确定该内存A的下线模式为通知模式,即PG_flag==NOTIFY,或强行解锁模式,即PG_flag==UNLOCK,那么流程直接进行到S504。
S503,内核将该内存A回迁到该用户进程所在的节点上,以进一步提升系统性能。
S504,内核解锁该内存A。此时,用户进程对被锁定的内存A进行解锁的流程结束。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
因此,根据本发明实施例的管理计算机系统内存的方法,通过内核与用户进程的交互以及给内存设置下线模式,使得内核能够根据内存的下线模式对内存进行相应的下线操作,从而能够实现对用户进程锁定的内存进行下线,由此能够实现内存的热插拔,提升系统的性能,并避免系统资源的浪费。
上文中结合图1至图7,详细描述了根据本发明实施例的管理计算机系统内存的方法,下面将结合图8至图14,详细描述根据本发明实施例的内存管理单元和计算机系统。
图8示出了根据本发明实施例的内存管理单元700的示意性框图。如图8所示,该内存管理单元700包括:
第一接收模块710,用于接收用户进程发送的分配请求,该分配请求用于请求为该用户进程分配计算机系统的内存;
分配模块720,用于根据该第一接收模块710接收的该分配请求,为该用户进程分配内存,并为该内存设置下线标记,该下线标记用于表示该内存的下线模式;
第二接收模块730,用于接收该用户进程发送的锁定请求,该锁定请求用于请求对计算机系统的内存进行锁定;
锁定模块740,用于根据该第二接收模块730接收的该锁定请求和该内存的下线标记,对该内存进行锁定操作;
下线模块750,用于根据该内存的下线标记,对该锁定模块锁定的该内存进行下线操作。
根据本发明实施例的内存管理单元,通过内核与用户进程的交互以及给内存设置下线模式,使得内核能够根据内存的下线模式对内存进行相应的下线操作,从而能够实现对用户进程锁定的内存进行下线,由此能够实现内存的热插拔,提升系统的性能,并避免系统资源的浪费。
在本发明实施例中,可选地,下线模式或下线策略可以包括缺省模式(DEFAULT)、迁移模式(MIGRATE)、通知模式(NOTIFY)和强行解锁模式(UNLOCK)中的至少一种。可选地,该下线模式包括缺省模式、迁移模式、通知模式和强行解锁模式。
在本发明实施例中,可选地,如图9所示,该内存管理单元700还包括:
第三接收模块760,用于接收该用户进程发送的包括模式信息的修改请求,该模式信息表示该用户进程为该内存设置的下线模式;
修改模块770,用于根据该第三接收模块760接收的该模式信息,将该内存的下线标记修改为表示该用户进程设置的下线模式。
在本发明实施例中,可选地,如图9所示,该内存管理单元700还包括:
确定模块780,用于在该内存的下线模式为该缺省模式时,根据该计算机系统的要求重新确定该内存的下线模式,并将该内存的下线标记修改为表示重新确定的该下线模式。
可选地,如图10所示,该内存管理单元700还包括:
第四接收模块790,用于接收该用户进程发送的解锁请求,该解锁请求用于请求对该内存进行解锁;
回迁模块795,用于根据该第四接收模块接收的该解锁请求,在该内存的下线标记表示该迁移模式时,将该内存回迁到该用户进程所在的节点上。
在本发明实施例中,如图11所示,根据本发明实施例的锁定模块740可以包括:
第一锁定子模块741,用于在该内存的下线标记表示该缺省模式、该通知模式或该强行解锁模式时,对该内存进行锁定;
第二锁定子模块742,用于在该内存的下线标记表示该迁移模式时,则对该内存进行迁移,并且如果该内存迁移成功,则对迁移后的内存进行锁定,以及将该迁移后的内存设置用于表示该迁移模式的下线标记;如果该内存迁移失败,则对该内存进行锁定,以及将该内存的下线标记修改为表示该缺省模式。
可选地,如图12所示,该下线模块750包括:
第一下线子模块751,用于在该内存的下线标记表示该缺省模式或该迁移模式时,等待该内存被解锁,并在该内存被解锁后,对该内存进行迁移;
第二下线子模块752,用于在该内存的下线标记表示该通知模式时,通知该用户进程对该内存进行解锁,并在该内存被解锁后,对该内存进行迁移,以及在该内存被迁移后,通知该用户进程对迁移后的内存进行锁定;
第三下线子模块753,用于在该内存的下线标记表示该强行解锁模式时,对该内存进行解锁,并在该内存被解锁后,对该内存进行迁移,以及对迁移后的内存进行锁定,并将该迁移后的内存设置用于表示该强行解锁模式的下线标记。
可选地,如图13所示,该确定模块780包括:
第一确定子模块781,用于在该计算机系统要求系统运行性能时,将该内存的下线模式确定为该缺省模式;
第二确定子模块782,用于在该计算机系统要求热插拔性能时,将该内存的下线模式确定为该迁移模式。
根据本发明实施例的内存管理单元700可对应于本发明实施例的方法中的内核或操作系统,并且该内存管理单元700中的各个模块的上述和其它操作和/或功能分别为了实现图1至图7中的方法100至500的相应流程,为了简洁,在此不再赘述。
根据本发明实施例的内存管理单元,通过内核与用户进程的交互以及给内存设置下线模式,使得内核能够根据内存的下线模式对内存进行相应的下线操作,从而能够实现对用户进程锁定的内存进行下线,由此能够实现内存的热插拔,提升系统的性能,并避免系统资源的浪费。
图14示出了根据本发明实施例的计算机系统800的示意性框图。如图14所示,该计算机系统包括至少一个内存810,以及根据本发明实施例的内存管理单元820,该内存管理单元820用于管理该至少一个内存810,其中,该内存管理单元820可以包括:
第一接收模块,用于接收用户进程发送的分配请求,该分配请求用于请求为该用户进程分配计算机系统的内存;
分配模块,用于根据该第一接收模块接收的该分配请求,为该用户进程分配内存,并为该内存设置下线标记,该下线标记用于表示该内存的下线模式;
第二接收模块,用于接收该用户进程发送的锁定请求,该锁定请求用于请求对计算机系统的内存进行锁定;
锁定模块,用于根据该第二接收模块接收的该锁定请求和该内存的下线标记,对该内存进行锁定操作;
下线模块,用于根据该内存的下线标记,对该锁定模块锁定的该内存进行下线操作。
在本发明实施例中,可选地,该下线模式包括缺省模式、迁移模式、通知模式和强行解锁模式中的至少一种。可选地,该内存管理单元820还包括:第三接收模块,用于接收该用户进程发送的包括模式信息的修改请求,该模式信息表示该用户进程为该内存设置的下线模式;修改模块,用于根据该第三接收模块接收的该模式信息,将该内存的下线标记修改为表示该用户进程设置的下线模式。
可选地,该内存管理单元820还包括:确定模块,用于在该内存的下线模式为该缺省模式时,根据该计算机系统的要求重新确定该内存的下线模式,并将该内存的下线标记修改为表示重新确定的该下线模式。
可选地,该内存管理单元820还包括:第四接收模块,用于接收该用户进程发送的解锁请求,该解锁请求用于请求对该内存进行解锁;回迁模块,用于根据该第四接收模块接收的该解锁请求,在该内存的下线标记表示该迁移模式时,将该内存回迁到该用户进程所在的节点上。
在本发明实施例中,可选地,该锁定模块包括:第一锁定子模块,用于在该内存的下线标记表示该缺省模式、该通知模式或该强行解锁模式时,对该内存进行锁定;第二锁定子模块,用于在该内存的下线标记表示该迁移模式时,则对该内存进行迁移,并且如果该内存迁移成功,则对迁移后的内存进行锁定,以及将该迁移后的内存设置用于表示该迁移模式的下线标记;如果该内存迁移失败,则对该内存进行锁定,以及将该内存的下线标记修改为表示该缺省模式。
在本发明实施例中,可选地,该下线模块包括:第一下线子模块,用于在该内存的下线标记表示该缺省模式或该迁移模式时,等待该内存被解锁,并在该内存被解锁后,对该内存进行迁移;第二下线子模块,用于在该内存的下线标记表示该通知模式时,通知该用户进程对该内存进行解锁,并在该内存被解锁后,对该内存进行迁移,以及在该内存被迁移后,通知该用户进程对迁移后的内存进行锁定;第三下线子模块,用于在该内存的下线标记表示该强行解锁模式时,对该内存进行解锁,并在该内存被解锁后,对该内存进行迁移,以及对迁移后的内存进行锁定,并将该迁移后的内存设置用于表示该强行解锁模式的下线标记。
根据本发明实施例的内存管理单元820可对应于本发明实施例的装置中的内存管理单元700,并且该内存管理单元820中的各个模块的上述和其它操作和/或功能分别为了实现图1至图7中的方法100至500的相应流程,为了简洁,在此不再赘述。
根据本发明实施例的计算机系统,通过内核与用户进程的交互以及给内存设置下线模式,使得内核能够根据内存的下线模式对内存进行相应的下线操作,从而能够实现对用户进程锁定的内存进行下线,由此能够实现内存的热插拔,提升系统的性能,并避免系统资源的浪费。
应理解,本发明实施例的锁定内存不限于由用户进程申请的锁定内存,用于其他目的的锁定内存同样可以使用本发明实施例的方案进行下线;另外,针对锁定内存下线策略中的迁移策略,不限于由用户进程制定、内核执行的方案,该迁移策略可以由用户进程指定该内存申请到特殊内存区,从而不需要迁移就可以实现内存下线的要求。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (17)
1.一种管理计算机系统内存的方法,其特征在于,包括:
接收用户进程发送的分配请求,所述分配请求用于请求为所述用户进程分配计算机系统的内存;
根据所述分配请求为所述用户进程分配内存,并为所述内存设置下线标记,所述下线标记用于表示所述内存的下线模式;
接收所述用户进程发送的锁定请求,所述锁定请求用于请求对所述内存进行锁定;
根据所述锁定请求和所述内存的下线标记,对所述内存进行锁定操作;
根据所述内存的下线标记对所述内存进行下线操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述用户进程发送的包括模式信息的修改请求,所述模式信息表示所述用户进程为所述内存设置的下线模式;
根据所述模式信息,将所述内存的下线标记修改为表示所述用户进程设置的下线模式。
3.根据权利要求1或2所述的方法,其特征在于,所述下线模式包括缺省模式、迁移模式、通知模式和强行解锁模式中的至少一种。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果所述内存的下线模式为所述缺省模式,则根据所述计算机系统的要求重新确定所述内存的下线模式,并将所述内存的下线标记修改为表示重新确定的所述下线模式。
5.根据权利要求4所述的方法,其特征在于,所述根据所述计算机系统的要求确定所述内存的下线模式,包括:
如果所述计算机系统要求系统运行性能,则将所述内存的下线模式确定为所述缺省模式;
如果所述计算机系统要求热插拔性能,则将所述内存的下线模式确定为所述迁移模式。
6.根据权利要求3至5中任一项所述的方法,其特征在于,所述根据所述锁定请求和所述内存的下线标记,对所述内存进行锁定操作,包括:
如果所述内存的下线标记表示所述缺省模式、所述通知模式或所述强行解锁模式,则对所述内存进行锁定;
如果所述内存的下线标记表示所述迁移模式,则对所述内存进行迁移,并且如果所述内存迁移成功,则对迁移后的内存进行锁定,以及将所述迁移后的内存设置用于表示所述迁移模式的下线标记;如果所述内存迁移失败,则对所述内存进行锁定,以及将所述内存的下线标记修改为表示所述缺省模式。
7.根据权利要求3至6中任一项所述的方法,其特征在于,所述根据所述内存的下线标记对所述内存进行下线操作,包括:
如果所述内存的下线标记表示所述缺省模式或所述迁移模式,则等待所述内存被解锁,并在所述内存被解锁后,对所述内存进行迁移;
如果所述内存的下线标记表示所述通知模式,则通知所述用户进程对所述内存进行解锁,并在所述内存被解锁后,对所述内存进行迁移,以及在所述内存被迁移后,通知所述用户进程对迁移后的内存进行锁定;
如果所述内存的下线标记表示所述强行解锁模式,则对所述内存进行解锁,并在所述内存被解锁后,对所述内存进行迁移,以及对迁移后的内存进行锁定,并将所述迁移后的内存设置用于表示所述强行解锁模式的下线标记。
8.根据权利要求3至7中任一项所述的方法,其特征在于,所述方法还包括:
接收所述用户进程发送的解锁请求,所述解锁请求用于请求对所述内存进行解锁;
根据所述解锁请求,如果所述内存的下线标记表示所述迁移模式,则将所述内存回迁到所述用户进程所在的节点上。
9.一种内存管理单元,其特征在于,包括:
第一接收模块,用于接收用户进程发送的分配请求,所述分配请求用于请求为所述用户进程分配计算机系统的内存;
分配模块,用于根据所述第一接收模块接收的所述分配请求,为所述用户进程分配内存,并为所述内存设置下线标记,所述下线标记用于表示所述内存的下线模式;
第二接收模块,用于接收所述用户进程发送的锁定请求,所述锁定请求用于请求对计算机系统的内存进行锁定;
锁定模块,用于根据所述第二接收模块接收的所述锁定请求和所述内存的下线标记,对所述内存进行锁定操作;
下线模块,用于根据所述内存的下线标记,对所述锁定模块锁定的所述内存进行下线操作。
10.根据权利要求9所述的内存管理单元,其特征在于,所述内存管理单元还包括:
第三接收模块,用于接收所述用户进程发送的包括模式信息的修改请求,所述模式信息表示所述用户进程为所述内存设置的下线模式;
修改模块,用于根据所述第三接收模块接收的所述模式信息,将所述内存的下线标记修改为表示所述用户进程设置的下线模式。
11.根据权利要求9或10所述的内存管理单元,其特征在于,所述下线模式包括缺省模式、迁移模式、通知模式和强行解锁模式中的至少一种。
12.根据权利要求11所述的内存管理单元,其特征在于,所述内存管理单元还包括:
确定模块,用于在所述内存的下线模式为所述缺省模式时,根据所述计算机系统的要求重新确定所述内存的下线模式,并将所述内存的下线标记修改为表示重新确定的所述下线模式。
13.根据权利要求12所述的内存管理单元,其特征在于,所述确定模块包括:
第一确定子模块,用于在所述计算机系统要求系统运行性能时,将所述内存的下线模式确定为所述缺省模式;
第二确定子模块,用于在所述计算机系统要求热插拔性能时,将所述内存的下线模式确定为所述迁移模式。
14.根据权利要求11至13中任一项所述的内存管理单元,其特征在于,所述锁定模块包括:
第一锁定子模块,用于在所述内存的下线标记表示所述缺省模式、所述通知模式或所述强行解锁模式时,对所述内存进行锁定;
第二锁定子模块,用于在所述内存的下线标记表示所述迁移模式时,则对所述内存进行迁移,并且如果所述内存迁移成功,则对迁移后的内存进行锁定,以及将所述迁移后的内存设置用于表示所述迁移模式的下线标记;如果所述内存迁移失败,则对所述内存进行锁定,以及将所述内存的下线标记修改为表示所述缺省模式。
15.根据权利要求11至14中任一项所述的内存管理单元,其特征在于,所述下线模块包括:
第一下线子模块,用于在所述内存的下线标记表示所述缺省模式或所述迁移模式时,等待所述内存被解锁,并在所述内存被解锁后,对所述内存进行迁移;
第二下线子模块,用于在所述内存的下线标记表示所述通知模式时,通知所述用户进程对所述内存进行解锁,并在所述内存被解锁后,对所述内存进行迁移,以及在所述内存被迁移后,通知所述用户进程对迁移后的内存进行锁定;
第三下线子模块,用于在所述内存的下线标记表示所述强行解锁模式时,对所述内存进行解锁,并在所述内存被解锁后,对所述内存进行迁移,以及对迁移后的内存进行锁定,并将所述迁移后的内存设置用于表示所述强行解锁模式的下线标记。
16.根据权利要求11至15中任一项所述的内存管理单元,其特征在于,所述内存管理单元还包括:
第四接收模块,用于接收所述用户进程发送的解锁请求,所述解锁请求用于请求对所述内存进行解锁;
回迁模块,用于根据所述第四接收模块接收的所述解锁请求,在所述内存的下线标记表示所述迁移模式时,将所述内存回迁到所述用户进程所在的节点上。
17.一种计算机系统,其特征在于,所述计算机系统包括至少一个内存,以及根据权利要求9至16中任一项所述的内存管理单元,所述内存管理单元用于管理所述至少一个内存。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/079202 WO2012083724A1 (zh) | 2011-08-31 | 2011-08-31 | 管理计算机系统内存的方法、内存管理单元和计算机系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102369518A true CN102369518A (zh) | 2012-03-07 |
CN102369518B CN102369518B (zh) | 2014-07-09 |
Family
ID=45761450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180001722.3A Active CN102369518B (zh) | 2011-08-31 | 2011-08-31 | 管理计算机系统内存的方法和装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20130246729A1 (zh) |
EP (1) | EP2642387B1 (zh) |
JP (1) | JP5636133B2 (zh) |
KR (1) | KR101532397B1 (zh) |
CN (1) | CN102369518B (zh) |
AU (1) | AU2011348864B2 (zh) |
RU (1) | RU2565519C2 (zh) |
WO (1) | WO2012083724A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514164A (zh) * | 2012-06-15 | 2014-01-15 | 阿里巴巴集团控股有限公司 | 数据迁移方法及系统 |
CN105117295A (zh) * | 2015-09-18 | 2015-12-02 | 北京金山安全软件有限公司 | 一种内存资源释放方法、装置及电子设备 |
CN105159838A (zh) * | 2015-08-27 | 2015-12-16 | 华为技术有限公司 | 访问内存的方法及计算机系统 |
WO2023071848A1 (zh) * | 2021-10-25 | 2023-05-04 | 支付宝(杭州)信息技术有限公司 | 图数据加载 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6684292B2 (en) * | 2001-09-28 | 2004-01-27 | Hewlett-Packard Development Company, L.P. | Memory module resync |
US6823424B2 (en) * | 2000-01-26 | 2004-11-23 | Hewlett-Packard Development Company, L.P. | Rebuild bus utilization |
US7028215B2 (en) * | 2002-05-03 | 2006-04-11 | Hewlett-Packard Development Company, L.P. | Hot mirroring in a computer system with redundant memory subsystems |
CN1811742A (zh) * | 2005-01-28 | 2006-08-02 | 乐金电子(惠州)有限公司 | 闪存的界面设备及其方法 |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0827755B2 (ja) * | 1991-02-15 | 1996-03-21 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データの単位を高速度でアクセスする方法 |
US5933847A (en) * | 1995-09-28 | 1999-08-03 | Canon Kabushiki Kaisha | Selecting erase method based on type of power supply for flash EEPROM |
JPH0997205A (ja) * | 1995-09-28 | 1997-04-08 | Canon Inc | フラッシュrom管理方法及び装置及びコンピュータ制御装置 |
US6038680A (en) * | 1996-12-11 | 2000-03-14 | Compaq Computer Corporation | Failover memory for a computer system |
US6493796B1 (en) * | 1999-09-01 | 2002-12-10 | Emc Corporation | Method and apparatus for maintaining consistency of data stored in a group of mirroring devices |
JP2001167001A (ja) * | 1999-10-28 | 2001-06-22 | Hewlett Packard Co <Hp> | 自己回復するメモリ構成 |
US6832301B2 (en) * | 2001-09-11 | 2004-12-14 | International Business Machines Corporation | Method for recovering memory |
US7673090B2 (en) * | 2001-12-19 | 2010-03-02 | Intel Corporation | Hot plug interface control method and apparatus |
US6874076B2 (en) * | 2002-09-30 | 2005-03-29 | International Business Machines Corporation | Method, system, and computer program product for migrating data from one real page to another |
US6947051B2 (en) * | 2003-02-18 | 2005-09-20 | Microsoft Corporation | Video memory management |
US6990545B2 (en) * | 2003-04-28 | 2006-01-24 | International Business Machines Corporation | Non-disruptive, dynamic hot-plug and hot-remove of server nodes in an SMP |
US7107411B2 (en) * | 2003-12-16 | 2006-09-12 | International Business Machines Corporation | Apparatus method and system for fault tolerant virtual memory management |
US7380039B2 (en) * | 2003-12-30 | 2008-05-27 | 3Tera, Inc. | Apparatus, method and system for aggregrating computing resources |
US7840772B2 (en) * | 2004-09-10 | 2010-11-23 | Hewlett-Packard Development Company, L.P. | Physical memory control using memory classes |
RU2272362C1 (ru) * | 2004-09-21 | 2006-03-20 | Военный университет связи | Способ управления потоками при передаче пакетов данных |
US7467324B1 (en) * | 2004-09-30 | 2008-12-16 | Ayaya Inc. | Method and apparatus for continuing to provide processing on disk outages |
US7222200B2 (en) * | 2004-10-14 | 2007-05-22 | Dell Products L.P. | Method for synchronizing processors in SMI following a memory hot plug event |
US7383412B1 (en) * | 2005-02-28 | 2008-06-03 | Nvidia Corporation | On-demand memory synchronization for peripheral systems with multiple parallel processors |
JP4274140B2 (ja) * | 2005-03-24 | 2009-06-03 | 日本電気株式会社 | ホットスワップ機能付きメモリシステム及びその障害メモリモジュールの交換方法 |
JP4474648B2 (ja) * | 2005-03-25 | 2010-06-09 | 日本電気株式会社 | メモリシステム及びそのホットスワップ方法 |
US7437529B2 (en) * | 2005-06-16 | 2008-10-14 | International Business Machines Corporation | Method and mechanism for efficiently creating large virtual memory pages in a multiple page size environment |
US20070083482A1 (en) * | 2005-10-08 | 2007-04-12 | Unmesh Rathi | Multiple quality of service file system |
US7472249B2 (en) * | 2006-06-30 | 2008-12-30 | Sun Microsystems, Inc. | Kernel memory free algorithm |
US20080127182A1 (en) * | 2006-11-29 | 2008-05-29 | Newport William T | Managing Memory Pages During Virtual Machine Migration |
US20080228770A1 (en) * | 2007-03-15 | 2008-09-18 | Halcrow Michael A | Method for Performing Recoverable Live Context Migration in a Stacked File System |
US20090006402A1 (en) * | 2007-06-28 | 2009-01-01 | Holger Bohle | Methods and systems for the dynamic selection of a locking strategy |
KR20090005921A (ko) * | 2007-07-10 | 2009-01-14 | 삼성전자주식회사 | 대칭적 다중 프로세서 시스템에서의 로드 밸런싱 방법 및장치 |
JP2009211132A (ja) * | 2008-02-29 | 2009-09-17 | Hitachi Ltd | 記憶システム及びデータ移行方法 |
US9128964B2 (en) * | 2008-03-31 | 2015-09-08 | Verizon Patent And Licensing Inc. | Selective mapping of integrated data |
US8140825B2 (en) * | 2008-08-05 | 2012-03-20 | International Business Machines Corporation | Systems and methods for selectively closing pages in a memory |
JP5120455B2 (ja) * | 2008-08-11 | 2013-01-16 | 富士通株式会社 | ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム |
US8200771B2 (en) * | 2008-10-10 | 2012-06-12 | International Business Machines Corporation | Workload migration using on demand remote paging |
JP5338435B2 (ja) * | 2009-03-31 | 2013-11-13 | 富士通株式会社 | 情報処理プログラム、情報処理装置および情報処理方法 |
US8973004B2 (en) * | 2009-06-26 | 2015-03-03 | Oracle America, Inc. | Transactional locking with read-write locks in transactional memory systems |
US8799914B1 (en) * | 2009-09-21 | 2014-08-05 | Tilera Corporation | Managing shared resource in an operating system by distributing reference to object and setting protection levels |
US20110161620A1 (en) * | 2009-12-29 | 2011-06-30 | Advanced Micro Devices, Inc. | Systems and methods implementing shared page tables for sharing memory resources managed by a main operating system with accelerator devices |
US8438571B2 (en) * | 2010-02-24 | 2013-05-07 | International Business Machines Corporation | Thread speculative execution and asynchronous conflict |
CN102222037B (zh) * | 2010-04-15 | 2014-04-02 | 国际商业机器公司 | 用于定位java程序的瓶颈的方法和设备 |
US8799904B2 (en) * | 2011-01-21 | 2014-08-05 | International Business Machines Corporation | Scalable system call stack sampling |
US8701122B2 (en) * | 2011-09-30 | 2014-04-15 | Quietus Systems Inc. | Method and system for exception-less system calls in an operating system |
US9176911B2 (en) * | 2012-12-11 | 2015-11-03 | Intel Corporation | Explicit flow control for implicit memory registration |
-
2011
- 2011-08-31 KR KR1020137024926A patent/KR101532397B1/ko active IP Right Grant
- 2011-08-31 AU AU2011348864A patent/AU2011348864B2/en active Active
- 2011-08-31 RU RU2013142946/08A patent/RU2565519C2/ru active
- 2011-08-31 CN CN201180001722.3A patent/CN102369518B/zh active Active
- 2011-08-31 WO PCT/CN2011/079202 patent/WO2012083724A1/zh active Application Filing
- 2011-08-31 JP JP2014505486A patent/JP5636133B2/ja active Active
- 2011-08-31 EP EP11851330.8A patent/EP2642387B1/en active Active
-
2013
- 2013-05-10 US US13/891,289 patent/US20130246729A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6823424B2 (en) * | 2000-01-26 | 2004-11-23 | Hewlett-Packard Development Company, L.P. | Rebuild bus utilization |
US6684292B2 (en) * | 2001-09-28 | 2004-01-27 | Hewlett-Packard Development Company, L.P. | Memory module resync |
US7028215B2 (en) * | 2002-05-03 | 2006-04-11 | Hewlett-Packard Development Company, L.P. | Hot mirroring in a computer system with redundant memory subsystems |
CN1811742A (zh) * | 2005-01-28 | 2006-08-02 | 乐金电子(惠州)有限公司 | 闪存的界面设备及其方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514164A (zh) * | 2012-06-15 | 2014-01-15 | 阿里巴巴集团控股有限公司 | 数据迁移方法及系统 |
CN103514164B (zh) * | 2012-06-15 | 2016-12-21 | 阿里巴巴集团控股有限公司 | 数据迁移方法及系统 |
CN105159838A (zh) * | 2015-08-27 | 2015-12-16 | 华为技术有限公司 | 访问内存的方法及计算机系统 |
CN105117295A (zh) * | 2015-09-18 | 2015-12-02 | 北京金山安全软件有限公司 | 一种内存资源释放方法、装置及电子设备 |
WO2023071848A1 (zh) * | 2021-10-25 | 2023-05-04 | 支付宝(杭州)信息技术有限公司 | 图数据加载 |
Also Published As
Publication number | Publication date |
---|---|
KR20130122692A (ko) | 2013-11-07 |
EP2642387B1 (en) | 2015-07-15 |
AU2011348864B2 (en) | 2017-05-25 |
AU2011348864A1 (en) | 2013-10-10 |
CN102369518B (zh) | 2014-07-09 |
EP2642387A1 (en) | 2013-09-25 |
KR101532397B1 (ko) | 2015-06-29 |
JP5636133B2 (ja) | 2014-12-03 |
RU2565519C2 (ru) | 2015-10-20 |
EP2642387A4 (en) | 2014-01-22 |
JP2014515145A (ja) | 2014-06-26 |
US20130246729A1 (en) | 2013-09-19 |
RU2013142946A (ru) | 2015-03-27 |
WO2012083724A1 (zh) | 2012-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101849225B (zh) | 用于支持安全应用分区的方法和系统 | |
CN102346818B (zh) | 一种用软件实现的计算机网络环境隔离系统 | |
CN100489782C (zh) | 一种虚拟机系统及硬件设备的访问控制方法 | |
CN101263463B (zh) | 事务性密封存储 | |
CN100514345C (zh) | 信息处理单元、设备和系统 | |
CN102369518A (zh) | 管理计算机系统内存的方法、内存管理单元和计算机系统 | |
CN101960459A (zh) | 用于临时重新定位可用软件许可的对等软件许可管理系统 | |
CN103136124B (zh) | 一种智能卡硬件防火墙系统及其实现方法 | |
CN102362281A (zh) | 策略生成和转换系统、策略分配系统及其方法和程序 | |
CN107612941A (zh) | 一种权限管理的方法、装置、设备及存储介质 | |
CN104461705B (zh) | 一种业务访问的方法及存储控制器、集群存储系统 | |
CN102810139A (zh) | 数据安全操作方法及通信终端 | |
CN105703941A (zh) | 配置事务的处理方法及装置 | |
CN101208704A (zh) | 用于保护包括多个设备的至少一个装置的完整性的安全系统及方法 | |
CN110532789B (zh) | 一种层次化的系统防火墙及配置方法 | |
CN102708416A (zh) | 一种用户订购业务的方法、设备和系统 | |
CN104866774A (zh) | 账户权限管理的方法及系统 | |
CN105279453A (zh) | 一种支持分离存储管理的文件分区隐藏系统及其方法 | |
CN102184370B (zh) | 基于微过滤驱动模型的文档安全系统 | |
JP4717514B2 (ja) | 通信システム、通信方法、通信プログラム、認証サーバ | |
CN106097600A (zh) | 基于atl的设备管理方法、系统和金融自助设备 | |
CN101697212A (zh) | 一种erp系统及其用户权限控制方法和装置 | |
CN104866787A (zh) | 基于数据接口识别的移动设备 | |
JP2017139697A (ja) | 情報処理装置 | |
CN111538976A (zh) | 一种移动终端及存储设备的权限管理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |