linux内存管理(linux存储管理方式(与实现?)
浏览量:2327
时间:2022-12-29 20:54:40
作者:采采
linux内存管理的相关知识有哪些呢?
Linux的虚拟内存管理有几个关键概念:
1.每个进程都有独立的虚拟地址空间,一个进程访问的虚拟地址不是真实的物理地址;
2.虚拟地址可以通过每个进程上的页表(在每个进程的内核虚拟地址空间中)与物理地址进行映射,得到真实的物理地址;
3 .如果虚拟地址对应物理地址不在物理内存中,则产生缺页中断,真正分配物理地址,同时更新进程的页表;如果此时物理内存耗尽,根据内存替换算法,一些页面将被清除到物理磁盘。
linux怎么管理空闲内存?
组织级:页面管理—gt(numa)—gt节点的zone list—gt32位DMA/normal/highmeme、64位无高端内存的三个区域—gt伙伴分配系统—gt slab/slub 2。进程创建时的内存分配:实际上只分配了task_struct和thread_info的内存。它可能是从slab缓存中分配的。当进程运行时,是内核层专门分配物理内存并与vm挂钩。是c运行时的实现,是上层库的内存分配层。至于内核层,可以看看_ _ alloc _ pages/alloc _ pages/kmalloc(小内存直接slab,内存还是alloc _ pages)/vmalloc(alloc _ page分配不连续的物理页面,映射到连续的vm_struct中的页面指针数组)/vmap/map_vm_area等函数。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。