首页 > 系统相关 >linux内核:伙伴算法、slab算法、ptmalloc、tcmalloc使用场景

linux内核:伙伴算法、slab算法、ptmalloc、tcmalloc使用场景

时间:2023-10-17 15:15:59浏览次数:41  
标签:ptmalloc DMA ZONE 算法 内核 linux 空间 内存

linux内核空间

Linux 内核空间分为三个区域ZONE: ZONE_DMA, ZONE_NORMAL, ZONE_HIGHMEM

物理地址空间的顶部以下一段空间,被PCI设备的I/O内存映射占据,它们的大小和布局由PCI规范所决定。640K~1M这段地址空间被BIOS和VGA适配器所占据
由于这两段地址空间的存在,导致相应的RAM空间不能被CPU所寻址(当CPU访问该段地址时,北桥会自动将目的物理地址“路由”到相应的I/O设备上,不会发送给RAM),从而形成RAM空洞。

  • ZONE_DMA的范围是0~16M,该区域的物理页面专门供I/O设备的DMA使用。之所以需要单独管理DMA的物理页面,是因为DMA使用物理地址访问内存,不经过MMU,并且需要连续的缓冲区,所以为了能够提供物理上连续的缓冲区,必须从物理地址空间专门划分一段区域用于DMA。
  • ZONE_NORMAL的范围是16M~896M,该区域的物理页面是内核能够直接使用的。
  • ZONE_HIGHMEM的范围是896M~结束,该区域即为高端内存,内核不能直接使用。
ps: kmalloc为DMA分配内存 vmalloc 分配较大内核内存 malloc分配用户空间内存

伙伴算法、slab算法、ptmalloc、tcmalloc使用场景

伙伴算法

伙伴算法的分配单位为页框,管理ZONE_DMA, ZONE_NORMAL, ZONE_HIGHMEM区域。

slab算法

分配单位为字节,slab分配器只管理内核的常规地址空间(直接被映射到内核地址空间的ZONE_NORMAL和ZONE_DMA)。

ptmalloc、tcmalloc

分配单位为字节,ptmalloc、tcmalloc 管理用户空间内存

资料:
https://blog.csdn.net/liushengxi_root/article/details/88377620
https://blog.csdn.net/qq_41683305/article/details/124554490
https://zhuanlan.zhihu.com/p/526148283
https://blog.csdn.net/liushengxi_root/article/details/88377620

标签:ptmalloc,DMA,ZONE,算法,内核,linux,空间,内存
From: https://www.cnblogs.com/xiaohaigegede/p/17769718.html

相关文章

  • Linux 搭建 ftp服务器
    ftp服务器的搭建:文件的上传,文件下载yum-yinstallvsftpd//安装ftpvim/etc/vsftpd/vsftpd.conf   //关闭匿名访问anonymous_enable=NO     //关闭匿名访问systemctlstartvsftpd.service//启动服务systemctlstatusvsftpd.service//查看服务状态如果......
  • linux 防火墙
    netstat是一个控制台命令,可用于监控本机的TCP/IP网络,获得路由表、网络连接以及所有网络接口设备的状态信息netstat-napt  查看监听的端口netstat-napt |grep5672  检查端口被那个进程占用ps6832查看进程的详细信息kill-96832终止进程常用的几个参数有:-a-n......
  • Linux中查看服务器内存/CPU/网络占用情况的命令
    目录1、查看物理CPU个数2、查看服务器CPU内核个数3、服务器内存使用情况4、查看服务器的平均负载5、查看系统整体性能情况6、查看系统已载入的相关模块7、查找PCI设置8、网络流量监控9、查看系统内核1、查看物理CPU个数cat cat/proc/cpuinfo|grep"physic......
  • linux安装mysql5.7
    wget-i-chttp://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpmyum-yinstallmysql57-community-release-el7-10.noarch.rpmyum-yinstallmysql-community-server--nogpgchecksystemctlstartmysqld.servicesystemctlstatusmysqld.servi......
  • Linux:NAS网络存储
    学习自:讲一讲NAS网络存储(是什么,解决了什么问题)?1、NASNAS是NetworkAttachedStorage的简称,即网络附加存储。可以从它的名称中解析它的作用:存储:存储数据;附加:它可以轻松附加或者取下而不影响系统使用。对比系统中的硬盘,就不能随便取下(取下后电脑就不能用了),也就不能说是附加......
  • Linux MySQL8.1 二进制安装和配置
    下载bin文件https://dev.mysql.com/downloads/mysql/选择LinuxGeneric,下载对应的tar包解压tar包解压完成后,目录结构如下:lsbindocsincludelibLICENSEmanREADMEsharesupport-files每个目录的内容,官方文档有说明DirectoryContentsofDirectorybi......
  • 基于落点打分的井字棋智能下棋算法(C语言实现)
    本文设计了一种基于落地打分的井字棋下棋算法,能够实现电脑不败,所以如果玩家会玩的话,一般是平局。算法核心电脑根据对落子位置的打分,选择分数最高的位置,若不同落点分数相同则随机选择位置(随机选择就不会显得那么呆板)所以怎么打分是关键!基本思想是,判断落点附近的位置的棋子类型,......
  • 备份一下Linux下opencv编译指令
    备份一下opencv编译指令:tar-xzvfopencv-3.4.16.tar.gzcdopencv-3.4.16mkdirbuild&&cdbuildcmake-DCMAKE_BUILD_TYPE=Release-DCMAKE_INSTALL_PREFIX=/opt/envs/opencv/opencv-3.4.16..make-j8&&makeinstallopencv完整编译选项:cmake..-DCMAKE_BU......
  • Linux学习笔记2
    Linux学习笔记1.文件重定向1.尝试在命令行输人ifconfig.找到自己电脑的IP地址.zzh@ubuntu:~/Desktop$ifconfigens33:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500   inet192.168.216.128netmask255.255.255.0broadcast192.168.216.255   in......
  • 分享几条Linux怎么做安全防范措施的方法
    在Linux系统中,可以采取以下安全防范措施: *保持操作系统最新状态。及时更新操作系统可以减少安全风险,因为黑客经常利用操作系统漏洞进行攻击。此外,最新的操作系统版本通常包含更多的安全功能和改进,能够更好地抵御攻击。*禁用不必要的服务。默认情况下,Linux服务器可能会启用许......