CN106547625B - 金融终端的内存分配方法及装置 - Google Patents

金融终端的内存分配方法及装置 Download PDF

Info

Publication number
CN106547625B
CN106547625B CN201610979402.XA CN201610979402A CN106547625B CN 106547625 B CN106547625 B CN 106547625B CN 201610979402 A CN201610979402 A CN 201610979402A CN 106547625 B CN106547625 B CN 106547625B
Authority
CN
China
Prior art keywords
space
memory
continuous free
allocation
preset node
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
Application number
CN201610979402.XA
Other languages
English (en)
Other versions
CN106547625A (zh
Inventor
邓国祖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Zhengtong Kingsee Tech Co ltd
Original Assignee
Shenzhen Zhengtong Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Zhengtong Electronics Co Ltd filed Critical Shenzhen Zhengtong Electronics Co Ltd
Priority to CN201610979402.XA priority Critical patent/CN106547625B/zh
Publication of CN106547625A publication Critical patent/CN106547625A/zh
Application granted granted Critical
Publication of CN106547625B publication Critical patent/CN106547625B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced 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)
  • Memory System (AREA)

Abstract

本发明公开了一种金融终端的内存分配方法,金融终端的内存包括占用空间和连续空闲空间,占用空间和连续空闲空间分别包括预设节点空间,连续空闲空间还包括下一空间开始位置的地址、空间状态和上一空间开始位置的地址,该方法包括:接收外部设备发送的内存申请指令;根据内存申请指令和预设节点空间中的信息查找能够满足内存申请的需求的连续空闲空间;若查找到能够满足内存申请需求的连续空闲空间,则根据内存申请指令分配连续空闲空间中对应的空间,并修改连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态。本发明还公开了一种金融终端的内存分配装置。本发明能够提高内存空间的利用率,提高数据的处理速率。

Description

