应用协同的进程组内存管理支撑技术

应用协同的进程组内存管理支撑技术

陈鲍孜 吴庆波 谭郁松

云计算进行资源聚合的一种重要方式是将不同用户、不同特征的应用聚合起来进行混合部署、同时运行。相比之下,用户态应用的垃圾回收器对服务个体的内存管理针对性更好,而操作系统对整体内存资源分配能力更强。现有内核的机制仅能保证服务在全局内存或进程组内存使用达到上限时被动地进行垃圾回收。结合Linux内核中的进程控制组机制以及eventfd事件通知机制,设计实现了一个简单高效的应用协同分组内存管理的内核支撑机制。通过在内核中增加应用协同的内存管理机制,进一步增加了系统对应用自主管理内存的支撑能力。实验表明,新的机制没有给原有的操作系统带来明显的性能影响。

应用协同的进程组内存管理支撑技术

时间: 2024-08-01 02:42:53

应用协同的进程组内存管理支撑技术的相关文章

Linux下进程内存管理之malloc和sbrk

之前自己突发兴趣想写一下malloc函数,顺便了解一下进程的内存管理.在写的过程中发现其实malloc只不过是通过调用Linux下的sbrk函数来实现内存的分配,只是在sbrk之上加了一层对所分配的内存的管理罢了,而sbrk以及brk是实现从虚拟内存到内存的映射的.在实际动手写之前先来了解一下Linux下一个进程的内存空间分配. 进程内存空间分配 Linux下每个进程所分配的虚拟内存空间是3G,但实际使用过程中不可能也没有必要为一个进程分配如此大的空间,毕竟内存是很宝贵的资源.当一个进程执行的时

Linux内存管理原理【转】

转自:http://www.cnblogs.com/zhaoyl/p/3695517.html 本文以32位机器为准,串讲一些内存管理的知识点.   1. 虚拟地址.物理地址.逻辑地址.线性地址 虚拟地址又叫线性地址.linux没有采用分段机制,所以逻辑地址和虚拟地址(线性地址)(在用户态,内核态逻辑地址专指下文说的线性偏移前的地址)是一个概念.物理地址自不必提.内核的虚拟地址和物理地址,大部分只差一个线性偏移量.用户空间的虚拟地址和物理地址则采用了多级页表进行映射,但仍称之为线性地址. 2.

linux内存管理浅析

[地址映射](图:左中) linux内核使用页式内存管理,应用程序给出的内存地址是虚拟地址,它需要经过若干级页表一级一级的变换,才变成真正的物理地址. 想一下,地址映射还是一件很恐怖的事情.当访问一个由虚拟地址表示的内存空间时,需要先经过若干次的内存访问,得到每一级页表中用于转换的页表项(页表是存放在内存里面的),才能完成映射.也就是说,要实现一次内存访问,实际上内存被访问了N+1次(N=页表级数),并且还需要做N次加法运算. 所以,地址映射必须要有硬件支持,mmu(内存管理单元)就是这个硬件.

linux内存管理-内核用户空间 【转】

转自:http://blog.chinaunix.net/uid-25909619-id-4491362.html 1,linux内存管理中几个重要的结构体和数组 page unsigned long flags 一组标志,也对页框所在的管理区进行编号 atomic_t _count 该页被引用的次数 atomic_t _mapcount 页框中页表项数目,如果没有则为-1 struct list_head lru 管理page忙碌/空闲链表(inactive_list/active_list)

Delphi的内存管理

Delphi自动管理的内存 Delphi中原子变量,如Integer.Boolean.Record.枚举等都是在作用域内编译器自动申请内存,出了作用域自动释放:另外,字符串.Variant.动态数组.接口也是由Delphi自动管理. 这些变量都是在栈中存储的,除了接口.另外,Variant是程序员用函数手工创建的,例如VarArrayCreate:动态数组也是程序员用函数手工创建的,例如SetLength,但这两种情况都不需要程序员自己释放. 另外,还有一种变量需要注意,是使用Threadvar

c++内存管理学习纲要

本系列文章,主要是学习c++内存管理这一块的学习笔记. 时间:6.7-21 之下以技术内幕的开头语,带入到学习C++内存管理的技术中吧: 内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,因此要想成为C++高手,内存管理一关是必须要过的! 笔记汇总: 1.C++内存管理学习笔记(1) 2.C++内存管理学习笔记(2) 3.C++内存管理学习笔记(3) 4.C++内存管理学习笔记(4) 5.C++内存管理学习笔记(5) 6.C++内存管理学习笔记(6) 7.C++内存管理学习笔记(7

Linux内核设计与实现笔记(二) 内存管理、进程地址空间

内存管理 1.页   物理页作为内存管理的基本单位.内存管理单元通常以页为单位进行处理. 通过结构体page来表示系统中的每个物理页. 2.区 由于页位于内存中特定的物理地址上,所以不能将其用于一些特定的任务,故内核把页划分为不同的区. 硬件在内存寻址方面的问题: 一些硬件只能通过内存地址来执行直接内存访问(DMA) 一些体系结构其内存的物理寻址范围大于虚拟寻址范围,故,内存不能永久地映射到内核空间 解决方法,通过创建三种不同的分区: ZONE_DMA--专门执行DMA ZONE_NORMAL-

打造支撑海量用户高性能server的内存管理

以此系列文章纪念因 QQ 空间.QQ 农场等http://www.aliyun.com/zixun/aggregation/4580.html">互联网业务爆炸式增长,而日夜 不眠地为公共组件做架构调整.性能优化的激情岁月. 以 QQ 农场.好友买卖为代表的 SNS 网页游戏的突然兴起,全国男女老少一 起日夜不眠的在电脑面前奋战,鼠标.键盘还有各路外挂汇成的请求像洪水一般 涌来.当流量把机房核心交换机冲得七零八落,当我们把市场上的服务器全部买 光都不够时,我终于懂了,这就是 TMD 的所谓

Windows 8 动手实验教程 实验5:进程生命周期管理

动手实验 实验5:进程生命周期管理 2012年9月 简介 进程生命周期管理对构建Windows应用商店应用的开发者来说是需要理解的最重要的概念之一.不同于传统的Windows应用(它们即使在后台仍然继续执行),Windows应用商店应用仅在前台时执行.通常不可见的应用程序被操作系统挂起并且不能被执行直到操作系统将它恢复到前台. 当应用程序被挂起,它仍然在内存中,同时它的所有线程被挂起.只要进程仍然在内存中,当应用程序回到前台时,它将从停止的地方继续执行.要做到这一点开发者不需要做任何工作.然而您