CN108958926A - 一种基于达尔文流媒体服务器的虚拟内存池设计方法 - Google Patents

一种基于达尔文流媒体服务器的虚拟内存池设计方法 Download PDF

Info

Publication number
CN108958926A
CN108958926A CN201810519215.2A CN201810519215A CN108958926A CN 108958926 A CN108958926 A CN 108958926A CN 201810519215 A CN201810519215 A CN 201810519215A CN 108958926 A CN108958926 A CN 108958926A
Authority
CN
China
Prior art keywords
virtual memory
memory
darwin
function
streaming media
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
Application number
CN201810519215.2A
Other languages
English (en)
Other versions
CN108958926B (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.)
Xiamen Municipal Smart City Technology Co.,Ltd.
Original Assignee
Xiamen Pujie Mdt Infotech 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 Xiamen Pujie Mdt Infotech Ltd filed Critical Xiamen Pujie Mdt Infotech Ltd
Priority to CN201810519215.2A priority Critical patent/CN108958926B/zh
Publication of CN108958926A publication Critical patent/CN108958926A/zh
Application granted granted Critical
Publication of CN108958926B publication Critical patent/CN108958926B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开的一种基于达尔文流媒体服务器的虚拟内存池设计方法,包括S100、基于达尔文流媒体服务器原有插件设计方法设计虚拟内存模块插件框架:增加开辟虚拟内存角色、设置虚拟内存保护属性角色;S200、设计与新增加的插件角色相对应的功能函数,包括:设计开辟虚拟内存函数、获取可用虚拟内存块功能函数、重置虚拟内存块功能函数和虚拟内存池保护属性功能函数;S300、将前述共享虚拟内存池插件中的角色根据达尔文流媒体服务器插件规则设计成应用程序接口。该方法解决原有达尔文流媒体服务器只能用堆内存方式使用管理的小型数据对象,而无法对大型数据对象使用和管理的问题。

Description