金融终端的内存分配方法及装置
技术领域
本发明涉及计算机科学技术领域,尤其涉及一种金融终端的内存分配方法及装置。
背景技术
目前,金融终端一般会与平台发生交互,因此金融终端数据的处理也需要与平台的数据发生交互,但是平台与终端发生数据交互时,交互的数据没有定长,金融终端数据和平台数据的范围相差很大。在金融终端上预设空间的时候,该预设的空间需要被设置得很大,会加大内存的需求。
现有的内存管理技术为了降低内存的需求,大多以位标记表示内存的存储情况。如果单个位标记表示的内存太少时,则需要用到的标记位太多,这会造成空间的浪费,而单个位标记表示的内存太大时,单次申请的内存空间利用率则会比较低,同时,在内存申请和内存释放过程中需要进行多次位移计算和多次位与运算,需要消耗较长的时间,因此采用位标记表示内存的存储情况时,内存空间的利用率会比较低,同时数据的处理速率也会较慢。
发明内容
本发明的主要目的在于提出一种金融终端的内存分配方法及装置,旨在实现提高内存的利用率,提高数据的处理速率,降低金融终端的内存需求。
为实现上述目的,本发明提供的一种金融终端的内存分配方法,所述金融终端的内存包括占用空间和连续空闲空间,所述占用空间和所述连续空闲空间分别包括预设节点空间,所述连续空闲空间还包括分配空间,所述节点空间包括下一空间开始位置的地址、空间状态和上一空间开始位置的地址,所述金融终端的内存分配方法包括以下步骤:
接收外部设备发送的内存申请指令;
根据所述内存申请指令和预设节点空间中的信息从所述内存中查找能够满足所述内存申请的需求的连续空闲空间;
若查找到分配空间能够满足所述内存申请需求的连续空闲空间,则根据所述内存申请指令分配所述连续空闲空间中对应的分配空间,并修改所述连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态。
可选地,所述金融终端的内存中设置有快速切入口,所述快速切入口设置在一连续空闲空间的开始位置,所述根据所述内存申请指令和预设节点空间中的信息从所述内存中查找能够满足所述内存申请的需求的连续空闲空间的步骤包括:
根据所述内存申请指令和预设节点空间中的信息从所述快速切入口所在的连续空闲空间开始查找能够满足所述内存申请需求的连续空闲空间;
若查找到分配空间能够满足所述内存申请需求的连续空闲空间,则根据所述内存申请指令分配所述连续空闲空间中对应的分配空间的步骤包括:
将所述快速切入口调整到下一连续空闲空间中预设节点空间的开始位置。
可选地,所述根据所述内存申请指令和预设节点空间中的信息从所述快速切入口所在的连续空闲空间开始查找能够满足所述内存申请需求的连续空闲空间的步骤包括:
判断所述快速切入口所在的连续空闲空间中的分配空间是否能够满足所述内存申请的需求;
若所述快速切入口所在的连续空闲空间中的分配空间不能满足所述内存申请需求,则根据节点空间包括下一空间开始位置的地址判断下一连续空闲空间是否能够满足所述内存申请的需求,直至查到查找到能够满足所述内存申请需求的连续空闲空间。
可选地,所述金融终端的内存分配方法还包括:
判断占用空间中的数据是否已经被使用;
若所述占用空间的中数据已被使用,则释放所述占用空间。
可选地,所述若所述占用空间中的数据已被使用,则释放所述占用空间的步骤包括:
获取数据已被使用的占用空间的指针;
对所述指针进行映射,获取所述占用空间中预设节点空间的开始位置的地址;
根据所述开始位置的地址,将所述占用空间的预设节点空间中的空间状态设置为空闲。
可选地,将释放的占用空间定义为释放空间,所述金融终端的内存分配方法还包括:
判断与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态是否为空闲;
若与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的分配空间、与所述释放空间相邻的下一内存空间的预设节点空间和与所述释放空间相邻的下一内存空间合并,并修改所述释放空间的预设节点空间中的下一空间开始位置的地址与所述释放空间相邻的下一空间中上一空间开始位置的地址;
判断与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态是否为空闲;
若与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的预设节点空间、分配空间,以及与所述释放空间相邻的上一内存空间的分配空间合并,并修改与所述释放空间相邻的上一内存空间的预设节点空间中的下一空间开始位置的地址与所述释放空间相邻的下一空间中上一空间开始位置的地址。
此外,为实现上述目的,本发明还提供一种金融终端的内存分配方法,所述金融终端的内存包括快速切入口,所述快速切入口设置在所述金融终端的内存中一连续空闲空间的开始位置,所述金融终端的内存分配方法包括以下步骤:
接收外部设备发送的内存申请指令;
判断所述快速切入口所在的连续空闲空间是否满足所述内存申请的需求;
若所述快速切入口所在的连续空闲空间满足所述内存申请的需求,则将所述快速切入口所在的连续空闲空间进行分配,并在分配完成时,将所述快速切入口调整到下一连续空闲空间的开始位置。
可选地,所述金融终端的内存还包括占用空间,所述占用空间和连续空闲空间包括预设节点空间,所述连续空闲空间还包括分配空间,所述节点空间包括下一空间开始位置的地址、空间状态和上一空间开始位置的地址,所述判断所述快速切入口所在的连续空闲空间是否满足所述内存申请的需求的步骤包括:
根据所述内存申请指令判断所述快速切入口所在的连续空闲空间中的分配空间是否满足所述内存申请的需求;
若所述快速切入口所在的连续空闲空间满足所述内存申请的需求,则将所述快速切入口所在的连续空闲空间进行分配的步骤包括:
若所述快速切入口所在的连续空闲空间中的分配空间满足所述内存申请的需求,则根据所述内存申请指令分配所述快速切入口所在的连续空闲空间中的分配空间,并修改所述快速切入口所在的连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态;
将所述快速切入口调整到下一连续空闲空间的预设节点空间的开始位置。
可选地,所述根据所述内存申请指令判断所述快速切入口所在的连续空闲空间中的分配空间是否满足所述内存申请的需求的步骤之后还包括:
若所述快速切入口所在的连续空闲空间中的分配空间不满足所述内存申请的需求,则通过所述快速切入口所在的连续空闲空间的预设节点空间中的下一空间开始位置的地址查找下一连续空闲空间;
若所述下一连续空闲空间中的分配空间满足所述内存申请需求,则执行步骤:根据所述内存申请指令分配所述连续空闲空间中的分配空间,并修改所述连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态;
若所述下一连续空闲空间中的分配空间不能满足所述内存申请需求,则继续查找下一连续空闲空间,直至查到查找到能够满足所述内存申请需求的连续空闲空间。
可选地,所述金融终端的内存分配方法还包括:
判断占用空间中的数据是否已经被使用;
若所述占用空间中的数据已被使用,则释放所述占用空间。
可选地,所述若所述占用空间的数据已被使用,则释放所述占用空间的步骤包括:
获取占用空间的指针;
对所述指针进行映射,获取所述占用空间中预设节点空间的开始位置的地址;
根据所述开始位置的地址,将所述占用空间的预设节点空间中的空间状态设置为空闲。
可选地,将释放的占用空间定义为释放空间,所述金融终端的内存分配方法还包括:
判断与释放空间相邻的下一内存空间的预设节点空间中的空间状态是否为空闲;
若与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的分配空间、与所述释放空间相邻的下一内存空间的预设节点空间和与所述释放空间相邻的下一内存空间连接合并,并修改所述释放空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址;
判断与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态是否为空闲;
若与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的预设节点空间、分配空间,以及与所述空闲空间相邻的上一内存空间的分配空间连接合并,并修改与所述释放空间相邻的上一内存空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址。
此外,为实现上述目的,本发明还提供一种金融终端的内存分配装置,所述金融终端的内存包括占用空间和连续空闲空间,所述占用空间和所述连续空闲空间分别包括预设节点空间,所述连续空闲空间还包括分配空间,所述节点空间包括下一空间开始位置的地址、空间状态和上一空间开始位置的地址,所述内存分配装置包括:
第一接收模块,用于接收外部设备发送的内存申请指令;
第一查找模块,用于根据所述内存申请指令和预设节点空间中的信息从所述内存中查找能够满足所述内存申请的需求的连续空闲空间;
第一分配模块,用于若查找到分配空间能够满足所述内存申请需求的连续空闲空间,则根据所述内存申请指令分配所述连续空闲空间中对应的分配空间,并修改所述连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态。
可选地,所述金融终端的内存中设置有快速切入口,所述快速切入口设置在一连续空闲空间的开始位置,所述第一查找模块还用于根据所述内存申请指令和预设节点空间中的信息从所述快速切入口所在的连续空闲空间开始查找能够满足所述内存申请需求的连续空闲空间;
所述第一分配模块还用于将所述快速切入口调整到下一连续空闲空间中预设节点空间的开始位置。
可选地,所述第一查找模块包括:
第一判断单元,用于判断所述快速切入口所在的连续空闲空间中的分配空间是否能够满足所述内存申请的需求;
第一查找单元,用于若所述快速切入口所在的连续空闲空间中的分配空间不能满足所述内存申请需求,则根据节点空间包括下一空间开始位置的地址判断下一连续空闲空间是否能够满足所述内存申请的需求,直至查到查找到能够满足所述内存申请需求的连续空闲空间。
可选地,所述内存分配装置还包括:
第一判断模块,用于判断占用空间中的数据是否已经被使用;
第一释放模块,用于若所述占用空间的中数据已被使用,则释放所述占用空间。
可选地,所述第一释放模块包括:
第一获取单元,用于获取数据已被使用的占用空间的指针;
第一映射单元,用于对所述指针进行映射,获取所述占用空间中预设节点空间的开始位置的地址;
第一释放单元,用于根据所述开始位置的地址,将所述占用空间的预设节点空间中的空间状态设置为空闲。
可选地,将释放的占用空间定义为释放空间,所述内存分配装置还包括:
第二判断模块,用于判断与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态是否为空闲;
第一合并模块,用于若与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的分配空间、与所述释放空间相邻的下一内存空间的预设节点空间和与所述释放空间相邻的下一内存空间合并,并修改所述释放空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址;
第三判断模块,用于判断与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态是否为空闲;
第二合并模块,用于若与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的预设节点空间、分配空间,以及与所述释放空间相邻的上一内存空间的分配空间合并,并修改与所述释放空间相邻的上一内存空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址。
此外,为实现上述目的,本发明还提供一种金融终端的内存分配装置,所述金融终端的内存包括快速切入口,所述快速切入口设置在所述金融终端的内存中一连续空闲空间的开始位置,所述金融终端的内存分配装置包括:
第二接收模块,用于接收外部设备发送的内存申请指令;
第四判断模块,用于判断位于所述内存中包括所述快速切入口所在的连续空闲空间是否满足所述内存申请的需求;
第二分配模块,用于若所述快速切入口所在的连续空闲空间满足所述内存申请的需求,则将所述快速切入口所在的连续空闲空间进行分配,并将所述快速切入口调整到下一连续空闲空间的开始位置。
可选地,所述金融终端的内存还包括占用空间,所述占用空间和连续空闲空间包括预设节点空间,所述连续空闲空间还包括分配空间,所述节点空间包括下一空间开始位置的地址、空间状态和上一空间开始位置的地址,
所述第四判断模块还用于根据所述内存申请指令判断所述快速切入口所在的连续空闲空间中的分配空间是否满足所述内存申请的需求;
所述第二分配模块还用于若所述快速切入口所在的连续空闲空间中的分配空间满足所述内存申请的需求,则根据所述内存申请指令分配所述快速切入口所在的连续空闲空间中的分配空间,并修改所述快速切入口所在的连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态;将所述快速切入口调整到下一连续空闲空间的预设节点空间的开始位置。
可选地,所述内存分配装置还包括:
第二查找模块,用于若所述快速切入口所在的连续空闲空间中的分配空间不满足所述内存申请的需求,则通过所述快速切入口所在的连续空闲空间的预设节点空间中的下一空间开始位置的地址查找下一连续空闲空间;
所述第二分配模块还用于若所述下一连续空闲空间中的分配空间满足所述内存申请需求,则执行步骤:根据所述内存申请指令分配所述连续空闲空间中的分配空间,并修改所述连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态;
所述第二查找模块还用于若所述下一连续空闲空间中的分配空间不能满足所述内存申请需求,则继续查找下一连续空闲空间,直至查到查找到能够满足所述内存申请需求的连续空闲空间。
可选地,所述金融终端的内存分配装置还包括:
第五判断模块,用于判断被占用的内存空间的数据是否已经被使用;
第二释放模块,用于若所述被占用的内存空间的数据已被使用,则释放被占用的内存空间。
可选地,所述第二释放模块包括:
第二获取单元,用于获取被占用的内存空间的指针;
第二映射单元,用于对所述指针进行映射,获取所述占用空间中预设节点空间的开始位置的地址;
第二释放单元,用于根据所述开始位置的地址,将所述占用空间的预设节点空间中的空间状态设置为空闲。
可选地,将释放的占用空间定义为释放空间,所述金融终端的内存分配装置还包括:
第六判断模块,用于判断与释放空间相邻的下一内存空间的预设节点空间中的空间状态是否为空闲;
第三合并模块,用于若与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的分配空间、与所述释放空间相邻的下一内存空间的预设节点空间和与所述释放空间相邻的下一内存空间连接合并,并修改所述释放空间的预设节点空间中的下一空间开始位置的地址和空间状态;
第七判断模块,用于判断与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态是否为空闲;
第四合并模块,用于若与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的预设节点空间、分配空间,以及与所述空闲空间相邻的上一内存空间的分配空间连接合并,并修改与所述空闲空间相邻的上一内存空间的预设节点空间中的下一空间开始位置的地址和空间状态。
本发明中金融终端的内存包括占用空间和连续空闲空间,所述占用空间和所述连续空闲空间分别包括预设节点空间,所述连续空闲空间还包括分配空间,所述节点空间包括下一空间开始位置的地址、空间状态和上一空间开始位置的地址,金融终端在接收外部设备发送的内存申请指令时,根据内存申请指令和预设节点空间中的信息查找满足所述内存申请的需求的连续空闲空间,在查找到分配空间能够满足所述内存申请需求的连续空闲空间时,则按需分配该连续空闲空间中对应的分配空间,避免在内存申请时进行多次的位移计算和位与计算,从而能够提高数据的处理速率;同时,分配的内存空间刚好满足内存申请的需求,不会存在单次申请空间过大的情况,从而提高内存的利用率。因此本发明能够提高数据的处理速率,提高内存的利用率,从而降低金融终端的内存需求。
附图说明
图1为本发明金融终端的内存分配方法第一实施例的流程示意图;
图2为本发明金融终端的内存分配方法第二实施例的流程示意图;
图3为本发明金融终端的内存分配方法第三实施例的流程示意图;
图4为图4为图3中若所述被占用内存空间的数据已被使用,则释放被占用的内存空间的细化流程示意图;
图5为本发明金融终端的内存分配方法第四实施例的流程示意图;
图6为本发明金融终端的内存分配方法第五实施例的流程示意图;
图7为本发明金融终端的内存分配方法第六实施例的流程示意图;
图8为本发明金融终端的内存分配方法第七实施例的流程示意图;
图9为图8中若所述被占用内存空间的数据已被使用,则释放被占用的内存空间的细化流程示意图;
图10为本发明金融终端的内存分配方法第八实施例的流程示意图;
图11为本发明实施例中内存申请和内存释放的示意图;
图12为本发明实施例中芯片内存管理过程中一内部结构示意图。
图13为本发明金融终端的内存分配装置第一实施例的功能模块示意图;
图14为本发明金融终端的内存分配装置第二实施例的功能模块示意图;
图15为本发明金融终端的内存分配装置第三实施例的功能模块示意图;
图16为本发明金融终端的内存分配装置第四实施例的功能模块示意图;
图17本发明金融终端的内存分配装置第五实施例的功能模块示意图;
图18本发明金融终端的内存分配装置第六实施例的功能模块示意图;
图19本发明金融终端的内存分配装置第七实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种金融终端的内存分配方法。
参照图1,图1为本发明金融终端的内存分配方法第一实施例的流程示意图。
在本实施例中,该金融终端的内存分配方法包括以下步骤:
步骤S110,接收外部设备发送的内存申请指令;
本实施例中金融终端的内存包括占用空间和连续空闲空间,所述占用空间和所述连续空闲空间分别包括预设节点空间,所述连续空闲空间还包括分配空间,所述节点空间包括下一空间开始位置的地址、空间状态和上一空间开始位置的地址,使用过程中金融终端的内存分布示意可以如图11所示,具体地,图11中图1.0内存包括占用空间1(图中标识为占用1)、空闲空间2(图中标识为空闲2)、占用空间3(图中标识为占用3)和后续空间,其中各个空间都包括预设节点空间,预设节点空间则包括下一空间开始位置的地址、空间状态和上一空间开始位置的地址,本实施例中分别用next、tag和last表示,连续空闲空间还包括分配空间,分配空间则为可分配,未被占用的空间。本实施例中为使用方便将预设节点空间设置在各个空间的开端位置,该开端位置是按照内存中存储位置的先后为标准,先分配的位置为前端,整个内存空间为一总线段。换而言之,本实施例中内存的管理结构采用节点线段的方式,即各个空间则为总线段中的各个节点线段。
在终端开始使用时,整个内存空间为一连续空闲空间,整个内存空间通过多次内存申请和内存释放会产生不同的连续空闲空间,如图12所示,金融终端一共进行了3次内存申请和1次内存释放,通过3次内存申请和1次内存释放,产生了2个连续空闲空间,在下一次内存申请中,所述连续空闲空间可以是这两个空闲空间的任意一个。
所述外部设备包括与金融终端进行数据交互的平台、服务器。金融终端接收外部设备发送的内存申请指令,根据所述内存申请指令可以获得外部设备发送的内存申请数据,获得所述内存申请数据的字节数。
步骤S120,根据所述内存申请指令和预设节点空间中的信息从所述内存中查找能够满足所述内存申请的需求的连续空闲空间;
根据所述内存申请指令获得外部设备发送的内存申请数据大小,即获得所述内存申请数据的字节数,然后根据接收到的内存申请指令和预设节点空间中的信息从内存中查找够满足所述内存申请的需求的连续空闲空间,具体地,本实施例中可以从内存的开始位置开始,根据预设节点空间中的空间状态信息确定查询的节点空间是占用空间还是连续空闲空间,在查找到连续的空闲空间时,判断查找到的连续空闲空间是否满足内存申请的需求。具体实施中也可以从其他位置开始查找。
步骤S130,若查找到分配空间能够满足所述内存申请需求的连续空闲空间,则根据所述内存申请指令分配所述连续空闲空间中对应的分配空间,并修改所述连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态。
根据步骤S120的结果,如果查找到分配空间能够满足所述内存申请需求的连续空闲空间,则根据外部设备发送的内存申请指令分配对应的内存空间,即按照内存申请的需求进行分配,具体地,如果查找到的连续空闲空间的分配空间大小大于内存申请的空间大小,则会剩余部分分配空间,此时这剩余的分配空间则重新定义为一连续的空闲空间,其开始位置设置对应的预设节点空间,该连续空闲空间的原来的预设节点空间则作为已分配的空间的预设节点空间,此时该已分配的空间为占用空间。在分配完成后,修改该占用空间的预设节点空间信息,包括修改其空间状态和下一空间开始位置。
如果查找到的连续空闲空间的分配空间大小等于内存申请的空间大小,则只需修改该空间中预设节点空间的空间状态。如果没有查找到分配空间能够满足所述内存申请需求的连续空闲空间,则说明内存申请失败。
本发明中金融终端的内存包括占用空间和连续空闲空间,所述占用空间和所述连续空闲空间分别包括预设节点空间,所述连续空闲空间还包括分配空间,所述节点空间包括下一空间开始位置的地址、空间状态和上一空间开始位置的地址,金融终端在接收外部设备发送的内存申请指令时,根据内存申请指令和预设节点空间中的信息查找满足所述内存申请的需求的连续空闲空间,在查找到分配空间能够满足所述内存申请需求的连续空闲空间时,则按需分配该连续空闲空间中对应的分配空间,避免在内存申请时进行多次的位移计算和位与计算,从而能够提高数据的处理速率;同时,分配的内存空间刚好满足内存申请的需求,不会存在单次申请空间过大的情况,从而提高内存的利用率。因此本发明能够提高数据的处理速率,提高内存的利用率,从而降低金融终端的内存需求。
参照图2,图2为本发明金融终端的内存分配方法第二实施例的流程示意图。
基于本发明金融终端的内存分配方法第一实施例,为进一步提高查找速率,本实施例中与第一实施例的区别在于金融终端的内存中设置有快速切入口,所述快速切入口设置在一连续空闲空间的开始位置,步骤S120包括:
步骤S121,根据所述内存申请指令和预设节点空间中的信息从所述快速切入口所在的连续空闲空间开始查找能够满足所述内存申请需求的连续空闲空间;
为了避免每次查找空闲空间时,都从内存的开始位置开始查找,本实施例中设置有快速切入口,所述快速切入口设置在一连续空闲空间的开始位置,在接收到外部设备发送的内存申请指令时,根据接收到的内存申请指令和预设节点空间中的信息从快速切入口开始查找够满足所述内存申请的需求的连续空闲空间,如果快速切入口所在连续空闲空间满足内存申请需求时,则分配对应的空间;如果快速切入口所在连续空闲空间不能满足内存申请需求时,则根据预设节点空间查找下一节点空间。
具体地,步骤S121可以包括:
判断所述快速切入口所在的连续空闲空间中的分配空间是否能够满足所述内存申请的需求;
若所述快速切入口所在的连续空闲空间中的分配空间不能满足所述内存申请需求,则根据节点空间包括下一空间开始位置的地址判断下一连续空闲空间是否能够满足所述内存申请的需求,直至查到查找到能够满足所述内存申请需求的连续空闲空间。
在接收到外部设备发送的内存申请请求时,判断快速切入口所在的连续空闲空间中的分配空间是否能够满足所述内存申请的需求,如果快速切入口所在的连续空闲空间中的分配空间能够满足所述内存申请需求,则在该连续空闲空间分配对应的空间;若所述快速切入口所在的连续空闲空间中的分配空间不能满足所述内存申请需求,则根据节点空间包括下一空间开始位置的地址判断下一连续空闲空间是否能够满足所述内存申请的需求,直至查到查找到能够满足所述内存申请需求的连续空闲空间。金融终端没有查找到满足内存申请需求的未分配的连续内存空间,则判定所述内存申请失败,并向所述外部设备反馈所述内存申请失败的提示信息。
步骤S130可以包括:
步骤S131,将所述快速切入口调整到下一连续空闲空间中预设节点空间的开始位置。
本实施例中根据所述内存申请指令分配所述连续空闲空间中对应的分配空间后,将快速切入口调整到下一连续空闲空间中预设节点空间的开始位置,以方便下次从下一连续空闲空间开始进行查找。
由于内存的分配从开始端到结尾端,因此快速切入口从开始端往后移动,再回到开始端,如此往复,可以保证快速切入口离分配空间较大的连续空闲空间较近,因此减少查找时间。
参阅图3,图3为本发明金融终端的内存分配方法第三实施例的流程示意图。
基于本发明金融终端的内存分配方法上述实施例,所述金融终端的内存分配方法还包括:
步骤S140,判断占用空间中的数据是否已经被使用;
所述被占用的内存空间为金融终端进行内存申请并获得分配的内存空间,每过一段时间,金融终端则判断被占用的内存空间的数据是否已经被使用。在具体实施中,所述被占用的内存空间可以有多个。
步骤S150,若所述占用空间的中数据已被使用,则释放所述占用空间。
金融终端通过判断发现所述被占用内存空间的数据已被使用,则释放被占用的内存空间。
具体地,参照图4,图4为图3中若所述被占用内存空间的数据已被使用,则释放被占用的内存空间的细化流程示意图,步骤S150包括:
步骤S151,获取数据已被使用的占用空间的指针;
金融终端通过判断发现所述被占用内存空间的数据已被使用,则获取被占用的内存空间的指针,所述指针用于标记被占用的内存空间。
步骤S152,对所述指针进行映射,获取所述占用空间中预设节点空间的开始位置的地址;
步骤S153,根据所述开始位置的地址,将所述占用空间的预设节点空间中的空间状态设置为空闲。
获取被占用内存空间的指针后,对所述被占用内存空间的指针进行映射,得到获取所述占用空间中预设节点空间的开始位置的地址,并对释放的空间添加空闲标记,所述空闲标记是为了标记空闲空间,即更改该空间的状态,从而方便整合相邻的空闲空间,将各个零散的空闲空间合并成为一个空闲空间。进一步参阅图5,金融终端的内存分配方法还包括:
步骤S160,判断与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态是否为空闲;
步骤S170,若与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的分配空间、与所述释放空间相邻的下一内存空间的预设节点空间和与所述释放空间相邻的下一内存空间合并,并修改所述释放空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址;
步骤S180,判断与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态是否为空闲;
步骤S190,若与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的预设节点空间、分配空间,以及与所述释放空间相邻的上一内存空间的分配空间合并,并修改与所述释放空间相邻的上一内存空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址。
在得到释放的内存空间后,判断与所述释放的空间相邻的内存空间是否存在空闲标记,具体地,根据释放空间中预设节点空间中的下一空间存储的信息查找到下一空间,然后根据下一空间中的预设节点空间中的空间状态。如果通过判断发现与所述释放的空间相邻的内存空间存在空闲标记,则将所述释放的空间和所述相邻的内存空间连接合并,使其成为一个空闲空间,便于下次内存申请使用。具体地,将所述释放空间中的分配空间、与所述释放空间相邻的下一内存空间的预设节点空间和与所述释放空间相邻的下一内存空间合并,并修改所述释放空间的预设节点空间中的下一空间开始位置的地址与所述释放空间相邻的下一空间中上一空间开始位置的地址,即将该释放空间中分配空间和与该释放空间相邻的下一空间中的预设节点空间、分配空间合并,并将更新合并后的空间中的预设节点空间中的下一空间开始位置的地址。
然后判断与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态是否为空闲;若与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的预设节点空间、分配空间,以及与所述释放空间相邻的上一内存空间的分配空间合并,并修改与所述释放空间相邻的上一内存空间的预设节点空间中的下一空间开始位置的地址与所述释放空间相邻的下一空间中上一空间开始位置的地址,即将该释放空间中的预设节点空间、分配空间和与该释放空间相邻的上一空间中的分配空间合并,并将更新合并后的空间中的预设节点空间中的下一空间开始位置的地址。
通过上述描述可知本实施例中先与后面的空闲空间合并,再与前一相邻的空闲空间合并,以尽可能优先获得最大的空闲空间。
例如,图11中的图1.0-图2.0空间分配和空间合并的过程,假设快速切入口IQ位于名为“空闲2”的开始位置,则在接收到内存申请时,判断空闲2是否满足内存申请需求,如果能够满足,则在空闲2中分配对应的空间,并将空闲2中未分配的空间按照预设规则新建一空间,名为空闲2.2,如图1.1所示;图1.1至图2.0则可以表示名称为占用3的空间中数据被释放,然后与其他空间合并的过程示意图,具体地,在占用3被释放时,判断到与占用3相邻的下一空间为空闲,此时,将占用3中的分配空间和与占用3相邻的下一空间的预设节点空间、分配空间合并,并修改合并后空间中的预设节点空间中信息。
如果判断到与占用3相邻的上一空间也为空闲,则将合并后的空间在与名称空闲2.2的空间合并,具体地,金融终端通过判断发现“占用3”的数据已被使用,则获取“占用3”的指针,获取“占用3”的指针后,对所述“占用3”的指针进行映射,得到“占用3”所在空间的开始位置的地址,如图中所示中空闲2末端箭头所在的位置,对释放的空间添加空闲标记,即将“占用3”中预设节点空间中的tag中信息设置为false。在得到释放的空间后,根据“占用3”中预设节点空间中的下一空间开始位置的地址找到下一空间,然后根据下一空间中的预设节点空间状态tag判断与所述释放的空间相邻的下一内存空间是否为空闲空间,如果是,则合并占用3和相邻的后续空闲空间,然后再判断到与占用3的空间相邻的上一空间:空闲2.2也是空闲,则继续合并,最后得到“占用3”、“空闲2.2”和“空闲......”合并成一个空闲空间。
参照图6,图6为本发明金融终端的内存分配方法第五实施例的流程示意图。
在本实施例中,该金融终端的内存分配方法包括以下步骤:
步骤S210,接收外部设备发送的内存申请指令;
本发明中金融终端的内存中设置有快速切入口,所述快速切入口被设置于金融终端的内存中一连续空闲空间的开始位置,所述快速切入口用于根据所述内存申请指令快速的分配对应的内存空间。
所述外部设备包括与金融终端进行数据交互的平台、服务器。金融终端接收外部设备发送的内存申请指令,根据所述内存申请指令可以获得外部设备发送的内存申请数据,获得所述内存申请数据的字节数。
步骤S220,判断所述快速切入口所在的连续空闲空间是否满足所述内存申请的需求;
根据所述内存申请指令获得外部设备发送的内存申请数据,获得所述内存申请数据的字节数,判断位于所述内存中所述快速切入口所在的连续空闲空间是否能够满足所述内存申请数据的存储需求。所述连续空闲空间可以是整个内存空间。在具体实施中,整个内存空间通过多次内存申请和内存释放会产生不同的连续空闲空间,因此连续空闲空间也可以是整个内存空间中的其中一个连续空闲空间。如图12所示,金融终端一共进行了3次内存申请和1次内存释放,通过3次内存申请和1次内存释放,产生了2个连续空闲空间,在下一次内存申请中,所述连续空闲空间可以是这两个空闲空间的任意一个。连续空闲空间为整个内存空间且足够大时,所述快速切入口位于整个内存空间的开始位置,这时整个内存空间必然满足所述内存申请的需求。连续空闲空间为整个内存空间中的其中一个连续空闲空间时,所述快速切入口位于该连续空闲空间的开始位置,这时需要判断该连续空闲空间是否满足所述内存申请的需求。
步骤S230,若所述快速切入口所在的连续空闲空间满足所述内存申请的需求,则将所述快速切入口所在的连续空闲空间进行分配,并在分配完成时,将所述快速切入口调整到下一连续空闲空间的开始位置。
金融终端通过判断发现所述连续空闲空间满足所述内存申请的需求,则将所述快速切入口所在的连续空闲空间进行分配,具体地,如果查找到的连续空闲空间的分配空间大小大于内存申请的空间大小,则会剩余部分分配空间,此时这剩余的分配空间则重新定义为一连续的空闲空间,其开始位置设置对应的预设节点空间,该连续空闲空间的原来的预设节点空间则作为已分配的空间的预设节点空间,此时该已分配的空间为占用空间。在分配完成后,修改该占用空间的预设节点空间信息,包括修改其空间状态和下一空间开始位置。如果查找到的连续空闲空间的分配空间大小等于内存申请的空间大小,则只需修改该空间中预设节点空间的空间状态。同时将快速切入口调整到下一连续空闲空间的开始位置。
在本实施例中,假设一共进行3次内存申请和1次内存释放,如图11中的图1.0所示,从图11可以看出第1次内存申请时,连续空闲空间为整个内存空间,分配的对应内存空间为“占用1”,而“占用1”之后的内存空间为空闲空间,第1次内存申请结束后,快速切入口调整到下一空闲空间的开始位置。第2次内存申请时,连续空闲空间为第1次内存申请后剩余的内存空间,分配的对应内存空间为“占用2”(图中显示的是内存释放后的“空闲2”),而“占用1”之后的空间为空闲空间,第2次内存申请结束后,快速切入口调整到空闲空间的开始位置。第3次内存申请时,连续空闲空间为第2次内存申请后剩余的内存空间,分配的对应内存空间为“占用3”,而“占用3”之后的空间为空闲空间,第3次内存申请结束后,快速切入口调整到空闲空间的开始位置。这时金融终端对“占用2”进行释放获得“空闲2”,快速切入口调整到“空闲2”的开始位置。如果这时进行内存申请,金融终端先判断“空闲2”是否满足所述内存申请的需求,若满足所述内存申请的需求,则将“空闲2”进行分配获得相应的内存空间,如图11中的图1.1所示,分配的内存空间为“占用”,而空闲空间为“空闲2.2”,这时快速切入口调整到“空闲2.2”的开始位置。
由于内存的分配从开始端到结尾端,因此快速切入口从开始端往后移动,再回到开始端,如此往复,可以保证快速切入口离分配空间较大的连续空闲空间较近,因此减少查找时间。
在本实施例中,本发明通过接收外部设备发送的内存申请指令;判断所述快速切入口所在的连续空闲空间是否满足所述内存申请的需求;若所述快速切入口所在的连续空闲空间满足所述内存申请的需求,则将所述快速切入口所在的连续空闲空间进行分配,并在分配完成时,将所述快速切入口调整到下一连续空闲空间的开始位置。通过上述方式,金融终端接收外部设备发送的内存申请指令,然后判断位于所述内存中所述快速切入口所在的连续空闲空间是否满足所述内存申请的需求,若所述连续空闲空间满足所述内存申请的需求,则分配对应的内存空间,在内存申请时不会进行多次的位移计算和位与计算,从而提高数据的处理速率;同时,分配的内存空间刚好满足内存申请的需求,不会存在单次申请空间过大的情况,从而提高内存的利用率。因此本发明能够提高数据的处理速率,提高内存的利用率,从而降低金融终端的内存需求。
进一步地,参照图7,图7为本发明金融终端的内存分配方法第六实施例的流程示意图。
基于上述实施例,步骤S220可以包括:
步骤S221,根据所述内存申请指令判断所述快速切入口所在的连续空闲空间中的分配空间是否满足所述内存申请的需求;
本实施例中金融终端的内存包括占用空间和连续空闲空间,所述占用空间和所述连续空闲空间分别包括预设节点空间,所述连续空闲空间还包括分配空间,所述节点空间包括下一空间开始位置的地址、空间状态和上一空间开始位置的地址,使用过程中金融终端的内存分布示意可以如图11所示,具体地,图11中图1.0内存包括占用空间1(图中标识为占用1)、空闲空间2(图中标识为空闲2)、占用空间3(图中标识为占用3)和后续空间,其中各个空间都包括预设节点空间,预设节点空间则包括下一空间开始位置的地址、空间状态和上一空间开始位置的地址,本实施例中分别用next、tag和last表示,连续空闲空间还包括分配空间,分配空间则为可分配,未被占用的空间。本实施例中为使用方便将预设节点空间设置在各个空间的开端位置,该开端位置是按照内存中存储位置的先后为标准,先分配的位置为前端,整个内存空间为一总线段。换而言之,本实施例中内存的管理结构采用节点线段的方式,即各个空间则为总线段中的各个节点线段。
在终端开始使用时,整个内存空间为一连续空闲空间,整个内存空间通过多次内存申请和内存释放会产生不同的连续空闲空间,如图12所示,金融终端一共进行了3次内存申请和1次内存释放,通过3次内存申请和1次内存释放,产生了2个连续空闲空间,在下一次内存申请中,所述连续空闲空间可以是这两个空闲空间的任意一个。
在接收内存申请时,根据所述内存申请指令判断所述快速切入口所在的连续空闲空间中的分配空间是否满足所述内存申请的需求。
步骤S230包括:
步骤S231,若所述快速切入口所在的连续空闲空间中的分配空间满足所述内存申请的需求,则根据所述内存申请指令分配所述快速切入口所在的连续空闲空间中的分配空间,并修改所述快速切入口所在的连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态;
步骤S232,将所述快速切入口调整到下一连续空闲空间的预设节点空间的开始位置。
如果查找到分配空间能够满足所述内存申请需求的连续空闲空间,则根据外部设备发送的内存申请指令分配对应的内存空间,即按照内存申请的需求进行分配,具体地,如果查找到的连续空闲空间的分配空间大小大于内存申请的空间大小,则会剩余部分分配空间,此时这剩余的分配空间则重新定义为一连续的空闲空间,其开始位置设置对应的预设节点空间,该连续空闲空间的原来的预设节点空间则作为已分配的空间的预设节点空间,此时该已分配的空间为占用空间。在分配完成后,修改该占用空间的预设节点空间信息,包括修改其空间状态和下一空间开始位置。如果查找到的连续空闲空间的分配空间大小等于内存申请的空间大小,则只需修改该空间中预设节点空间的空间状态。
同时将快速切入口调整到下一连续空闲空间的预设节点空间的开始位置。
进一步地,步骤S230还可以包括:
若所述快速切入口所在的连续空闲空间中的分配空间不满足所述内存申请的需求,则通过所述快速切入口所在的连续空闲空间的预设节点空间中的下一空间开始位置的地址查找下一连续空闲空间;
金融终端通过判断发现包括所述快速切入口的连续空闲空间不满足所述内存申请的需求时,则查找其它未分配的连续内存空间,判断其它未分配的连续内存空间是否满足所述内存申请的需求。例如,如图11中的图1.0所示,如果“空闲2”的空间不满足所述内存申请的需求时,则查找“占用3”之后的空闲空间,判断“占用3”之后的空闲空间是否满足所述内存申请的需求。
若所述下一连续空闲空间中的分配空间满足所述内存申请需求,则执行步骤S231:根据所述内存申请指令分配所述连续空闲空间中的分配空间,并修改所述连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态;
若所述下一连续空闲空间中的分配空间不能满足所述内存申请需求,则继续查找下一连续空闲空间,直至查到查找到能够满足所述内存申请需求的连续空闲空间。
金融终端若所述下一连续空闲空间中的分配空间满足所述内存申请需求,则所述快速切入口所在空间新建分配对应的内存空间,并在分配完成时,将所述快速切入口调整到其它下一空闲空间的开始位置。例如,如图11中的图1.0和1.1所示,如果查找到“空闲2”满足所述内存申请的需求时,则将所述快速切入口调整到位于“空闲2”之前的位置,从所述快速切入口处开始分配对应的内存空间,所分配的内存空间为“占用”,并将所述快速切入口调整到“空闲2.2”的开始位置。如果没有找到满足内存申请的空闲空间,则查找下一连续空闲空间,直至查到查找到能够满足所述内存申请需求的连续空闲空间。
在内存空间全部查找完后,金融终端没有查找到满足内存申请需求的未分配的连续内存空间,则判定所述内存申请失败,并向所述外部设备反馈所述内存申请失败的提示信息。例如,如图11中图1.0所示,所述快速切入口位于“空闲2”之前,如果“空闲2”不满足所述内存申请的需求且金融终端没有查找到满足所述内存申请的其它连续空闲空间,则判定所述内存申请失败,并向所述外部设备反馈所述内存申请失败的提示信息。
进一步地,参照图8,图8为本发明金融终端的内存分配方法第七实施例的流程示意图。
基于上述实施例,所述金融终端的内存分配方法还包括:
步骤S240,判断被占用内存空间的数据是否已经被使用;
所述被占用的内存空间为金融终端进行内存申请并获得分配的内存空间,每过一段时间,金融终端则判断被占用的内存空间的数据是否已经被使用。在具体实施中,所述被占用的内存空间可以有多个。
步骤S250,若所述被占用内存空间的数据已被使用,则释放被占用的内存空间。
金融终端通过判断发现所述被占用内存空间的数据已被使用,则释放被占用的内存空间。
具体地,参照图9,图9为图8中若所述被占用内存空间的数据已被使用,则释放被占用的内存空间的细化流程示意图。
步骤S250可以包括:
步骤S251,获取被占用的内存空间的指针;
金融终端通过判断发现所述被占用内存空间的数据已被使用,则获取被占用的内存空间的指针,所述指针用于标记被占用的内存空间。
步骤S252,对所述指针进行映射,获取所述占用空间中预设节点空间的开始位置的地址;
步骤S253,根据所述开始位置的地址,将所述占用空间的预设节点空间中的空间状态设置为空闲。
获取被占用内存空间的指针后,对所述被占用内存空间的指针进行映射,得到获取所述占用空间中预设节点空间的开始位置的地址,并对释放的空间添加空闲标记,所述空闲标记是为了标记空闲空间,即更改该空间的状态,从而方便整合相邻的空闲空间,将各个零散的空闲空间合并成为一个空闲空间。进一步,参阅图10,金融终端的内存分配方法还包括:
步骤S260,判断与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态是否为空闲;
步骤S270,若与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的分配空间、与所述释放空间相邻的下一内存空间的预设节点空间和与所述释放空间相邻的下一内存空间合并,并修改所述释放空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址;
步骤S280,判断与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态是否为空闲;
步骤S290,若与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的预设节点空间、分配空间,以及与所述释放空间相邻的上一内存空间的分配空间合并,并修改与所述空闲空间相邻的上一内存空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址。
在得到释放的内存空间后,判断与所述释放的空间相邻的内存空间是否存在空闲标记,具体地,根据释放空间中预设节点空间中的下一空间存储的信息查找到下一空间,然后根据下一空间中的预设节点空间中的空间状态。如果通过判断发现与所述释放的空间相邻的内存空间存在空闲标记,则将所述释放的空间和所述相邻的内存空间连接合并,使其成为一个空闲空间,便于下次内存申请使用。具体地,将所述释放空间中的分配空间、与所述释放空间相邻的下一内存空间的预设节点空间和与所述释放空间相邻的下一内存空间合并,并修改所述释放空间的预设节点空间中的下一空间开始位置的地址与所述释放空间相邻的下一空间中上一空间开始位置的地址,即将该释放空间中分配空间和与该释放空间相邻的下一空间中的预设节点空间、分配空间合并,并将更新合并后的空间中的预设节点空间中的下一空间开始位置的地址。
然后判断与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态是否为空闲;若与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的预设节点空间、分配空间,以及与所述释放空间相邻的上一内存空间的分配空间合并,并修改与所述释放空间相邻的上一内存空间的预设节点空间中的下一空间开始位置的地址与所述释放空间相邻的下一空间中上一空间开始位置的地址,即将该释放空间中的预设节点空间、分配空间和与该释放空间相邻的上一空间中的分配空间合并,并将更新合并后的空间中的预设节点空间中的下一空间开始位置的地址。
通过上述描述可知本实施例中先与后面的空闲空间合并,再与前一相邻的空闲空间合并,以尽可能优先获得最大的空闲空间。
例如,图11中的图1.0-图2.0空间分配和空间合并的过程,假设快速切入口IQ位于名为“空闲2”的开始位置,则在接收到内存申请时,判断空闲2是否满足内存申请需求,如果能够满足,则在空闲2中分配对应的空间,并将空闲2中未分配的空间按照预设规则新建一空间,名为空闲2.2,如图1.1所示;图1.1至图2.0则可以表示名称为占用3的空间中数据被释放,然后与其他空间合并的过程示意图,具体地,在占用3被释放时,判断到与占用3相邻的下一空间为空闲,此时,将占用3中的分配空间和与占用3相邻的下一空间的预设节点空间、分配空间合并,并修改合并后空间中的预设节点空间中信息。
如果判断到与占用3相邻的上一空间也为空闲,则将合并后的空间在与名称空闲2.2的空间合并,具体地,金融终端通过判断发现“占用3”的数据已被使用,则获取“占用3”的指针,获取“占用3”的指针后,对所述“占用3”的指针进行映射,得到“占用3”所在空间的开始位置的地址,如图中所示中空闲2末端箭头所在的位置,对释放的空间添加空闲标记,即将“占用3”中预设节点空间中的tag中信息设置为false。在得到释放的空间后,根据“占用3”中预设节点空间中的下一空间开始位置的地址找到下一空间,然后根据下一空间中的预设节点空间状态tag判断与所述释放的空间相邻的下一内存空间是否为空闲空间,如果是,则合并占用3和相邻的后续空闲空间,然后再判断到与占用3的空间相邻的上一空间:空闲2.2也是空闲,则继续合并,最后得到“占用3”、“空闲2.2”和“空闲......”合并成一个空闲空间。
本发明进一步提供一种金融终端的内存分配装置。
参照图13,图13为本发明金融终端的内存分配装置第一实施例的功能模块示意图。
在本实施例中,所述金融终端的内存包括占用空间和连续空闲空间,所述占用空间和所述连续空闲空间分别包括预设节点空间,所述连续空闲空间还包括分配空间,所述节点空间包括下一空间开始位置的地址、空间状态和上一空间开始位置的地址,所述内存分配装置包括:
第一接收模块110,用于接收外部设备发送的内存申请指令;
第一查找模块120,用于根据所述内存申请指令和预设节点空间中的信息从所述内存中查找能够满足所述内存申请的需求的连续空闲空间;
第一分配模块130,用于若查找到分配空间能够满足所述内存申请需求的连续空闲空间,则根据所述内存申请指令分配所述连续空闲空间中对应的分配空间,并修改所述连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态。
继续参阅图13,为进一步提高查找速率,所述金融终端的内存中设置有快速切入口,所述快速切入口设置在一连续空闲空间的开始位置,所述第一查找模块120还用于根据所述内存申请指令和预设节点空间中的信息从所述快速切入口所在的连续空闲空间开始查找能够满足所述内存申请需求的连续空闲空间;
具体地,所述第一查找模块120包括:
第一判断单元121,用于判断所述快速切入口所在的连续空闲空间中的分配空间是否能够满足所述内存申请的需求;
第一查找单元122,用于若所述快速切入口所在的连续空闲空间中的分配空间不能满足所述内存申请需求,则根据节点空间包括下一空间开始位置的地址判断下一连续空闲空间是否能够满足所述内存申请的需求,直至查到查找到能够满足所述内存申请需求的连续空闲空间。
所述第一分配模块130还用于将所述快速切入口调整到下一连续空闲空间中预设节点空间的开始位置。
参阅图14,图14为本发明金融终端的内存分配装置第二实施例的功能模块示意图。
基于为本发明金融终端的内存分配装置上述实施例,该内存分配装置还包括:
第一判断模块140,用于判断占用空间中的数据是否已经被使用;
第一释放模块150,用于若所述占用空间的中数据已被使用,则释放所述占用空间。
具体的,所述第一释放模块150包括:
第一获取单元151用于获取数据已被使用的占用空间的指针;
第一映射单元152,用于对所述指针进行映射,获取所述占用空间中预设节点空间的开始位置的地址;
第一释放单元153,用于根据所述开始位置的地址,将所述占用空间的预设节点空间中的空间状态设置为空闲。
参阅图15,图15为本发明金融终端的内存分配装置第三实施例的功能模块示意图。
基于为本发明金融终端的内存分配装置上述实施例,为方便理解本实施例中将释放的占用空间定义为释放空间,所述内存分配装置还包括:
第二判断模块160,用于判断与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态是否为空闲;
第一合并模块170,用于若与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的分配空间、与所述释放空间相邻的下一内存空间的预设节点空间和与所述释放空间相邻的下一内存空间合并,并修改所述释放空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址;
第三判断模块180,用于判断与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态是否为空闲;
第二合并模块190,用于若与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的预设节点空间、分配空间,以及与所述释放空间相邻的上一内存空间的分配空间合并,并修改与所述空闲空间相邻的上一内存空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址。
本发明进一步提供一种金融终端的内存分配装置。
参阅图16,图16为本发明金融终端的内存分配装置第四实施例的功能模块示意图。
所述金融终端的内存包括快速切入口,所述快速切入口设置在所述金融终端的内存中一连续空闲空间的开始位置,所述金融终端的内存分配装置包括:
第二接收模块210,用于接收外部设备发送的内存申请指令;
第四判断模块220,用于判断位于所述内存中包括所述快速切入口所在的连续空闲空间是否满足所述内存申请的需求;
第二分配模230,用于若所述快速切入口所在的连续空闲空间满足所述内存申请的需求,则将所述快速切入口所在的连续空闲空间进行分配,并将所述快速切入口调整到下一连续空闲空间的开始位置。
继续参阅图16,所述金融终端的内存还包括占用空间,所述占用空间和连续空闲空间包括预设节点空间,所述连续空闲空间还包括分配空间,所述节点空间包括下一空间开始位置的地址、空间状态和上一空间开始位置的地址,
所述第四判断模块220还用于根据所述内存申请指令判断所述快速切入口所在的连续空闲空间中的分配空间是否满足所述内存申请的需求;
所述第二分配模块230还用于若所述快速切入口所在的连续空闲空间中的分配空间满足所述内存申请的需求,则根据所述内存申请指令分配所述快速切入口所在的连续空闲空间中的分配空间,并修改所述快速切入口所在的连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态;将所述快速切入口调整到下一连续空闲空间的预设节点空间的开始位置。
参阅图17,图17本发明金融终端的内存分配装置第五实施例的功能模块示意图。
基于为本发明金融终端的内存分配装置上述实施例,所述内存分配装置还包括:
第二查找模块240,用于若所述快速切入口所在的连续空闲空间中的分配空间不满足所述内存申请的需求,则通过所述快速切入口所在的连续空闲空间的预设节点空间中的下一空间开始位置的地址查找下一连续空闲空间;
所述第二分配模块230还用于若所述下一连续空闲空间中的分配空间满足所述内存申请需求,则执行步骤:根据所述内存申请指令分配所述连续空闲空间中的分配空间,并修改所述连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态;
所述第二查找模块240还用于若所述下一连续空闲空间中的分配空间不能满足所述内存申请需求,则继续查找下一连续空闲空间,直至查到查找到能够满足所述内存申请需求的连续空闲空间。
参阅图18,图18本发明金融终端的内存分配装置第六实施例的功能模块示意图。
基于上述实施例,所述金融终端的内存分配装置还包括:
第五判断模块250,用于判断被占用的内存空间的数据是否已经被使用;
第二释放模块260,用于若所述被占用的内存空间的数据已被使用,则释放被占用的内存空间。
具体地,所述第二释放模块260包括:
第二获取单元261,用于获取被占用的内存空间的指针;
第二映射单元262,用于对所述指针进行映射,获取所述占用空间中预设节点空间的开始位置的地址;
第二释放单元263,用于根据所述开始位置的地址,将所述占用空间的预设节点空间中的空间状态设置为空闲。
参阅图19,图19本发明金融终端的内存分配装置第七实施例的功能模块示意图。
基于上述实施例,为方便描述本实施例中将释放的占用空间定义为释放空间,所述金融终端的内存分配装置还包括:
第六判断模块270,用于判断与释放空间相邻的下一内存空间的预设节点空间中的空间状态是否为空闲;
第三合并模块280,用于若与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的分配空间、与所述释放空间相邻的下一内存空间的预设节点空间和与所述释放空间相邻的下一内存空间连接合并,并修改所述释放空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址;
第七判断模块290,用于判断与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态是否为空闲;
第四合并模块291,用于若与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的预设节点空间、与所述空闲空间相邻的上一内存空间的分配空间连接合并,并修改与所述空闲空间相邻的上一内存空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址。
本发明金融终端的内存分配装置中各个模块与上述方法实施例中各步骤相对应,各个的功能和实现过程在此处不再一一赘述。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (22)

