FBMM: Making Memory Management Extensible With Filesystems——论文泛读

ATC 2024 Paper 论文阅读笔记整理

问题

CXL这样的新内存技术实现了多种内存配置,如分层内存、远内存和内存处理。为了支持这些新的硬件配置,需要对操作系统进行大量修改。例如,Meta的TPP内核补丁对NUMA和页面回收策略进行了更改,对22个内核文件进行更改以实现分层内存系统[33]。然而,Linux的内存管理(MM)子系统使得为新的内存硬件添加软件支持变得更加困难:它是单一的,功能分布在数十个文件中,其中许多文件需要对每个扩展进行修改。

相比之下,文件系统和存储可以通过VFS和块层进行扩展,通过标准化的驱动程序接口进行驱动程序扩展,通过协议进行网络连接。这些组件都可以作为独立组件实现,而无需修改核心内核代码。

挑战

随着内存系统多样性和异构性的增加,操作系统内存管理必须具有可扩展性,以应对需求的快速增长。包括以下四个目标:

  • 表达性:可扩展性接口必须允许表达各种各样的MM行为。

  • 透明度:未经修改的应用程序应该能够使用MM扩展。

  • 控制:高级应用程序需要为特定区域指定内存行为。

  • 非侵入性:实施不应要求对现有的MM代码进行大量更改。

本文方法

本文使用Linux虚拟文件系统(VFS)提供的内存管理回调来编写内存管理器,称为内存管理文件系统(MFS),而不是为内存管理器创建一个全新的可扩展接口。通过在MFS的装载目录中创建和映射文件来分配内存,并通过删除文件来释放内存,称为基于文件的内存管理(FBMM)。

  • 表达性:VFS层提供的回调函数允许MFS控制如何处理MM事件,如页面错误。

  • 透明度:在内核的内存管理系统中添加了一个小的填充层,通过创建内存支持的文件并将分配请求分配给特定文件,将mmap等MM系统调用透明地转换为文件操作。

  • 控制:基于文件系统实现,文件系统为不同的MM实现提供了一种方便的命名机制。应用程序可以在MFS的装载目录中手动创建和映射文件,以提供特定内存区域所需的功能。

  • 非侵入性:方法基于现有的VFS回调,只需要添加填隙层。

FBMM用于分层内存、连续分配和内存带宽分配,每个管理器包含500-1500行代码。使用FBMM是,MFS可以与内核分开编译,并在需要时动态加载。

开源代码:GitHub - multifacet/fbmm

实验测量了使用文件系统进行内存管理的开销,发现当分配单个页面时,开销小于8%,而当分配128个页面时,开销则小于0.1%。

总结

针对适应新内存硬件的内存管理系统,原始方法适应新硬件需要大量内核程序的修改。本文提出基于文件的内存管理(FBMM),使用Linux虚拟文件系统(VFS)提供的内存管理回调来编写内存管理器,将其独立为内存管理文件系统(MFS),通过在MFS的装载目录中创建和映射文件来分配内存,并通过删除文件来释放内存。通过拦截内存管理系统调用并转换为MFS中的文件系统操作,对应用程序透明。也支持应用程序在MFS的装载目录中手动创建和映射文件,以提供特定内存区域所需的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/877007.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PMP证书含金量高吗?值得考吗?

值啊,我考过了,PMP 是项目管理岗位的敲门砖,很多企业都写明了持有PMP 证书的优先,而且学完这个知识体系,对我的能力提升确实有帮助,还是值得的。 一、为什么值得 这个证书就是基础知识,项目管…

系统架构设计师 - 知识产权与标准化

知识产权与标准化 知识产权与标准化(3分)保护范围与对象 ★ ★ ★ ★法律法规 保护期限 ★ ★知识产权人确定 ★ ★ ★ ★侵权判断 ★ ★ ★ ★标准化(了解)★标准的分类标准的编号 大家好呀!我是小笙,本章…

数据库实验:数据库安全性

一、实验目的: 1、掌握SQL SERVER的身份验证方式。 2、掌握SQL SERVER的权限。 3、掌握给数据库的用户和角色赋予权限和从用户和角色收回权限。 4、掌握GRANT,REVOKE,DENY的用法。 二、实验内容: 1、将SQL SERVER服务器的安全…

爬虫-通过几个例子来说明并发以及多线程

并发 什么是并发?并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。 嗯,字认识&#…

滞回比较器工作原理,应用,TINA仿真

滞回比较器 滞回比较器的主要应用是增加滞回控制,让其对微小的变化不那么敏感,增强抗干扰能力,避免由噪声引起的不稳定状态,通常用于噪声环境下的阈值检测以及信号调理。根据不同需求,滞回比较器还可以设计成开漏极输出…

Redis的使用场景——热点数据缓存

热点数据缓存 Redis的使用场景——热点数据的缓存 1.1 什么是缓存 为了把一些经常访问的数据,放入缓存中以减少对数据库的访问效率,从而减少数据库的压力,提高程序的性能。【在内存中存储】 1.2 缓存的原理 查询缓存中是否存在对应的数据如…

[240728] Wikidata 介绍 | 微软与 Lumen 合作提升人工智能算力

目录 Wikidata 介绍微软与 Lumen 合作提升人工智能算力 Wikidata 介绍 中文: 文言: 粤语: 来源: https://www.wikidata.org/wiki/Wikidata:Introduction/zh 微软与 Lumen 合作提升人工智能算力 为了满足人工智能工作负载不断增长的需求&am…

从零开始写 Docker(十九)---增加 cgroup v2 支持

本文为从零开始写 Docker 系列第十九篇,添加对 cgroup v2 的支持。 完整代码见:https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实现有一个大致认识: 核心原理:深入理解 Docker 核心原理&#xff1a…

微软蓝屏”事件暴露了网络安全哪些问题?

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…

cadence SPB17.4 - allegro - 设置不同网络之间的距离规则

文章目录 cadence SPB17.4 - allegro - 设置不同网络之间的距离规则概述笔记END cadence SPB17.4 - allegro - 设置不同网络之间的距离规则 概述 插座进来的管脚,可能带来高压(有可能用户接错,或者出现浪涌,或者做ESD静电测试&a…

SpringBoot热部署重启关闭(DevTools)

一、DevTools依赖 1、DevTools简介 在Spring Boot项目中,spring-boot-devtools模块提供了多种开发时的便利功能,其中最显著的是restart和livereload特性,它们分别用于应用代码的热重启和前端资源的即时重载。 devtools依赖: &l…

如何在调整节拍时间的过程中保持生产流程的稳定性?

在快节奏的工业生产领域,节拍时间(Takt Time)——即完成一个完整产品所需的标准时间,是维持生产效率和流程稳定性的关键指标。然而,市场需求的波动、技术升级或是生产线的微调,都可能要求我们对节拍时间进行…

Redis-主从模式

目录 前言 一.主从节点介绍 二.配置redis主从结构 二.主从复制 四.拓扑结构 五.数据同步 全量复制(Full Sync Replication) 局部复制(Partial Replication) Redis的学习专栏:http://t.csdnimg.cn/a8cvV 前言 …

docker安装phpMyAdmin

直接安装phpMyAdmin需要有php环境,比较麻烦,总结了使用docker安装方法,并提供docker镜像。 1.docker镜像 见我上传的docker镜像:https://download.csdn.net/download/taotao_guiwang/89595177 2.安装 1).加载镜像 docker load …

AC/DC和DC/DC开关电源的传导和辐射原理

电磁干扰(EMI)始终是开关电源(AC/DC和DC/DC转换器)的潜在问题。如今的电源有很好的电磁发射和抗干扰的能力。但为了满足特定的应用要求,仍要有正确的滤波电路以确保满足标准的要求。 基于AC/DC和DC/DC电源模块的很佳EM…

CentOS7使用yum安装MySQL

废话不多说,直接上干货 1、CentOS7的yum源中默认是没有mysql的,我们先下载mysql的repo源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 2、安装mysql-community-release-el7-5.noarch.rpm包 sudo rpm -ivh mysql-community-r…

商城购物系统

下载在最后 技术栈: ssmmysqljsp 展示: 下载地址: CSDN现在上传有问题,有兴趣的朋友先收藏.正常了贴上下载地址 备注:

Hbase简介和快速入门

一 Hbase简介 1 HBase定义 Apache HBase™ 是以hdfs为数据存储的,一种分布式、可扩展的NoSQL数据库。 2 HBase数据模型 HBase的设计理念依据Google的BigTable论文,论文中对于数据模型的首句介绍。Bigtable 是一个稀疏的、分布式的、持久的多维排序map…

Idea常用快捷键:设置自动导包

Idea设置自动导包 【File】→【Setting】(或使用快捷键【Crlt Shift S】)打开Setting设置。点击【Editor】→【General】→【Auto Import】。勾选自定导包的选项,并确定,如下: Addunambiguousimportsonthefly:添加明确的导入 …

长上下文语言模型与RAPTOR 方法

在科技领域的前沿,长上下文语言模型(Long Context LLMs)和新兴检索方法如RAPTOR 正在引发广泛关注。本文将围绕这些技术展开讨论,并探讨它们在实际应用中的创新性和科技性。 长上下文语言模型的崛起 近几周来,随着新型…