linux 内存管理回答的问题,你都能解释清楚吗?

一切的学习都是为了解决问题,而不是为了学习而学习。为了学习而学习,这种行为实在是太傻了,因为最终也学不好。

所以我们要弄清楚内存管理究竟能解决什么样的问题。

首先站在 Linux 的角度,有以下几个问题:

1、MMU 是什么?被设计出来是解决什么问题的?

2、CPU是如何访问到内存的?

         https://mp.weixin.qq.com/s/SdsT6Is0VG84WlzcAkNCJA?

3、进程的 4G 虚拟地址空间是如何产生的?设计虚拟地址空间的目的?4G空间是如何划分的?

4、为什么要有DMA、NORMAL、HIGHMEM Zone?每个zone的大小是由谁决定的?

5、系统的内存是如何被内核和应用瓜分掉的?

6、底层的内存管理算法buddy是怎么工作的?它和内核里面的slab分配器是什么关系?

7、频繁的内存申请和释放是否会导致内存的碎片化?它的后果是什么?

8、Linux内存耗尽后,系统会发生怎样的情况?

9、应用程序的内存是什么时候拿到的?malloc()成功后,是否真的拿到了内存?应用程序的malloc()与free()与内核的关系究竟是什么?

10、什么是lazy分配机制?应用的内存为什么会延后以最懒惰的方式拿到?

11、我写的应用究竟耗费了多少内存?进程的vss/rss/pss/uss分别是什么概念?虚拟的,真实的,共享的,独占的,究竟哪个是哪个?

12、内存为什么要做文件系统的缓存?如何做?缓存何时放弃?

13、Free命令里面显示的buffers和cached分别是什么?二者有何区别?

14、交换分区、虚拟内存究竟是什么鬼?它们针对的是什么性质的内存?什么是匿名页?

15、进程耗费的内存、文件系统的缓存何时回收?回收的算法是不是类似LRU?

16、怎样追踪和判决发生了内存泄漏?内存泄漏后如何查找泄漏源?

17、内存大小这样影响系统的性能?CPU、内存、I/O三角如何互动?它们如何综合决定系统的一些关键性能?

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值