1.一种金融终端的内存分配方法,其特征在于,所述金融终端的内存包括占用空间和连续空闲空间,所述占用空间和所述连续空闲空间分别包括预设节点空间,所述连续空闲空间还包括分配空间,所述节点空间包括下一空间开始位置的地址、空间状态和上一空间开始位置的地址,所述金融终端的内存分配方法包括以下步骤:
接收外部设备发送的内存申请指令;
根据所述内存申请指令和预设节点空间中的信息从所述内存中查找能够满足所述内存申请的需求的连续空闲空间;
若查找到分配空间能够满足所述内存申请需求的连续空闲空间,则根据所述内存申请指令分配所述连续空闲空间中对应的分配空间,并修改所述连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态;
所述金融终端的内存中设置有快速切入口,所述快速切入口设置在一连续空闲空间的开始位置,所述根据所述内存申请指令和预设节点空间中的信息从所述内存中查找能够满足所述内存申请的需求的连续空闲空间的步骤包括:
根据所述内存申请指令和预设节点空间中的信息从所述快速切入口所在的连续空闲空间开始查找能够满足所述内存申请需求的连续空闲空间;
若查找到分配空间能够满足所述内存申请需求的连续空闲空间,则根据所述内存申请指令分配所述连续空闲空间中对应的分配空间的步骤包括:
将所述快速切入口调整到下一连续空闲空间中预设节点空间的开始位置。
2.如权利要求1所述的内存分配方法,其特征在于,所述根据所述内存申请指令和预设节点空间中的信息从所述快速切入口所在的连续空闲空间开始查找能够满足所述内存申请需求的连续空闲空间的步骤包括:
判断所述快速切入口所在的连续空闲空间中的分配空间是否能够满足所述内存申请的需求;
若所述快速切入口所在的连续空闲空间中的分配空间不能满足所述内存申请需求,则根据节点空间包括下一空间开始位置的地址判断下一连续空闲空间是否能够满足所述内存申请的需求,直至查到查找到能够满足所述内存申请需求的连续空闲空间。
3.如权利要求1所述的内存分配方法,其特征在于,所述金融终端的内存分配方法还包括:
判断占用空间中的数据是否已经被使用;
若所述占用空间的中数据已被使用,则释放所述占用空间。
4.如权利要求3所述的内存分配方法,其特征在于,所述若所述占用空间中的数据已被使用,则释放所述占用空间的步骤包括:
获取数据已被使用的占用空间的指针;
对所述指针进行映射,获取所述占用空间中预设节点空间的开始位置的地址;
根据所述开始位置的地址,将所述占用空间的预设节点空间中的空间状态设置为空闲。
5.如权利要求4所述的内存分配方法,其特征在于,将释放的占用空间定义为释放空间,所述金融终端的内存分配方法还包括:
判断与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态是否为空闲;
若与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的分配空间、与所述释放空间相邻的下一内存空间的预设节点空间和与所述释放空间相邻的下一内存空间合并,并修改所述释放空间的预设节点空间中的下一空间开始位置的地址和空间状态和与所述释放空间相邻的下一空间中上一空间开始位置的地址;
判断与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态是否为空闲;
若与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的预设节点空间、分配空间,以及与所述释放空间相邻的上一内存空间的分配空间合并,并修改与所述释放空间相邻的上一内存空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址。
6.一种金融终端的内存分配方法,其特征在于,所述金融终端的内存包括快速切入口,所述快速切入口设置在所述金融终端的内存中一连续空闲空间的开始位置,所述金融终端的内存分配方法包括以下步骤:
接收外部设备发送的内存申请指令;
判断所述快速切入口所在的连续空闲空间是否满足所述内存申请的需求;
若所述快速切入口所在的连续空闲空间满足所述内存申请的需求,则将所述快速切入口所在的连续空闲空间进行分配,并在分配完成时,将所述快速切入口调整到下一连续空闲空间的开始位置。
7.如权利要求6所述的内存分配方法,其特征在于,所述金融终端的内存还包括占用空间,所述占用空间和连续空闲空间包括预设节点空间,所述连续空闲空间还包括分配空间,所述节点空间包括下一空间开始位置的地址、空间状态和上一空间开始位置的地址,所述判断所述快速切入口所在的连续空闲空间是否满足所述内存申请的需求的步骤包括:
根据所述内存申请指令判断所述快速切入口所在的连续空闲空间中的分配空间是否满足所述内存申请的需求;
若所述快速切入口所在的连续空闲空间满足所述内存申请的需求,则将所述快速切入口所在的连续空闲空间进行分配的步骤包括:
若所述快速切入口所在的连续空闲空间中的分配空间满足所述内存申请的需求,则根据所述内存申请指令分配所述快速切入口所在的连续空闲空间中的分配空间,并修改所述快速切入口所在的连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态;
将所述快速切入口调整到下一连续空闲空间的预设节点空间的开始位置。
8.如权利要求7所述的内存分配方法,其特征在于,所述根据所述内存申请指令判断所述快速切入口所在的连续空闲空间中的分配空间是否满足所述内存申请的需求的步骤之后还包括:
若所述快速切入口所在的连续空闲空间中的分配空间不满足所述内存申请的需求,则通过所述快速切入口所在的连续空闲空间的预设节点空间中的下一空间开始位置的地址查找下一连续空闲空间;
若所述下一连续空闲空间中的分配空间满足所述内存申请需求,则执行步骤:根据所述内存申请指令分配所述连续空闲空间中的分配空间,并修改所述连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态;
若所述下一连续空闲空间中的分配空间不能满足所述内存申请需求,则继续查找下一连续空闲空间,直至查到查找到能够满足所述内存申请需求的连续空闲空间。
9.如权利要求7所述的内存分配方法,其特征在于,所述金融终端的内存分配方法还包括:
判断占用空间中的数据是否已经被使用;
若所述占用空间中的数据已被使用,则释放所述占用空间。
10.如权利要求9所述的内存分配方法,其特征在于,所述若所述占用空间的数据已被使用,则释放所述占用空间的步骤包括:
获取占用空间的指针;
对所述指针进行映射,获取所述占用空间中预设节点空间的开始位置的地址;
根据所述开始位置的地址,将所述占用空间的预设节点空间中的空间状态设置为空闲。
11.如权利要求9所述的内存分配方法,其特征在于,将释放的占用空间定义为释放空间,所述金融终端的内存分配方法还包括:
判断与释放空间相邻的下一内存空间的预设节点空间中的空间状态是否为空闲;
若与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的分配空间、与所述释放空间相邻的下一内存空间的预设节点空间和与所述释放空间相邻的下一内存空间连接合并,并修改所述释放空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址;
判断与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态是否为空闲;
若与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的预设节点空间、分配空间,以及与所述空闲空间相邻的上一内存空间的分配空间连接合并,并修改与所述释放空间相邻的上一内存空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址。
12.一种金融终端的内存分配装置,其特征在于,所述金融终端的内存包括占用空间和连续空闲空间,所述占用空间和所述连续空闲空间分别包括预设节点空间,所述连续空闲空间还包括分配空间,所述节点空间包括下一空间开始位置的地址、空间状态和上一空间开始位置的地址,所述内存分配装置包括:
第一接收模块,用于接收外部设备发送的内存申请指令;
第一查找模块,用于根据所述内存申请指令和预设节点空间中的信息从所述内存中查找能够满足所述内存申请的需求的连续空闲空间;
第一分配模块,用于若查找到分配空间能够满足所述内存申请需求的连续空闲空间,则根据所述内存申请指令分配所述连续空闲空间中对应的分配空间,并修改所述连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态;
所述金融终端的内存中设置有快速切入口,所述快速切入口设置在一连续空闲空间的开始位置,所述第一查找模块还用于根据所述内存申请指令和预设节点空间中的信息从所述快速切入口所在的连续空闲空间开始查找能够满足所述内存申请需求的连续空闲空间;
所述第一分配模块还用于将所述快速切入口调整到下一连续空闲空间中预设节点空间的开始位置。
13.如权利要求12所述的内存分配装置,其特征在于,所述第一查找模块包括:
第一判断单元,用于判断所述快速切入口所在的连续空闲空间中的分配空间是否能够满足所述内存申请的需求;
第一查找单元,用于若所述快速切入口所在的连续空闲空间中的分配空间不能满足所述内存申请需求,则根据节点空间包括下一空间开始位置的地址判断下一连续空闲空间是否能够满足所述内存申请的需求,直至查到查找到能够满足所述内存申请需求的连续空闲空间。
14.如权利要求13所述的内存分配装置,其特征在于,所述内存分配装置还包括:
第一判断模块,用于判断占用空间中的数据是否已经被使用;
第一释放模块,用于若所述占用空间的中数据已被使用,则释放所述占用空间。
15.如权利要求14所述的内存分配装置,其特征在于,所述第一释放模块包括:
第一获取单元,用于获取数据已被使用的占用空间的指针;
第一映射单元,用于对所述指针进行映射,获取所述占用空间中预设节点空间的开始位置的地址;
第一释放单元,用于根据所述开始位置的地址,将所述占用空间的预设节点空间中的空间状态设置为空闲。
16.如权利要求15所述的内存分配装置,其特征在于,将释放的占用空间定义为释放空间,所述内存分配装置还包括:
第二判断模块,用于判断与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态是否为空闲;
第一合并模块,用于若与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的分配空间、与所述释放空间相邻的下一内存空间的预设节点空间和与所述释放空间相邻的下一内存空间合并,并修改所述释放空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址;
第三判断模块,用于判断与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态是否为空闲;
第二合并模块,用于若与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的预设节点空间、分配空间,以及与所述释放空间相邻的上一内存空间的分配空间合并,并修改与所述释放空间相邻的上一内存空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址。
17.一种金融终端的内存分配装置,其特征在于,所述金融终端的内存包括快速切入口,所述快速切入口设置在所述金融终端的内存中一连续空闲空间的开始位置,所述金融终端的内存分配装置包括:
第二接收模块,用于接收外部设备发送的内存申请指令;
第四判断模块,用于判断位于所述内存中包括所述快速切入口所在的连续空闲空间是否满足所述内存申请的需求;
第二分配模块,用于若所述快速切入口所在的连续空闲空间满足所述内存申请的需求,则将所述快速切入口所在的连续空闲空间进行分配,并将所述快速切入口调整到下一连续空闲空间的开始位置。
18.如权利要求17所述的内存分配装置,其特征在于,所述金融终端的内存还包括占用空间,所述占用空间和连续空闲空间包括预设节点空间,所述连续空闲空间还包括分配空间,所述节点空间包括下一空间开始位置的地址、空间状态和上一空间开始位置的地址,
所述第四判断模块还用于根据所述内存申请指令判断所述快速切入口所在的连续空闲空间中的分配空间是否满足所述内存申请的需求;
所述第二分配模块还用于若所述快速切入口所在的连续空闲空间中的分配空间满足所述内存申请的需求,则根据所述内存申请指令分配所述快速切入口所在的连续空闲空间中的分配空间,并修改所述快速切入口所在的连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态;将所述快速切入口调整到下一连续空闲空间的预设节点空间的开始位置。
19.如权利要求18所述的内存分配装置,其特征在于,所述内存分配装置还包括:
第二查找模块,用于若所述快速切入口所在的连续空闲空间中的分配空间不满足所述内存申请的需求,则通过所述快速切入口所在的连续空闲空间的预设节点空间中的下一空间开始位置的地址查找下一连续空闲空间;
所述第二分配模块还用于若所述下一连续空闲空间中的分配空间满足所述内存申请需求,则执行步骤:根据所述内存申请指令分配所述连续空闲空间中的分配空间,并修改所述连续空闲空间的预设节点空间中下一空间开始位置的地址和空间状态;
所述第二查找模块还用于若所述下一连续空闲空间中的分配空间不能满足所述内存申请需求,则继续查找下一连续空闲空间,直至查到查找到能够满足所述内存申请需求的连续空闲空间。
20.如权利要求19所述的内存分配装置,其特征在于,所述金融终端的内存分配装置还包括:
第五判断模块,用于判断被占用的内存空间的数据是否已经被使用;
第二释放模块,用于若所述被占用的内存空间的数据已被使用,则释放被占用的内存空间。
21.如权利要求20所述的内存分配装置,其特征在于,所述第二释放模块包括:
第二获取单元,用于获取被占用的内存空间的指针;
第二映射单元,用于对所述指针进行映射,获取所述占用空间中预设节点空间的开始位置的地址;
第二释放单元,用于根据所述开始位置的地址,将所述占用空间的预设节点空间中的空间状态设置为空闲。
22.如权利要求19所述的内存分配装置,其特征在于,将释放的占用空间定义为释放空间,所述金融终端的内存分配装置还包括:
第六判断模块,用于判断与释放空间相邻的下一内存空间的预设节点空间中的空间状态是否为空闲;
第三合并模块,用于若与所述释放空间相邻的下一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的分配空间、与所述释放空间相邻的下一内存空间的预设节点空间和与所述释放空间相邻的下一内存空间连接合并,并修改所述释放空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址;
第七判断模块,用于判断与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态是否为空闲;
第四合并模块,用于若与所述释放空间相邻的上一内存空间的预设节点空间中的空间状态为空闲,则将所述释放空间中的预设节点空间、分配空间,以及与所述空闲空间相邻的上一内存空间的分配空间连接合并,并修改与所述释放空间相邻的上一内存空间的预设节点空间中的下一空间开始位置的地址和与所述释放空间相邻的下一空间中上一空间开始位置的地址。
CN201610979402.XA 2016-11-04 2016-11-04 金融终端的内存分配方法及装置 Active CN106547625B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610979402.XA CN106547625B (zh) 2016-11-04 2016-11-04 金融终端的内存分配方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610979402.XA CN106547625B (zh) 2016-11-04 2016-11-04 金融终端的内存分配方法及装置