一种基于达尔文流媒体服务器的虚拟内存池设计方法
技术领域
本发明涉及一种基于达尔文流媒体服务器的虚拟内存池设计方法。
背景技术
1、现有达尔文流媒体服务器数据系统以及内存组件均使用堆内存的方式,而堆内存是适合用来管理大量的小型数据对象。
2、在商用达尔文流媒体服务器上,因原有达尔文流媒体服务器没有提供转换码流的功能导致无法提供给不同类型客户端使用,因此在对原有达尔文流媒体服务器二次开发增加转换码流功能的时候,原有堆内存的使用方式无法满足转换码流过程中对大型数据对象的内存使用。
3、在大型商用服务器上,堆内存的使用方式会产生大量的内存碎片以及难以预期的系统内分页交换,从而导致服务器性能发生指数级降低而原因很难排查。
4、实际使用上,堆内存的使用方式对专用的硬件服务器内存使用效率太低,现有专用的服务器硬件物理内存均配置在128G以及以上,完全可以开辟大量的物理上的连续内存空间提供给服务器程序共享。
发明内容
本发明的目的在于提供一种基于达尔文流媒体服务器的虚拟内存池设计方法,以解决原有达尔文流媒体服务器只能用堆内存方式使用管理的小型数据对象,而无法对大型数据对象使用和管理的问题。
为达成上述技术目的,本发明的技术方案如下:
一种基于达尔文流媒体服务器的虚拟内存池设计方法,包括以下步骤:
S100、基于达尔文流媒体服务器原有插件设计方法设计虚拟内存模块插件框架:
增加开辟虚拟内存角色,获得可用虚拟内存块角色后,重置虚拟内存块角色,设置虚拟内存保护属性角色,对应新增加的虚拟内存角色设计开辟虚拟内存函数接口,获得可用虚拟内存块函数接口后,重置虚拟内存块函数接口,再设置虚拟内存保护属性函数接口;
S200、设计与新增加的插件角色相对应的功能函数,包括:
S201、设计开辟虚拟内存函数;
S202、设计获取可用虚拟内存块功能函数;
S203、设计重置虚拟内存块功能函数;
S204、设计虚拟内存池保护属性功能函数;
S300、将前述共享虚拟内存池插件中的角色根据达尔文流媒体服务器插件规则设计成应用程序接口,其他第三方插件需要用到大型内存或者频繁操作小内存的情况下,首先根据调用插件的需求开辟相应的内存池,然后获取可用内存写入数据,在不需要保存内存中内容的情况下重置这块内存,在需要特殊保护属性的情况下对这块内存进行保护属性设置。
进一步,所述开辟虚拟内存函数的接口入参参数结构体,其结构体成员含:
指向空类型的指针,用于存放开辟成功的虚拟内存首地址,该成员参数在函数中被赋值;
指向空类型的指针,用于存放试图开辟虚拟内存的起始地址,该成员参数的值在函数外被赋值;
无符号整型的参数,用于存放虚拟内存数组的分配粒度即每个数组元素的尺寸大小,该数值应根据当前操作系统的页面大小属性计算获取;
动态数组数据结构,此结构为达尔文流媒体服务器原有数据结构。
进一步,所述获取可用虚拟内存块功能函数的入参参数结构体成员含:
空类型指针,由当前函数进行赋值,为当前可用的内存池中的内存块起始地址;
动态数组队列,该队列存放由开辟虚拟内存函数成功开辟出来的虚拟内存池队列;
32位无符号整型定义内存块分配粒度,用于表示当前试图获得的内存块尺寸大小。
进一步,所述重置虚拟内存块功能函数的入参参数结构体成员含:
空类型指针,该指针指向当前正在使用的,试图进行重置的内存块;
32位无符号整型定义内存块分配粒度,该参数为当前内存块分配粒度,即尺寸大小。
进一步,所述虚拟内存池保护属性功能函数的入参参数结构体成员函数为:
空类型指针,该指针指向准备设置保护属性的内存起始地址;
32位无符号整型定义可用保护属性类型,该类型表示需要设置的保护属性类型。
与现有技术相比,本发明的积极效果在于:
一、本发明提出的使用虚拟内存作为共享内存池方案解决了原有达尔文流媒体服务器只能用堆内存方式使用管理的小型数据对象的问题,通过本申请提供的设计方法可实现对大型数据对象的使用管理。
二、对大型数据对象使用的实现作为基础支持了在原有达尔文流媒体服务器上进行二次开发成为可能,例如转换码流的时候需要大量的内存空间,最终实现达尔文流媒体服务器能够提供不同类型码流给不同类型的客户端观看,使用。
三、本发明提出的使用虚拟内存作为共享内存池的方案比堆内存能够更好的控制物理内存和页面文件的交换,从而极大的稳定了服务器软件的运行性能。
四、在对物理内存的使用上,虚拟内存开辟的连续大块空间并且不会频繁的释放,对比使用堆内存的频繁开辟和释放导致的产生的大量内存碎片,本文提出的虚拟内存作为共享内存池方案极大优化了原有达尔文流媒体服务器软件在服务器硬件资源上的使用效率。
以下结合附图和具体实施例对本发明作进一步详述。
附图说明
图1为本发明基于达尔文流媒体服务器的虚拟内存池设计方法的流程图。
具体实施方式
如图1所示,本发明一种基于达尔文流媒体服务器的虚拟内存池设计方法,具体包括如下步骤:
S100、基于达尔文流媒体服务器原有插件设计方法设计虚拟内存模块插件框架:
增加开辟虚拟内存角色,获得可用虚拟内存块角色后,重置虚拟内存块角色,设置虚拟内存保护属性角色,对应新增加的虚拟内存角色设计开辟虚拟内存函数接口,获得可用虚拟内存块函数接口后,重置虚拟内存块函数接口,再设置虚拟内存保护属性函数接口;
S200、设计与新增加的插件角色(即上述虚拟内存角色和内存保护属性角色)相对应的功能函数,包括:
S201、设计开辟虚拟内存函数,该开辟虚拟内存函数的接口入参参数结构体,其结构体成员含:
指向空类型的指针,用于存放开辟成功的虚拟内存首地址,该成员参数在函数中被赋值;
指向空类型的指针,用于存放试图开辟虚拟内存的起始地址,该成员参数的值在函数外被赋值;
无符号整型的参数,用于存放虚拟内存数组的分配粒度即每个数组元素的尺寸大小,该数值应根据当前操作系统的页面大小属性计算获取;
动态数组数据结构,此结构为达尔文流媒体服务器原有数据结构;
上述开辟虚拟内存功能函数的主要作用在于根据入参传入的分配粒度首先预留虚拟内存然后提交虚拟内存成为实际物理内存,最后根据分配粒度划分整个虚拟内存段为内存块,将划分好的虚拟内存地址作为数组元素内容存放进动态数组队列。后续要使用的时候根据数组下标以及内存块使用标识进行索引。
S202、设计获取可用虚拟内存块功能函数,该获取可用虚拟内存块功能函数的入参参数结构体成员含:
空类型指针,由当前函数进行赋值,为当前可用的内存池中的内存块起始地址;
动态数组队列,该队列存放由开辟虚拟内存函数成功开辟出来的虚拟内存池队列;以及
32位无符号整型定义内存块分配粒度,用于表示当前试图获得的内存块尺寸大小。
上述获取可用虚拟内存块功能函数主要作用为根据传入的参数,通过检查当前内存池队列中是否具有还未被使用的并且已经提交到物理内存的内存块,将此内存块的起始地址赋值给入参结构体的第一个成员。
S203、设计重置虚拟内存块功能函数,该重置虚拟内存块功能函数的入参参数结构体成员含:
空类型指针,该指针指向当前正在使用的,试图进行重置的内存块;及
32位无符号整型定义内存块分配粒度,该参数为当前内存块分配粒度,即尺寸大小。
上述重置虚拟内存块功能函数主要对已经使用过的虚拟内存块进行重置,因为内存块中的内容在不需要长期保存的情况下对其进行重置可以防止这个内存块被操作系统内存管理规则交换进页面文件,下次要使用得重新从页面文件交换出来大大降低内存池使用的效率。
S204、设计虚拟内存池保护属性功能函数,该虚拟内存池保护属性功能函数的入参参数结构体成员函数为:
空类型指针,该指针指向准备设置保护属性的内存起始地址;及
32位无符号整型定义可用保护属性类型,该类型表示需要设置的保护属性类型。
上述虚拟内存池保护属性功能函数主要用来设置内存池中需要特殊保护属性的内存块。
S300、将前述共享虚拟内存池插件中的角色根据达尔文流媒体服务器插件规则设计成应用程序接口,其他第三方插件需要用到大型内存或者频繁操作小内存的情况下,首先根据调用插件的需求开辟相应的内存池,然后获取可用内存写入数据,在不需要保存内存中内容的情况下重置这块内存,在需要特殊保护属性的情况下对这块内存进行保护属性设置。

