
内存管理
文章平均质量分 76
全是关于内存的文档
巭犇
做一件事,感动自己...
展开
-
NUMA详解
Numa(Non-Uniform Memory Access)是一种计算机架构,它允许多个处理器通过共享内存来访问系统的物理内存,但是不同的内存区域可能由不同的处理器处理,这种内存访问方式被称为“非一致性内存访问”。在这种架构中,每个处理器都有自己的本地内存,但它们可以访问其他处理器的内存。这种架构可以提高多处理器系统的性能,并使系统更具可扩展性。在Numa系统中,每个处理器有一个本地内存子系统,每个本地内存子系统都连接到一个全局内存交换网络。原创 2023-04-26 15:18:26 · 13081 阅读 · 1 评论 -
查看Linux中DMA的大小
操作系统会将内存分段,分页,分区,本文讲linux下的内存分区。在64位的操作系统中,内存划分为DMA、MDA32、Normal区,原创 2022-10-19 16:35:28 · 2766 阅读 · 0 评论 -
打印内核与用户段地址
如下图所示,Linux虚拟内存的高16位全0代表此地址为用户空间地址,全1代表此地址为内核空间地址可以通过以下代码进行验证内核打印用printk。原创 2022-11-09 11:04:54 · 710 阅读 · 0 评论 -
vmstat(Virtual memory statistics)详解
类别 项目 含义 说明 Procs(进程) r 等待运行的进程数量 B 不可中断进程(D进程)的数量 通常是等待 IO 中断来唤醒此进程,这个进程会忽略所接受到的信号 Memory(内存) swpd 当前使用的swap空间的大小 free 空闲内存大小 buff 内存用作 buffer 的大小 要写入磁盘的数据大小 cache 内存用作 cache 的大小 从磁盘读取的数据的大原创 2022-02-25 10:49:52 · 230 阅读 · 0 评论 -
进程间通信--共享内存
另一个潜在消耗内存的是为进程间通信保留内存的机制,Linux一般即支持老式System V(SysV)风格的 IPC 也支持新式 POSIX IPC 机制。信号量支持两个或两个以上的进程对共享资源的协调访问。消息队列允许进程通过交换消息协同工作。共享内存允许进程在内存中的相同区域读写操作来交换信息。一个进程想要使用以上三种机制中的一种必须使用合适的系统调用来分配想要的资源,系统管理员可以限制进程可用的 SysV IPC 资源数量。通过运行以下命令可以获得当前的 SysV IPC 资源限制:[.原创 2022-02-10 14:59:37 · 353 阅读 · 0 评论 -
管理标准大页与透明大页
Linux 通过大页机制支持大内存页。大多数cpu架构支持多个 page 大小,IA-32架构支持4KiB,2MiB,或4MiB,X86-64架构支持4KiB,2MiB,4MiB和1GiB,RHEL6 和RHEL7 使用默认大页是2MiB,处理器的 TLB 条目数量是固定的,但是随着页面大小的增加,处理器的 TLB 空间也会相应变大。更少的 TLB 条目指向更多的内存意味着 TLB 的命中率会更高,每当 CPU 上下文切换时,内核通常必须刷新正在调度的进程的 TLB 条目。查看 /proc/meminf原创 2022-02-10 14:23:00 · 708 阅读 · 0 评论 -
用C语言编写一个申请内存的程序
虚拟内存与实际内存虚拟内存指的是,程序向操作系统所申请的内存空间,这个空间不一定会使用,这个空间也可以比服务器实际可提供内存空间大。实际内存是程序所申请的内存页与物理内存中的物理页进行一一映射的内存空间,这个空间永远不会比物理内存大。C语言内存空间分配函malloc()数简介.调用形式:(类型说明符*)malloc(size)功能:在内存的动态存储区中分配一块长度为“size”字节的连续区域。函数的返回值为该区域的首地址。说明:(1)“类型说明符”表示把该区域用于何种数据类型。(2原创 2022-04-24 16:14:10 · 3196 阅读 · 0 评论 -
Overcommitting Memory (过度使用内存)
目标完成本章节学习,学生应该能调节过度使用内存。调节过度使用许多应用程序相较于她们将实际使用的内存会请求分配更多的内存,另一些程序会请求内核分配超过系统可用内存的内存大小,解决这个问题的一个方法是调节 vm.overcommit_memory 参数,这个值可以是以下3个值 0:使用启发式算法,如果程序企图申请比可用内存更多的空间,则内核返回拒绝。但是当有大量的小内存申请时,内核依然可能overcommit。 1:不管系统是否有足够的内存,内核总是会分配内存申请 2:从不过...原创 2022-02-10 14:53:06 · 963 阅读 · 0 评论 -
mmap详解
mmap()调用请求内核将fd表示的文件中从offset处开始的len个字节数据映射到内存中。如果包含了addr,表明优先使用addr为内存中的开始地址。访存权限由prot指定,flags指定了其他的操作行为。原创 2023-01-30 14:19:46 · 2943 阅读 · 0 评论 -
虚拟内存中的各个段详解
虚拟内存 bss heap stack原创 2022-08-16 20:13:14 · 457 阅读 · 0 评论