Publications (2)

Publication Number Publication Date
CN106547625A CN106547625A (zh) 2017-03-29
CN106547625B true CN106547625B (zh) 2021-01-12

Family

ID=58394624

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610979402.XA Active CN106547625B (zh) 2016-11-04 2016-11-04 金融终端的内存分配方法及装置

Country Status (1)

Country Link
CN (1) CN106547625B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019028682A1 (zh) 2017-08-08 2019-02-14 深圳前海达闼云端智能科技有限公司 一种多系统共享内存的管理方法及装置
CN111177025B (zh) * 2019-12-30 2022-05-17 深圳云天励飞技术股份有限公司 数据存储方法、装置及终端设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002017085A2 (en) * 2000-08-25 2002-02-28 Zucotto Wireless, Inc. Memory garbage collection method and apparatus
CN101221536A (zh) * 2008-01-25 2008-07-16 中兴通讯股份有限公司 嵌入式系统的内存管理方法及装置
CN101853209A (zh) * 2010-04-29 2010-10-06 中国人民解放军国防科学技术大学 无线传感器网络节点内存管理方法
CN104268093A (zh) * 2014-09-22 2015-01-07 可牛网络技术(北京)有限公司 内存分配方法及装置
CN105589809A (zh) * 2014-10-24 2016-05-18 中国科学院深圳先进技术研究院 一种内存管理方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100382048C (zh) * 2005-11-08 2008-04-16 中兴通讯股份有限公司 一种内存管理方法
US9015203B2 (en) * 2012-05-31 2015-04-21 Vmware, Inc. Balloon object feedback for Java Virtual Machines

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002017085A2 (en) * 2000-08-25 2002-02-28 Zucotto Wireless, Inc. Memory garbage collection method and apparatus
CN101221536A (zh) * 2008-01-25 2008-07-16 中兴通讯股份有限公司 嵌入式系统的内存管理方法及装置
CN101853209A (zh) * 2010-04-29 2010-10-06 中国人民解放军国防科学技术大学 无线传感器网络节点内存管理方法
CN104268093A (zh) * 2014-09-22 2015-01-07 可牛网络技术(北京)有限公司 内存分配方法及装置
CN105589809A (zh) * 2014-10-24 2016-05-18 中国科学院深圳先进技术研究院 一种内存管理方法及装置

