在阅读《奔跑吧Linux内核》之前,我们请读者用两小时来完成Linux内核奔跑卷,对Linux内核了解程度做简要的了解。奔跑卷仅仅是Linux内核知识的娱乐游戏节目,希望能给读者带来一丝乐趣,套用国内某个科技圈里知名人士的名言“不服,来跑个分吧!”。
奔跑卷一共20道大题目,每道大题目10分,一共200分,读者可以边阅读内核源代码边做题目,请在两小时内完成。如没有特殊说明,本奔跑卷基于Linux 4.0内核和ARM32/ ARM64体系架构。 奔跑卷:http://www.epubit.com.cn/book/onlinechapter/54016
我们首先公布前5题答案,前5题分别是:
1.请简述在你所熟悉的处理器中(比如双核Cortex-A9)一条存储读写指令的执行全过程。
2.在一个32KB的4路组相联的cache中,其中cache line为32Byte,请画出这个cache组相联的结构图。
3.内核的一级页表和二级页表存放在什么地方?用户进程的一级页表和二级页表分别存放在什么地方?
4.关于伙伴系统的几个小问题:
系统初始化时,物理内存页面是如何添加到伙伴系统中的? 系统运行时间长了物理内存会出现碎片化,伙伴系统如何避免物理内存的碎片化?
5.关于物理页面内存分配器的几个小问题:
请简述Linux内核在理想情况下页面分配器(page allocator)是如何分配出连续物理页面的? 如何从分配掩码中确定可以从哪些zone中分配内存? 页面分配器是按照什么方向来扫描zone的?
《奔跑吧Linux内核》奔跑卷习题答案获取方式
1.关注“异步图书”微信公众号
2.回复关键字 “奔跑卷答案”
即可获得答案!
本文转载自异步社区