CN112131009B - 一种内存调度方法、装置及计算机可读存储介质 - Google Patents
一种内存调度方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112131009B CN112131009B CN202011062616.3A CN202011062616A CN112131009B CN 112131009 B CN112131009 B CN 112131009B CN 202011062616 A CN202011062616 A CN 202011062616A CN 112131009 B CN112131009 B CN 112131009B
- Authority
- CN
- China
- Prior art keywords
- memory
- page
- target
- task process
- target task
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 274
- 230000008569 process Effects 0.000 claims abstract description 230
- 238000011084 recovery Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Classifications
-
- 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
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/545—Gui
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供了一种内存调度方法、装置及计算机可读存储介质,该内存调度方法包括:从进程等待队列中获取目标任务进程;在页面缓存中,对目标任务进程相应的目标文件页面进行锁定;在对应于目标任务进程的内存锁定周期到达时,在页面缓存中对目标文件页面进行解锁。通过本申请方案的实施,有目的性的对进程等待队列中的目标任务进程进行页面锁定,有效保证了页面锁定的准确性,并且,及时在页面缓存中进行页面解锁,可提升页面缓存的有效利用率。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种内存调度方法、装置及计算机可读存储介质。
背景技术
随着终端技术的快速发展,手机、平板电脑等电子装置在用户的工作和生活中使用频率越来越高,在实际应用中,电子装置通过执行任务进程来满足用户的业务需求,而任务进程的执行需要调用对应的文件页面。
目前,相关技术中通常在开发过程中,即将特定任务进程相应的文件页面预先锁定于页面缓存中,从而在相应任务进程执行时,可直接调用页面缓存中的文件页面,而不用从磁盘读取该文件页面。然而,一方面,开发人员通常难以预知用户使用电子过程中,哪些任务进程是高频执行的,从而部分预先缓存的文件页面可能并未得到有效使用,以及部分高频执行的任务进程对应的文件页面并未进行预先缓存,也即文件页面锁定的准确性较低;另一方面,由于相关技术中所锁定的文件页面在系统的生命周期内一直保持锁定,从而在页面缓存的存储空间较为紧张时,页面缓存的有效利用率较低。
发明内容
本申请实施例提供了一种内存调度方法、装置及计算机可读存储介质,至少能够解决相关技术中在页面缓存中进行文件页面锁定的准确性较低以及页面缓存的有效利用率较低的问题。
本申请实施例第一方面提供了一种内存调度方法,包括:
从进程等待队列中获取目标任务进程;
在页面缓存中,对所述目标任务进程相应的目标文件页面进行锁定;
在对应于所述目标任务进程的内存锁定周期到达时,在所述页面缓存中对所述目标文件页面进行解锁。
本申请实施例第二方面提供了一种内存调度装置,包括:
获取模块,用于从进程等待队列中获取目标任务进程;
锁定模块,用于在页面缓存中,对所述目标任务进程相应的目标文件页面进行锁定;
解锁模块,用于在对应于所述目标任务进程的内存锁定周期到达时,在所述页面缓存中对所述目标文件页面进行解锁。
本申请实施例第三方面提供了一种电子装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现上述本申请实施例第一方面提供的内存调度方法中的各步骤。
本申请实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现上述本申请实施例第一方面提供的内存调度方法中的各步骤。
由上可见,根据本申请方案所提供的内存调度方法、装置及计算机可读存储介质,从进程等待队列中获取目标任务进程;在页面缓存中,对目标任务进程相应的目标文件页面进行锁定;在对应于目标任务进程的内存锁定周期到达时,在页面缓存中对目标文件页面进行解锁。通过本申请方案的实施,有目的性的对进程等待队列中的目标任务进程进行页面锁定,有效保证了页面锁定的准确性,并且,及时在页面缓存中进行页面解锁,可提升页面缓存的有效利用率。
附图说明
图1为本申请第一实施例提供的内存调度方法的基本流程示意图;
图2为本申请第一实施例提供的一种页面锁定方法的流程示意图;
图3为本申请第二实施例提供的内存调度方法的细化流程示意图;
图4为本申请第三实施例提供的内存调度装置的程序模块示意图;
图5为本申请第四实施例提供的电子装置的结构示意图。
具体实施方式
为使得本申请的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了解决相关技术中在页面缓存中进行文件页面锁定的准确性较低以及页面缓存的有效利用率较低的缺陷,本申请第一实施例提供了一种内存调度方法,如图1为本实施例提供的内存调度方法的基本流程图,该内存调度方法包括以下的步骤:
步骤101、从进程等待队列中获取目标任务进程。
具体的,在本实施例中,进程管理中的等待队列中包括即将运行的任务进程,在进程等待队列中有多个任务进程时,本实施例的目标任务进程可以有一个或多个,考虑到在进程调度期间若对所有进程都进行本实施例的内存调度操作,可能会导致后续的内存锁定和内存解锁频率较高,造成大量的CPU开销,由此,本实施例仅将必要性较强的任务进程确定为进行内存调度的目标任务进程。
一方面,本实施例在确定目标任务进程时,可以基于进程类型来确定,例如可以将特定任务进程例如UI进程确定为目标任务进程。在实际应用中,UI进程负责向用户呈现显示画面,在用户使用电子装置过程中该进程的调用较为频繁且要求较高的进程响应速度,若从磁盘读取该进程对应的文件页面,则会造成线程阻塞,从而在界面渲染时会导致卡顿,由此,本实施例优选的可以将进程等待队列中的UI进程确定为目标任务进程。
另一方面,本实施例还可以基于进程等待队列中各进程的进程状态来确定目标任务进程。以Linux系统进程为例,进程状态可以包括:就绪状态、可中断等待状态、不可中断等待状态、停止状态及中止状态等,就绪状态的状态标志state的值为TASK_RUNNING,此时,程序已被挂入运行队列,处于准备运行状态。一旦获得处理器使用权,即可进入运行状态。当进程获得处理器而运行时,state的值仍然为TASK_RUNNING,并不发生改变;但Linux会把一个专门用来指向当前运行任务的指针current指向它,以表示它是一个正在运行的进程。在实际应用中,Linux原生的内核已经设计好TASK_RUNNING状态的进程,这类进程又分为两种:RUNNING和RUNNING_READY,顾名思义一种是已经在运行的进程,另一种是准备好运行的进程,本实施例需要提前锁定内存的目标任务进程可以是RUNNING_READY进程。
在本实施例的一些实施方式中,在从进程等待队列中获取目标任务进程之前,还包括:实时检测页面缓存的内存状态。
具体的,本实施例在内存状态为内存紧张状态时,执行从进程等待队列中获取目标任务进程的步骤。应当说明的是,在本实施例中,考虑到内存紧张状态下更需要合理调度页面缓存的内存,从而本实施例先判断内存是否紧张,若是,则触发本实施例的内存调度流程,以提升内存调度合理性。
进一步地,在本实施例的一些实施方式中,实时检测页面缓存的内存状态包括:在页面缓存的内存不足时,检测当前的内存回收时长;将内存回收时长与预设时长阈值进行比较;根据比较结果确定对应的内存状态。其中,在内存回收时长大于时长阈值时,内存状态为内存紧张状态;在内存回收时长小于时长阈值时,内存状态为内存充足状态。
具体的,当进程分配内存时,会判断内存是否充足,如果充足就会进行内存分配,如果不充足则要进入内存回收到充足时再分配,所以单次内存回收的时长就代表着内存分配延迟的时长。本实施例在内存回收流程中加入内存回收时长的判断,如果某次内存回收时长超过阈值,则将记录此时的内存状态为紧张,如果有一次内存分配延迟低于阈值,则将记录此时的内存状态为充足。
步骤102、在页面缓存中,对目标任务进程相应的目标文件页面进行锁定。
具体的,在本实施例中,避免因为内存紧张等引起即将运行的进程需要访问的文件页面被刷出缓存,而导致这些进程访问相应文件页面时出现缺页中断,抑或需要从磁盘读取相应文件页面而导致进程阻塞,本实施例将目标任务进程响应的文件页面在页面缓存中进行锁定,从而可以保证文件页面不被移出页面缓存。
由于页面缓存中锁定有目标任务进程对应的文件页面,从而在目标任务进程执行时,可以直接调用页面缓存中的相应文件页面,提升了进程执行效率。
在本实施例的一些实施方式中,在页面缓存中,对目标任务进程相应的目标文件页面进行锁定之前,还包括:获取目标任务进程所要求的任务响应速度。
具体的,考虑到页面缓存的空间有限以及CPU的性能有限,从而应当尽量保证调度页面缓存的合理性。在实际应用中,不同任务进程所要求的任务响应速度有所不同,例如在执行UI进程时,为了保证显示画面输出的即时性,通常要求较高的任务响应速度,从而本实施例可以在任务响应速度高于预设速度阈值时,执行上述在页面缓存中,对目标任务进程相应的目标文件页面进行锁定的步骤。而针对部分非时延敏感性的任务进程,则可以采用现有技术方案实现,也即若执行该进程时,若文件页面已被移出页面缓存,则先将对应文件页面移回页面缓存后再进行进程执行。
应当说明的是,在实际应用中,在页面缓存中锁定目标文件页面时,还可以在页面缓存中对目标文件页面进行备份锁定,从而在执行目标任务进程时,可以优先调用所缓存的主文件页面,而若进程执行过程中出错,则可以重新调用备份文件页面进行进程执行。
步骤103、在对应于目标任务进程的内存锁定周期到达时,在页面缓存中对目标文件页面进行解锁。
具体的,在本实施例中,区别于相关技术中在系统生命周期内对所锁定的文件页面长期保持锁定而导致内存紧张,本实施例在文件页面的内存锁定周期到达时,可自动对文件页面进行解锁,而将其移出页面缓存,由此可提升内存利用率。在实际应用中,内存锁定周期可以是固定值,也可以是根据当前所执行的目标任务进程动态设定,当然,内存锁定周期还可以关联于进程执行行为,也即内存锁定周期为进程执行起始时刻与进程执行结束时刻之间的时间间隔。
在本实施例的一些实施方式中,在页面缓存中对目标文件页面进行解锁之前,还包括:获取对应于目标任务进程的进程执行频率;基于进程执行频率确定对应的内存锁定周期。
具体的,在实际应用中,不同任务进程的执行频率有所不同,针对高频执行的任务进程,由于在结束执行之后又会在较短时间内再次执行,若频繁对其进行锁定内存和解锁内存会引起较大的CPU开销,由此,本实施例基于所执行的任务进程的进程执行频率来确定对应的内存锁定周期,其中,内存锁定周期与进程执行频率正相关,也即进程执行频率较高,则可对应设置一较长的内存锁定周期,以在一段时间内保持文件页面的锁定,以供任务进程多次调用。
在本实施例的一些实施方式中,在从进程等待队列中获取目标任务进程之后,还包括:获取目标任务进程的关联调用进程;将关联调用进程相应的文件页面,在页面缓存中进行同步锁定。
具体的,在实际应用中,部分任务进程的执行可能还需拉起其他进程,例如在执行购票应用时还会临时对支付应用进行调用,从而两者进行配合来实现用户所需业务,由此,本实施例还对即将运行目标任务进程的关联调用进程进行确定,以备目标任务进程执行过程中对关联调用进程的同时执行,在对目标任务进程的文件页面进行锁定时,还获取关联调用进程的文件页面在页面缓存中同步锁定,从而关联调用进程执行过程中也可在页面缓存中获取其对应的文件页面,可有效提升多个关联进程执行时的执行效率和执行流畅度。
还应当说明的是,对于关联调用进程的页面解锁,可以与目标任务进程一致,即在目标任务进程执行结束时,同时将两者的文件页面在页面缓存解锁。
如图2所示为本实施例提供的一种页面锁定方法的流程示意图,在本实施例一些实施方式中,在执行在页面缓存中,对目标任务进程相应的目标文件页面进行锁定时,具体包括如下步骤:
步骤201、根据当前系统运行场景,确定目标任务进程所需对应响应的细分任务类型;
步骤202、基于细分任务类型,从对应于目标任务进程的所有文件页面中确定目标文件页面;
步骤203、将目标文件页面在页面缓存中进行锁定。
具体的,在本实施例中,通过单个任务进程可以响应多种任务类型,而在不同运行场景下,使用任务进程所需响应的细分任务类型有所不同,例如目标任务进程支持响应任务类型A、B、C,其中,在系统运行场景a下,通过目标任务进程所需响应的任务类型为A,而在系统运行场景b下,通过目标任务进程所需响应的任务类型为A、B,由于细分任务类型不同,那么在进程执行过程中所需对应调用的文件页面的类型也有所不同,基于此,本实施例根据细分任务类型对应进行文件页面锁定,而避免每次将目标任务进程所对应的所有文件页面进行锁定造成的内存占用较大及锁定/解锁操作较为繁冗。
基于上述本申请实施例的技术方案,从进程等待队列中获取目标任务进程;在页面缓存中,对目标任务进程相应的目标文件页面进行锁定;在对应于目标任务进程的内存锁定周期到达时,在页面缓存中对目标文件页面进行解锁。通过本申请方案的实施,有目的性的对进程等待队列中的目标任务进程进行页面锁定,有效保证了页面锁定的准确性,并且,及时在页面缓存中进行页面解锁,可提升页面缓存的有效利用率。
图3中的方法为本申请第二实施例提供的一种细化的内存调度方法,该内存调度方法包括:
步骤301、在页面缓存的内存不足时,检测当前的内存回收时长。
步骤302、根据内存回收时长确定页面缓存的内存状态。
具体的,在本实施例中,在内存回收时长大于时长阈值时,内存状态为内存紧张状态;在内存回收时长小于时长阈值时,内存状态为内存充足状态。
步骤303、在内存状态为内存紧张状态时,从进程等待队列中获取即将执行的目标任务进程。
具体的,在本实施例中,考虑到内存紧张状态下更需要合理调度页面缓存的内存,从而本实施例先判断内存是否紧张,若是,则触发本实施例后续的页面锁定及解锁流程,以提升内存调度合理性。
另外,考虑到在进程调度期间若对所有进程都进行本实施例的内存调度操作,可能会导致后续的内存锁定和内存解锁频率较高,造成大量的CPU开销,由此,本实施例仅将必要性较强的任务进程确定为进行本实施例的内存调度的目标任务进程(例如UI进程)。
步骤304、根据当前系统运行场景,确定目标任务进程所需对应响应的细分任务类型。
具体的,在本实施例中,通过单个任务进程可以响应多种任务类型,而在不同运行场景下,使用任务进程所需响应的细分任务类型有所不同。
步骤305、基于细分任务类型,从对应于目标任务进程的所有文件页面中确定目标文件页面。
步骤306、将目标文件页面在页面缓存中进行锁定。
具体的,由于细分任务类型不同,那么在进程执行过程中所需对应调用的文件页面的类型也有所不同,基于此,本实施例根据细分任务类型对应进行文件页面锁定,而避免每次将目标任务进程所对应的所有文件页面进行锁定造成的内存占用较大及锁定/解锁操作较为繁冗。
步骤307、在目标任务进程结束执行时,在页面缓存中对目标文件页面进行解锁。
具体的,本实施例在目标任务进程执行完毕时,可自动对文件页面进行解锁,而将其移出页面缓存,而避免其对应的文件页面对页面缓存进行非必要占用,由此可提升内存利用率。
应当理解的是,本实施例中各步骤的序号的大小并不意味着步骤执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成唯一限定。
本申请实施例公开了一种内存调度方法,从进程等待队列中获取目标任务进程;在页面缓存中,对目标任务进程相应的目标文件页面进行锁定;在对应于目标任务进程的内存锁定周期到达时,在页面缓存中对目标文件页面进行解锁。通过本申请方案的实施,有目的性的对进程等待队列中的目标任务进程进行页面锁定,有效保证了页面锁定的准确性,并且,及时在页面缓存中进行页面解锁,可提升页面缓存的有效利用率。
图4为本申请第三实施例提供的一种内存调度装置。该内存调度装置可用于实现前述实施例中的内存调度方法。如图4所示,该内存调度装置主要包括:
获取模块401,用于从进程等待队列中获取目标任务进程;
锁定模块402,用于在页面缓存中,对目标任务进程相应的目标文件页面进行锁定;
解锁模块403,用于在对应于目标任务进程的内存锁定周期到达时,在页面缓存中对目标文件页面进行解锁。
在本实施例的一些实施方式中,内存调度装置还包括:检测模块,用于:在从进程等待队列中获取目标任务进程之前,实时检测页面缓存的内存状态。相对应的,获取模块401具体用于:在内存状态为内存紧张状态时,从进程等待队列中获取目标任务进程。
进一步地,在本实施例一些实施方式中,检测模块具体用于:在页面缓存的内存不足时,检测当前的内存回收时长;将内存回收时长与预设时长阈值进行比较;根据比较结果确定对应的内存状态。其中,在内存回收时长大于时长阈值时,内存状态为内存紧张状态;在内存回收时长小于时长阈值时,内存状态为内存充足状态。
在本实施例一些实施方式中,获取模块401还用于:在页面缓存中,对目标任务进程相应的目标文件页面进行锁定之前,获取目标任务进程所要求的任务响应速度。相对应的,锁定模块402具体用于:在任务响应速度高于预设速度阈值时,在页面缓存中,对目标任务进程相应的目标文件页面进行锁定。
在本实施例的一些实施方式中,内存调度装置还包括:确定模块,用于在页面缓存中对目标文件页面进行解锁之前,获取对应于目标任务进程的进程执行频率;基于进程执行频率确定对应的内存锁定周期。
在本实施例的一些实施方式中,获取模块401还用于:获取目标任务进程的关联调用进程。相对应的,锁定模块402还用于:将关联调用进程相应的文件页面,在页面缓存中进行同步锁定。
在本实施例的一些实施方式中,锁定模块402具体用于:根据当前系统运行场景,确定目标任务进程所需对应响应的细分任务类型;基于细分任务类型,从对应于目标任务进程的所有文件页面中确定目标文件页面;将目标文件页面在页面缓存中进行锁定。
应当说明的是,第一、二实施例中的内存调度方法均可基于本实施例提供的内存调度装置实现,所属领域的普通技术人员可以清楚的了解到,为描述的方便和简洁,本实施例中所描述的内存调度装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
根据本实施例所提供的内存调度装置,从进程等待队列中获取目标任务进程;在页面缓存中,对目标任务进程相应的目标文件页面进行锁定;在对应于目标任务进程的内存锁定周期到达时,在页面缓存中对目标文件页面进行解锁。通过本申请方案的实施,有目的性的对进程等待队列中的目标任务进程进行页面锁定,有效保证了页面锁定的准确性,并且,及时在页面缓存中进行页面解锁,可提升页面缓存的有效利用率。
请参阅图5,图5为本申请第四实施例提供的一种电子装置。该电子装置可用于实现前述实施例中的内存调度方法。如图5所示,该电子装置主要包括:
存储器501、处理器502、总线503及存储在存储器501上并可在处理器502上运行的计算机程序,存储器501和处理器502通过总线503连接。处理器502执行该计算机程序时,实现前述实施例中的内存调度方法。其中,处理器的数量可以是一个或多个。
存储器501可以是高速随机存取记忆体(RAM,Random Access Memory)存储器,也可为非不稳定的存储器(non-volatile memory),例如磁盘存储器。存储器501用于存储可执行程序代码,处理器502与存储器501耦合。
进一步的,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的电子装置中,该计算机可读存储介质可以是前述图5所示实施例中的存储器。
该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现前述实施例中的内存调度方法。进一步的,该计算机可存储介质还可以是U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本申请所提供的内存调度方法、装置及计算机可读存储介质的描述,对于本领域的技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种内存调度方法,其特征在于,包括:
实时检测页面缓存的内存状态;
在所述内存状态为内存紧张状态时,从进程等待队列中获取目标任务进程,所述目标任务进程是根据任务进程的进程类型和进程状态确定的;
在所述页面缓存中,对所述目标任务进程相应的目标文件页面进行锁定;
在对应于所述目标任务进程的内存锁定周期到达时,在所述页面缓存中对所述目标文件页面进行解锁。
2.根据权利要求1所述的内存调度方法,其特征在于,所述实时检测所述页面缓存的内存状态包括:
在所述页面缓存的内存不足时,检测当前的内存回收时长;
将所述内存回收时长与预设时长阈值进行比较;
根据比较结果确定对应的内存状态;其中,在所述内存回收时长大于所述时长阈值时,所述内存状态为内存紧张状态;在所述内存回收时长小于所述时长阈值时,所述内存状态为内存充足状态。
3.根据权利要求1所述的内存调度方法,其特征在于,所述在页面缓存中,对所述目标任务进程相应的目标文件页面进行锁定之前,还包括:
获取所述目标任务进程所要求的任务响应速度;
在所述任务响应速度高于预设速度阈值时,执行所述在页面缓存中,对所述目标任务进程相应的目标文件页面进行锁定的步骤。
4.根据权利要求1所述的内存调度方法,其特征在于,所述在所述页面缓存中对所述目标文件页面进行解锁之前,还包括:
获取对应于所述目标任务进程的进程执行频率;
基于所述进程执行频率确定对应的内存锁定周期。
5.根据权利要求1所述的内存调度方法,其特征在于,所述从进程等待队列中获取目标任务进程之后,还包括:
获取所述目标任务进程的关联调用进程;
将所述关联调用进程相应的文件页面,在所述页面缓存中进行同步锁定。
6.根据权利要求1至5中任意一项所述的内存调度方法,其特征在于,所述在页面缓存中,对所述目标任务进程相应的目标文件页面进行锁定包括:
根据当前系统运行场景,确定所述目标任务进程所需对应响应的细分任务类型;
基于所述细分任务类型,从对应于所述目标任务进程的所有文件页面中确定目标文件页面;
将所述目标文件页面在页面缓存中进行锁定。
7.一种内存调度装置,其特征在于,包括:
获取模块,用于实时检测页面缓存的内存状态;在所述内存状态为内存紧张状态时,从进程等待队列中获取目标任务进程,所述目标任务进程是根据任务进程的进程类型和进程状态确定的;
锁定模块,用于在所述页面缓存中,对所述目标任务进程相应的目标文件页面进行锁定;
解锁模块,用于在对应于所述目标任务进程的内存锁定周期到达时,在所述页面缓存中对所述目标文件页面进行解锁。
8.一种电子装置,其特征在于,包括:存储器、处理器及总线;
所述总线用于实现所述存储器、处理器之间的连接通信;
所述处理器用于执行存储在所述存储器上的计算机程序;
所述处理器执行所述计算机程序时,实现权利要求1至6中任意一项所述方法中的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至6中的任意一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011062616.3A CN112131009B (zh) | 2020-09-30 | 2020-09-30 | 一种内存调度方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011062616.3A CN112131009B (zh) | 2020-09-30 | 2020-09-30 | 一种内存调度方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112131009A CN112131009A (zh) | 2020-12-25 |
CN112131009B true CN112131009B (zh) | 2024-04-02 |
Family
ID=73843563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011062616.3A Active CN112131009B (zh) | 2020-09-30 | 2020-09-30 | 一种内存调度方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112131009B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118540316A (zh) * | 2023-02-23 | 2024-08-23 | 中兴通讯股份有限公司 | 文件传输方法、电子设备、计算机可读介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1825283A (zh) * | 2006-03-31 | 2006-08-30 | 浙江大学 | 嵌入式操作系统硬件镜像启动优化的实现方法 |
CN108205472A (zh) * | 2017-08-15 | 2018-06-26 | 珠海市魅族科技有限公司 | 内存释放方法、释放装置、计算机装置以及可读存储介质 |
CN109446799A (zh) * | 2018-11-14 | 2019-03-08 | 深圳市腾讯网络信息技术有限公司 | 内存数据保护方法、安全组件和计算机设备及存储介质 |
CN110895515A (zh) * | 2018-09-12 | 2020-03-20 | 中兴通讯股份有限公司 | 内存缓存管理方法、多媒体服务器及计算机存储介质 |
CN111400052A (zh) * | 2020-04-22 | 2020-07-10 | Oppo广东移动通信有限公司 | 解压缩方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10540098B2 (en) * | 2016-07-19 | 2020-01-21 | Sap Se | Workload-aware page management for in-memory databases in hybrid main memory systems |
-
2020
- 2020-09-30 CN CN202011062616.3A patent/CN112131009B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1825283A (zh) * | 2006-03-31 | 2006-08-30 | 浙江大学 | 嵌入式操作系统硬件镜像启动优化的实现方法 |
CN108205472A (zh) * | 2017-08-15 | 2018-06-26 | 珠海市魅族科技有限公司 | 内存释放方法、释放装置、计算机装置以及可读存储介质 |
CN110895515A (zh) * | 2018-09-12 | 2020-03-20 | 中兴通讯股份有限公司 | 内存缓存管理方法、多媒体服务器及计算机存储介质 |
CN109446799A (zh) * | 2018-11-14 | 2019-03-08 | 深圳市腾讯网络信息技术有限公司 | 内存数据保护方法、安全组件和计算机设备及存储介质 |
CN111400052A (zh) * | 2020-04-22 | 2020-07-10 | Oppo广东移动通信有限公司 | 解压缩方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112131009A (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11106579B2 (en) | System and method to manage and share managed runtime memory for java virtual machine | |
US7865686B2 (en) | Virtual computer system, and physical resource reconfiguration method and program thereof | |
EP2972885B1 (en) | Memory object reference count management with improved scalability | |
US9098337B2 (en) | Scheduling virtual central processing units of virtual machines among physical processing units | |
JP6333848B2 (ja) | スケーラブル競合適応性を有する統計カウンタを実施するシステムおよび方法 | |
KR102236419B1 (ko) | 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체 | |
CN109992366B (zh) | 任务调度方法及调度装置 | |
JP6341931B2 (ja) | 更新確率値を格納する共用確率的カウンタを実施するシステムおよび方法 | |
US20120144406A1 (en) | Wait on address synchronization interface | |
US10083058B2 (en) | Batched memory page hinting | |
CN103473135A (zh) | 虚拟化环境下自旋锁lhp现象的处理方法 | |
JP6310943B2 (ja) | Numaアウェア統計カウンタを実施するシステムおよび方法 | |
US20240012683A1 (en) | Resource Management Unit for Capturing Operating System Configuration States and Offloading Tasks | |
CN112131009B (zh) | 一种内存调度方法、装置及计算机可读存储介质 | |
EP4369191A1 (en) | Memory scanning method and apparatus | |
Gough et al. | Kernel scalability—expanding the horizon beyond fine grain locks | |
CN112306980A (zh) | 日志处理方法及终端设备 | |
KR102443089B1 (ko) | 컴퓨팅 디바이스에서의 동기화 | |
Rexha et al. | A comparison of three page replacement algorithms: FIFO, LRU and optimal | |
JP2004192052A (ja) | ソフトウェア処理方法およびソフトウェア処理システム | |
CN111831390B (zh) | 服务器的资源管理方法、装置及服务器 | |
CN115858124A (zh) | 一种基板管理系统控制方法、装置、介质 | |
CN110795231B (zh) | 一种虚拟cpu的处理方法及装置 | |
CN112540886A (zh) | Cpu负荷值检测方法和装置 | |
CN112817692A (zh) | 资源回收方法、装置、设备、介质和程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |