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 证书的优先,而且学完这个知识体系,对我的能力提升确实有帮助,还是值得的。 一、为什么值得 这个证书就是基础知识,项目管…

LUA脚本改造redis分布式锁

在redis集群模式下,我们会启动多个tomcat实例,每个tomcat实例都有一个JVM,且不共享。而synchronize锁的作用范围仅仅是当前JVM,所以我们需要一个作用于集群下的锁,也就是分布式锁。(就是不能用JVM自带的锁了…

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

知识产权与标准化 知识产权与标准化(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…

STL Map的使用和性能issue

1、高效地访问 1)隐式插入问题 map初学者会直接用中括号访问,方便但是有代价:key不存在的时候还会隐式插入, 尤其对于LRU缓存设计,用这个就是灾难,会导致脏数据, 规避方案,cache的…

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

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

Redis-主从模式

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

SLAM:corners:Measuring Corner Properties-1999【方法解析-1】

paper:Measuring Corner Properties 目录 摘要1. 引言2. 测量属性2.1 对比度和夹角详细解析摘要 我们描述了测量灰度角点以下属性的方法:夹角、方向、对比度、钝度(或顶点的圆度)以及边界曲率(适用于尖点)。与大多数已发表的提取这些属性的方法不同,这些新方法相对简单…

docker安装phpMyAdmin

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

NodePort:固定端口

NodePort:固定端口 ## ************************************************** # 测试固定端口 # ## ************************************************* apiVersion: apps/v1 kind: Deployment metadata:name: kevin-fixed-portnamespace: default spec:# 副本数量#replicas: …

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…