Claims (5)

1.一种基于达尔文流媒体服务器的虚拟内存池设计方法,其特征在于包括以下步骤:
S100、基于达尔文流媒体服务器原有插件设计方法设计虚拟内存模块插件框架:
增加开辟虚拟内存角色,获得可用虚拟内存块角色后,重置虚拟内存块角色,设置虚拟内存保护属性角色,对应新增加的虚拟内存角色设计开辟虚拟内存函数接口,获得可用虚拟内存块函数接口后,重置虚拟内存块函数接口,再设置虚拟内存保护属性函数接口;
S200、设计与新增加的插件角色相对应的功能函数,包括:
设计开辟虚拟内存函数、获取可用虚拟内存块功能函数、重置虚拟内存块功能函数和虚拟内存池保护属性功能函数;
S300、将前述共享虚拟内存池插件中的角色根据达尔文流媒体服务器插件规则设计成应用程序接口,其他第三方插件需要用到大型内存或者频繁操作小内存的情况下,首先根据调用插件的需求开辟相应的内存池,然后获取可用内存写入数据,在不需要保存内存中内容的情况下重置这块内存,在需要特殊保护属性的情况下对这块内存进行保护属性设置。
2.如权利要求1所述的一种基于达尔文流媒体服务器的虚拟内存池设计方法,其特征在于,所述开辟虚拟内存函数的接口入参参数结构体成员含:
指向空类型的指针,用于存放开辟成功的虚拟内存首地址,该成员参数在函数中被赋值;
指向空类型的指针,用于存放试图开辟虚拟内存的起始地址,该成员参数的值在函数外被赋值;
无符号整型的参数,用于存放虚拟内存数组的分配粒度即每个数组元素的尺寸大小,该数值应根据当前操作系统的页面大小属性计算获取;以及
动态数组数据结构,此结构为达尔文流媒体服务器原有数据结构。
3.如权利要求1所述的一种基于达尔文流媒体服务器的虚拟内存池设计方法,其特征在于,所述获取可用虚拟内存块功能函数的入参参数结构体成员含:
空类型指针,由当前函数进行赋值,为当前可用的内存池中的内存块起始地址;
动态数组队列,该队列存放由开辟虚拟内存函数成功开辟出来的虚拟内存池队列;以及
32位无符号整型定义内存块分配粒度,用于表示当前试图获得的内存块尺寸大小。
4.如权利要求1所述的一种基于达尔文流媒体服务器的虚拟内存池设计方法,其特征在于,所述重置虚拟内存块功能函数的入参参数结构体成员含:
空类型指针,该指针指向当前正在使用的,试图进行重置的内存块;及
32位无符号整型定义内存块分配粒度,该参数为当前内存块分配粒度,即尺寸大小。
5.如权利要求1所述的一种基于达尔文流媒体服务器的虚拟内存池设计方法,其特征在于,所述虚拟内存池保护属性功能函数的入参参数结构体成员函数为:
空类型指针,该指针指向准备设置保护属性的内存起始地址;及
32位无符号整型定义可用保护属性类型,该类型表示需要设置的保护属性类型。
CN201810519215.2A 2018-05-25 2018-05-25 一种基于达尔文流媒体服务器的虚拟内存池设计方法 Active CN108958926B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810519215.2A CN108958926B (zh) 2018-05-25 2018-05-25 一种基于达尔文流媒体服务器的虚拟内存池设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810519215.2A CN108958926B (zh) 2018-05-25 2018-05-25 一种基于达尔文流媒体服务器的虚拟内存池设计方法