Also Published As

Publication number Publication date
CN106547625A (zh) 2017-03-29

Similar Documents

Publication Publication Date Title
CN108132842B (zh) 一种嵌入式软件内存管理系统
US10152501B2 (en) Rollover strategies in a n-bit dictionary compressed column store
CN108038002B (zh) 一种嵌入式软件内存管理方法
JP5466210B2 (ja) 表検索装置、表検索方法、及び、表検索システム
CN107066498B (zh) 键值kv存储方法和装置
CN105791254B (zh) 网络请求处理方法、装置及终端
EP3958122A1 (en) Memory management method, apparatus, and system
CN107894922B (zh) Ram资源分配方法
CN106445835A (zh) 内存分配方法与装置
CN106547625B (zh) 金融终端的内存分配方法及装置
CN105786725A (zh) 基于异构混合内存的内存管理方法和系统
CN112840327A (zh) 一种片上系统、访问命令的路由方法及终端
CN107969153A (zh) 一种资源分配方法、装置及numa系统
CN106713250A (zh) 基于分布式系统的数据访问方法和装置
CN112685333A (zh) 一种堆内存管理方法及装置
CN110674052B (zh) 内存管理方法、服务器及可读存储介质
US11327939B2 (en) Method and device for indexing dirty data in storage system page
WO2014190700A1 (zh) 一种内存访问的方法、缓冲调度器和内存模块
EP1505490A1 (en) Method and computer system for accessing thread private data
CN111831451A (zh) 云主机内存分配方法及云主机、设备及存储介质
CN107632944B (zh) 一种读取数据的方法及装置
CN116560577A (zh) 一种标识处理方法、装置、电子设备及介质
CN116069689A (zh) 页表访问方法、系统、电子组件及页表配置方法
CN112947863B (zh) 一种飞腾服务器平台下存储空间合并成的方法
CN107453950B (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230104

Address after: 518000 Room 401 and 402, building 10, Shenzhen Software Park, Keji Zhonger Road, Nanshan District, Shenzhen, Guangdong Province

Patentee after: SHENZHEN ZHENGTONG KINGSEE TECH Co.,Ltd.

Address before: 518000 unit 3a, block 8, Nanyou Tian'an industrial village, Nanshan District, Shenzhen City, Guangdong Province

Patentee before: SHENZHEN ZHENGTONG ELECTRONICS Co.,Ltd.