CN100412800C - 一种用于管理网络服务器内存的方法 - Google Patents
一种用于管理网络服务器内存的方法 Download PDFInfo
- Publication number
- CN100412800C CN100412800C CNB2004100918857A CN200410091885A CN100412800C CN 100412800 C CN100412800 C CN 100412800C CN B2004100918857 A CNB2004100918857 A CN B2004100918857A CN 200410091885 A CN200410091885 A CN 200410091885A CN 100412800 C CN100412800 C CN 100412800C
- Authority
- CN
- China
- Prior art keywords
- service module
- letter formula
- data structure
- network service
- link
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明揭露了一种用于管理网络服务器内存的方法,该方法包括下列步骤:将链结库私有区从运行网络服务模块时需求的网络服务器内存空间中切割出去;提供一函式服务模块代替网络服务模块链结执行该链结库。内存需求由网络服务模块及函式服务模块的执行个体数目决定,而函式服务模块的执行个体数目可由程序设计师控制。本发明还揭露了一种用于管理网络服务器内存的系统。由于网络服务模块与函式服务模块使用独立的执行内存空间,从而网络服务模块可减少因为运行链结库L所带来的内存负担,从而增加连线客户端数目。
Description
【技术领域】
本发明是关于一种用于管理网络服务器内存的系统及方法。
【背景技术】
多任务的操作系统如Linux,Windows都会提供软件链结库的链结机制,使得软件设计可以模块化,从而提高软件的可利用性并减少重复的程序内存,例如Windows的动态链结库(Dynamic Link Library,DLL)档案即是一实例。目前大部分软件设计中,程序设计师不仅使用非自行开发的软件链结库,还会将同类型的软件功能集合成一链结库,以供程序链结执行。
如图1所示,是传统上用于管理网络服务器内存的系统架构图,包括一中央处理单元、一外存储器及一内存。该外存储器包括一链结库L。该内存包括一网络服务模块区,该网络服务模块区用于提供运行网络服务模块时需求的内存空间。该网络服务模块区包括一网络服务模块程序码区及一链结库L私有区块,该网络服务模块程序码区用于提供运行网络服务模块时需求的程序代码空间,该链结库L私有区块用于提供执行链结库L中函式R时需求的数据空间。执行同一网络服务模块会产生多个执行个体,网络服务器常采用的软件实作方式是为每一连线客户端提供一执行个体进行服务。因着不同的需要,有些链结库L必须使用一定的内存才能够被链结执行。当程序设计师将上述链结库L整合于一网络服务模块中时,网络服务器会因为无法负担链结库L的大量存储器需求而限制网络服务模块的执行个体数目,即服务连线客户端的数目。例如一网络服务器有100个连线客户端,需要100个网络服务模块服务每一连线客户端,则内存需求为100个网络服务模块区及100个链结库L私有区块占用的内存空间。如果设定一个网络服务模块占用400KB内存空间,一个链结库L私有区块占用400KB内存空间,则内存需求为(100*400+100*400)KB。
为了解决上述问题,需要提供一种用于管理网络服务器内存的系统及方法,以减少连线客户端对网络服务器内存的需求,从而增加连线客户端数目。
【发明内容】
本发明的目的在于提供一种用于管理网络服务器内存的系统及方法,以减少连线客户端对网络服务器内存的需求,从而增加连线客户端数目。
为达到上述目的,本发明提供一种用于管理网络服务器内存的系统。该系统包括一网络服务器,该网络服务器包括一外存储器。该外存储器包括一链结库L,该链结库L可为一动态链结库,其包括多个函式。该网络服务器还包括一网络服务模块、一管理模块、一函式服务模块及链结库私有区。该网络服务模块用于与客户端连线,接收客户端发送的命令信号,根据该命令信号将待执行函式的相关参数填入一数据结构,并将该数据结构送入一队列。该管理模块用于将该队列中的数据结构分配给该函式服务模块,并将函式服务模块执行结果回传给该网络服务模块该函式服务模块根据数据结构中的参数链结执行该链结库L中相应函式,并将执行结果写回该数据结构。该链结库L包括多个函式,该多个函式提供给该函式服务模块链结执行。该链结库私有区与运行所述网络服务模块时需求的网络服务器内存空间分离,用于提供执行链结库中多个函式时需求的数据空间。
本发明还提供一种用于管理网络服务器内存的方法,包括下列步骤:将链结库私有区从网络服务模块时需求的网络服务器内存空间中分割出。提供一内存,其中该内存包括:一数据结构,存储有待执行函式的输入及输出参数;一队列,存储有多个数据结构;一网络服务模块程序码区,提供运行一网络服务模块时所需程序代码的内存;一管理模块程序代码区,提供执行一管理模块时所需程序代码的内存;及一函式服务模块区,包括:一函式服务模块程序码区,提供运行一函式服务模块时所需的程序代码内存空间;一链结库私有区,提供执行链结库中多个函式时所需的数据存储器空间。该网络服务模块将待执行函式的输入及输出参数填入一数据结构中。然后将该数据结构送入一队列。该函式服务模块初始化该链结库。该函式服务模块等待该队列中的数据结构并从该队列中取出一数据结构。然后通过该数据结构中的输入参数链结执行该链结库中的相应函式。将该函式的执行结果写回该数据结构。该网络服务模块将数据结构内的执行结果回复给相应客户端。
本发明将链结库L私有区从网络服务模块中切割出,网络服务模块的所有执行个体链结执行链结库L的功能,由多个函式服务模块的执行个体依序代为执行。内存需求仅为网络服务模块区及函式服务模块区的执行个体数目,而函式服务模块的执行个体数目可由程序设计师进行控制(例如4个)。由于网络服务模块与函式服务模块使用独立的执行内存空间,从而网络服务模块可以减少因为运行链结库L所带来的内存负担,从而增加连线客户端数目。尤其当连线客户端数目较大时,连线客户端对网络服务器内存的需求可以减少近一半。
【附图说明】
图1是传统上用于管理网络服务器内存的系统架构图。
图2是本发明的用于管理网络服务器内存的系统模块图。
图3是本发明的用于管理网络服务器内存的模块关联图。
图4是本发明的网络服务器运行时内存的分区示意图。
图5是本发明的网络服务器与客户端进行交互的流程图。
图6是本发明的网络服务模块的执行流程图。
图7是本发明的函式服务模块的执行流程图。
【具体实施方式】
下面先对本实施方式中涉及的术语进行解释。函式是一小段执行码,有一进入点,需要使用堆栈进行呼叫。程序是一完整的应用程序执行码,如文本编辑程序及FTP服务程序。执行个体是一程序被加载到内存中,开始运作后的一执行单元,一程序可有多个执行个体,如编辑程序可被打开很多个同时执行。链结库L是将多个函式存储于同一存储区域,供程序链结使用。动态链结库是程序执行时不会加载链结库,当需要执行其中的函式时才加载,然后链结执行其中的函式。链结库私有区是加载链结库L时需要为的配置的数据空间(非程序代码空间)。程序代码区是加载一程序或一链结库L所需的内存空间,高级操作系统会让所有程序共享同一程序代码区。数据处理区是程序或函式执行时所需的内存空间,每一执行个体需要一数据处理区。链结库私有区是链结库L需要的数据处理区,用于提供链结执行函式R时产生的参数及数据的暂存区。下面参照附图对本发明进行说明。
如图2及图3所示,多个客户端10通过一网络11与一网络服务器12电连接。网络11可为一国际互联网(Internet)、一企业内部网络(Intranet)及一局域网络(Local Area Network)。网络服务器12包括一网络服务模块120、一管理模块121、一函式服务模块122及一链结库L。该链结库L可为一动态链结库,其包括多个可被函式服务模块链结执行的函式R。该网络服务模块120用于与客户端连线,接收客户端发送的命令信号,根据该命令信号将待执行函式R的相关参数填入一数据结构S,并将该数据结构S送入一队列Q。该管理模块121用于将该队列Q中的数据结构分配给该函式服务模块122,并将函式服务模块122执行结果回传给该网络服务模块120。该函式服务模块122根据数据结构S中的参数链结执行该链结库L中相应函式R,并将执行结果写回该数据结构S。该网络服务模块120将数据结构S中的执行结果回复给客户端。其中,执行该网络服务模块120时会产生多个执行个体P,每一执行个体P服务一连线客户端。执行该函式服务模块122时会产生多个执行个体D,该多个执行个体D依序服务该多个执行个体P,链结执行链结库L中的函式R。
如图4所示,是本发明的网络服务器运行时内存的分区示意图。该用于管理网络服务器内存的系统包括一中央处理单元20、一外存储器21及一内存22。该外存储器21包括一链结库L。该内存22包括一网络服务模块程序码区24、一管理模块程序代码区25及多个函式服务模块区26,该函式服务模块区26包括一函式服务模块程序码区27及多个链结库私有区28。该网络服务模块程序码区24用于提供运行网络服务模块120时所需的程序代码空间。该管理模块程序代码区25用于提供执行管理模块时所需的程序代码空间。该函式服务模块区26用于提供执行该管理模块时所需的内存空间。该函式服务模块程序码区27用于提供运行函式服务模块时需求的程序代码空间。该链结库L私有区块28用于提供执行链结库L中函式R时需求的数据空间,该链结库L可为一动态链结库,其包括多个函式R,该多个函式R提供给该函式服务模块122链结执行。例如一网络服务器有100个连线客户端,需要100个网络服务模块服务每一连线客户端,则内存需求仅为100个网络服务模块区、1个管理模块程序代码区、1个函式服务模块程序码区及若干个链结库私有区(例如4个)所需的内存空间。如果设定一个网络服务模块占用400KB内存空间,一个管理模块占用400KB内存空间,一个函式服务模块占用400KB内存空间,一个链结库L私有区块占用400KB内存空间,函式服务模块数目为4,则传统的内存需求为(100*400+100*400)KB,而本发明的内存需求为(100*400+1*400+4*400+4*400)KB。由此可见,当连线客户端数目较大时,采用本发明的用于管理网络服务器内存的方法,连线客户端对网络服务器内存的需求可减少近一半。
如图5所示,是本发明的网络服务器12与客户端10进行交互的流程图。网络服务器12与客户端10进行连线(步骤S30)。当网络服务器12与客户断10连线成功后,接收客户端10发送的命令信号(步骤S31)。网络服务器12判断该命令信号是否为一结束命令信号(步骤S32)。如果该命令信号是一结束命令信号,则网络服务器12与客户端10断开连线,流程结束;如果该命令信号不是一结束命令信号,网络服务器12通过该命令信号判断是否需要执行链结库L中的函式R(步骤S33)。如果网络服务器12需要执行链结库L中的函式R,网络服务器12执行链结库L中的函式R(步骤S34);如果网络服务器12不需要执行链结库L中的函式R,网络服务器12通过该命令信号执行其它函式以服务客户端10(步骤S35)。网络服务器12发送执行结果给客户端10(步骤S36)。接着判断网络服务器是否需要等待下一命令信号(步骤S37)。如果网络服务器需要等待下一命令信号,流程转到步骤S31;网络服务器不需要等待下一命令信号,流程结束。
如图6所示,是本发明的网络服务模块120的执行流程图。当网络服务器12通过上述命令信号判断需要执行链结库L中函式R后,网络服务器12初始化一网络服务模块120(步骤S40)。网络服务模块120将待执行的函式R的相关参数填入一数据结构S,该相关参数包括输入参数及输出参数(步骤S41)。网络服务模块120将该数据结构S送入一队列Q,并将该多个数据结构S进行线性排列,该队列Q用于存储多个数据结构S(步骤S42)。管理模块121将队列Q中的数据结构S分配给函式服务模块122执行(步骤S43)。函式服务模块122根据数据结构S中的参数链结执行链结库L中相应函式R,并将执行结果写回该数据结构S(步骤S44)。网络服务模块120将数据结构S内的执行结果回复给客户端10(步骤S45)。接着判断网络服务模块120是否执行完毕(步骤S46)。如果网络服务模块120未执行完毕,流程返回到步骤S41;如果网络服务模块120执行完毕,则流程结束。
如图7所示,是本发明的函式服务模块122的执行流程图。网络服务器12初始化函式服务模块120并加载链结库L(步骤S50)。函式服务模块122初始化链结库L(步骤S51)。函式服务模块122等待队列Q中的数据结构S(步骤S52)。判断队列Q中是否有数据结构S(步骤S53)。如果队列Q中没有数据结构S,流程返回步骤S52;如果队列Q中有数据结构S,函式服务模块122将一数据结构S由队列Q中取出(步骤S54)。函式服务模块通过该数据结构S中的输入参数链结执行相应函式R(步骤S55)。函式服务模块122将该函式R的执行结果写回相应数据结构S(步骤S56)。函式服务模块122激活网络服务模块并将上述执行结果发送给网络服务模块120(步骤S57)。接着判断函式服务模块122是否执行完毕(步骤S58)。如果函式服务模块122没有执行完毕,流程返回步骤S52;如果函式服务模块122执行完毕,则流程结束。
Claims (9)
1. 一种用于管理网络服务器内存的方法,该网络服务器与多个客户端连线,其特征在于,包括下列步骤:
将链结库私有区从运行网络服务模块时需求的网络服务器内存空间中分割出去;
提供一内存包括:
一数据结构,存储有待执行函式的输入及输出参数;
一队列,存储有多个数据结构;
一网络服务模块程序码区,提供运行一网络服务模块时所需程序代码的内存;
一管理模块程序代码区,提供执行一管理模块时所需程序代码的内存;及
一函式服务模块区,包括:
一函式服务模块程序码区,提供运行一函式服务模块时所需的程序代码内存空间;
一链结库私有区,提供执行链结库中多个函式时所需的数据存储器空间;
该网络服务模块接收该多个连线客户端的命令信号;
通过该命令信号将待执行函式的输入及输出参数填入一数据结构中;
将该数据结构送入上述队列;
该函式服务模块等待该队列中的数据结构并从该队列中取出一数据结构;
通过该数据结构中的输入参数链结执行上述链结库中的相应函式;
将该函式的执行结果写回该数据结构;及
该网络服务模块将该数据结构内的执行结果回复给相应连线客户端。
2. 如权利要求1所述的一种用于管理网络服务器内存的方法,其特征在于,还包括判断该队列中是否有数据结构的步骤,如果该队列中有数据结构,则该函式服务模块从该队列中取出一数据结构,如果该队列中没有数据结构,该函式服务模块继续等待。
3. 如权利要求1所述的一种用于管理网络服务器内存的方法,其特征在于,还包括步骤:在运行网络服务模块前,还包括初始化网络服务模块的步骤。
4. 如权利要求1所述的一种用于管理网络服务器内存的方法,其特征在于:在运行函式服务模块前,还包括初始化该函式服务模块的步骤。
5. 如权利要求1所述的一种用于管理网络服务器内存的方法,其特征在于:在初始化该链结库前,还包括加载并初始化该链结库的步骤。
6. 如权利要求1所述的一种用于管理网络服务器内存的方法,其特征在于,运行网络服务模块可产生多个执行个体,每一执行个体服务一连线客户端。
7. 如权利要求1所述的一种用于管理网络服务器内存的方法,其特征在于,运行函式服务模块可产生多个执行个体,该多个执行个体依序服务该多个网络服务模块。
8. 如权利要求1所述的一种用于管理网络服务器内存的方法,其特征在于,网络服务模块与函式服务模块分别使用独立的执行内存空间。
9. 如权利要求1所述的一种用于管理网络服务器内存的方法,其特征在于,还包括步骤:如果该队列中没有数据结构,流程结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100918857A CN100412800C (zh) | 2004-12-25 | 2004-12-25 | 一种用于管理网络服务器内存的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100918857A CN100412800C (zh) | 2004-12-25 | 2004-12-25 | 一种用于管理网络服务器内存的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1797353A CN1797353A (zh) | 2006-07-05 |
CN100412800C true CN100412800C (zh) | 2008-08-20 |
Family
ID=36818395
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100918857A Expired - Fee Related CN100412800C (zh) | 2004-12-25 | 2004-12-25 | 一种用于管理网络服务器内存的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100412800C (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1489334A (zh) * | 2002-10-11 | 2004-04-14 | 深圳市中兴通讯股份有限公司 | 一种静态动态结合的存储区管理的方法 |
CN1509434A (zh) * | 2000-08-07 | 2004-06-30 | 国际商业机器公司 | 调用存储过程和访问存储的过程数据的方法、系统以及程序 |
CN1542623A (zh) * | 2003-04-29 | 2004-11-03 | 华为技术有限公司 | 一种实现内存管理的方法 |
-
2004
- 2004-12-25 CN CNB2004100918857A patent/CN100412800C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1509434A (zh) * | 2000-08-07 | 2004-06-30 | 国际商业机器公司 | 调用存储过程和访问存储的过程数据的方法、系统以及程序 |
CN1489334A (zh) * | 2002-10-11 | 2004-04-14 | 深圳市中兴通讯股份有限公司 | 一种静态动态结合的存储区管理的方法 |
CN1542623A (zh) * | 2003-04-29 | 2004-11-03 | 华为技术有限公司 | 一种实现内存管理的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1797353A (zh) | 2006-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112491606B (zh) | 一种基于ansible的自动化部署业务系统高可用集群的方法 | |
CN100545851C (zh) | 使用命令行环境的远程系统管理 | |
US8151277B2 (en) | Method and system for dynamic remote injection of in-process agents into virtual machine based applications | |
US5966072A (en) | Executing computations expressed as graphs | |
CN112822272B (zh) | 微服务灰度发布方法及装置、计算机设备及存储介质 | |
US20030105847A1 (en) | System and method for server managed modification of operating system data stored within a network device | |
CN109358971B (zh) | 动态网络环境中快速且负载均衡的服务功能链部署方法 | |
CN105630488A (zh) | 一种基于docker容器技术的持续集成实现方法 | |
CN1132437C (zh) | 用于在通信系统中生成业务的系统及方法 | |
CN101155190B (zh) | 客户端与数据服务器间通信方法、网络及数据转换方法 | |
CN101387953A (zh) | 协同软件开发系统及方法 | |
US20020199171A1 (en) | Generic Java rule engine framework | |
US5524257A (en) | Method of parallel processing for inference and a system therefor | |
CN112882726B (zh) | 基于Hadoop和Docker的环境系统的部署方法 | |
CN111125003A (zh) | 一种容器镜像轻量化及快速分发方法 | |
CN101877655A (zh) | 网络管理系统、网管服务器和方法 | |
CN109471776A (zh) | 一种基于以太网的VxWorks操作系统日志收集方法 | |
CN102141911B (zh) | 利用uml时序图开发的方法和活动图生成工具 | |
CN100412800C (zh) | 一种用于管理网络服务器内存的方法 | |
CN101751626B (zh) | 组合服务演化中运行实例的在线迁移方法 | |
CN101470611A (zh) | 支持远程开机的网络卡及其方法 | |
CN114143373B (zh) | 基于bpmn规范的能力编排引擎优化系统及方法 | |
CN115718603A (zh) | 一种Python模型分布式在线部署方法及系统 | |
CN112988126A (zh) | Cdn业务定制方法及系统 | |
US20040111487A1 (en) | Apparatus and method for analyzing remote data |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080820 Termination date: 20131225 |