Publications (2)

Publication Number Publication Date
CN108958926A true CN108958926A (zh) 2018-12-07
CN108958926B CN108958926B (zh) 2021-09-07

Family

ID=64492148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810519215.2A Active CN108958926B (zh) 2018-05-25 2018-05-25 一种基于达尔文流媒体服务器的虚拟内存池设计方法

Country Status (1)

Country Link
CN (1) CN108958926B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1430150A (zh) * 2001-12-29 2003-07-16 深圳市中兴通讯股份有限公司上海第二研究所 通信系统中分系统间的虚拟内存分配管理方法
US8977766B2 (en) * 2010-09-21 2015-03-10 Edgecast Networks, Inc. Scalability and redundancy enhancements for content streaming
CN105653980A (zh) * 2015-12-30 2016-06-08 福建联迪商用设备有限公司 一种虚拟内存数据的保护方法及其系统
CN106991010A (zh) * 2017-03-22 2017-07-28 武汉虹信通信技术有限责任公司 一种用于流媒体服务器的内存集中动态分配方法
CN107066281A (zh) * 2017-05-18 2017-08-18 厦门普杰信息科技有限公司 一种基于dss的高效数据系统设计方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1430150A (zh) * 2001-12-29 2003-07-16 深圳市中兴通讯股份有限公司上海第二研究所 通信系统中分系统间的虚拟内存分配管理方法
US8977766B2 (en) * 2010-09-21 2015-03-10 Edgecast Networks, Inc. Scalability and redundancy enhancements for content streaming
CN105653980A (zh) * 2015-12-30 2016-06-08 福建联迪商用设备有限公司 一种虚拟内存数据的保护方法及其系统
CN106991010A (zh) * 2017-03-22 2017-07-28 武汉虹信通信技术有限责任公司 一种用于流媒体服务器的内存集中动态分配方法
CN107066281A (zh) * 2017-05-18 2017-08-18 厦门普杰信息科技有限公司 一种基于dss的高效数据系统设计方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
K. DE VOGELEER, A. POPESCU, M. FIEDLER AND D. ERMAN: "Content dependency of the traffic control in the darwin streaming server", 《PROCEEDINGS OF THE 8TH EURO-NF CONFERENCE ON NEXT GENERATION INTERNET NGI 2012》 *
张伟,都志辉,李三立: "达尔文流媒体服务器用户认证扩展与应用", 《小型微型计算机系统》 *

Also Published As

Publication number Publication date
CN108958926B (zh) 2021-09-07

Similar Documents

Publication Publication Date Title
CN102156675B (zh) 一种内存分配方法及装置
CN103885812B (zh) 虚拟机规格调整方法及装置
CN102855193B (zh) 非易失性存储系统中未使用的逻辑地址的挂载时去映射
CN107220187B (zh) 一种缓存管理方法、装置及现场可编程门阵列
CN1445787A (zh) 大容量快速可电擦写可编程只读存储器系统中的数据处理方法
CN104077420A (zh) 一种数据导入HBase数据库的方法和装置
CN102566958B (zh) 一种基于sgdma的图像分割处理装置
CN103955389A (zh) 一种基于pcm的系统启动方法
CN103389945A (zh) 一种内存管理的方法及装置
CN102375893A (zh) 一种分布式文件系统及其建立副本的方法
CN108958926A (zh) 一种基于达尔文流媒体服务器的虚拟内存池设计方法
WO2024067741A1 (zh) 充电桩的智能充电方法、系统、电子设备及存储介质
CN112463046B (zh) 一种动态调整位图空间的方法、系统、终端及存储介质
CN106855845A (zh) 堆空间的内存分配管理系统及嵌入式芯片
CN103617008A (zh) 车载视频监控终端的双sd卡多媒体文件存储系统及方法
CN107678977A (zh) 一种计数器的读写方法及装置
CN108365283A (zh) 设备电池及无人机
CN101976224B (zh) 一种嵌入式系统的内存管理方法
US11409646B2 (en) Method for releasing memory
CN109684232B (zh) 一种嵌入式协议栈内存管理方法
CN104424142A (zh) 一种多核处理器系统中访问共享资源的方法与装置
CN200950255Y (zh) 大容量sim卡
CN112506698B (zh) 一种小文件数据重构恢复方法、系统、终端及存储介质
CN109343688A (zh) 一种ocp电流范围调节方法、装置、终端及存储介质
CN105117177B (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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 361006 4th floor, 281 Lianqian West Road, Siming District, Xiamen City, Fujian Province

Patentee after: Xiamen Municipal Smart City Technology Co.,Ltd.

Address before: 361006 4th floor, 281 Lianqian West Road, Siming District, Xiamen City, Fujian Province

Patentee before: XIAMEN PUJIE INFORMATION TECHNOLOGY CO.,LTD.

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 361000 13th floor, municipal building, No. 2777, Yunding Middle Road, Huli District, Xiamen City, Fujian Province

Patentee after: Xiamen Municipal Smart City Technology Co.,Ltd.

Address before: 361006 4th floor, 281 Lianqian West Road, Siming District, Xiamen City, Fujian Province

Patentee before: Xiamen Municipal Smart City Technology Co.,Ltd.