2.CPU访问各级存储结构的速度是否一样?
- 答:不同级别的存储结构对于CPU的访问速度是不同的。通常来说,CPU访问速度最快的是寄存器,其次是一级缓存(L1 Cache),二级缓存(L2 Cache),三级缓存(L3 Cache),最后是主存储器(DRAM)。
寄存器是CPU内部的存储器,访问速度非常快,可以在一个CPU周期内完成访问。
一级缓存(L1 Cache)是CPU内部的缓存,访问速度也非常快,通常可以在一个CPU周期内完成访问。
二级缓存(L2 Cache)和三级缓存(L3 Cache)是位于CPU和主存储器之间的缓存,访问速度比主存储器快很多,但比L1 Cache慢一些。
主存储器(DRAM)是CPU访问速度最慢的存储结构,访问速度通常需要几十个CPU周期。因此,在程序设计中,应尽可能地利用寄存器和缓存,以减少对主存储器的访问,从而提高程序的执行效率。
3.请绘制内存管理常用的数据结构的关系图。如mm_struct、VMA、vaddr、page、PFN、PTE、zone、paddr和pg_data等,并思考如下转换关系。
1)如何由mm_struct和vaddr找到对应的VMA?
2)如何由page和VMA找到vaddr?
3)如何由page找到所有映射的VMA?
4)如何由VMA和vaddr找出相应的page数据结构?
5)page和PFN之间如何互换?
6)PFN和paddr之间如何互换?
7)page和PTE之间如何互换?
8)zone和page之间如何互换?
9)zone和pg_data之间如何互换?
4.在ARM64内核中,内核映像文件映射到内核空间的什么地方?
5.在ARM64内核中,内核空间和用户空间是如何划分的?
6.在系统启动时,ARM64 Linux内核如何知道系统有多大的物理内存?
7.物理内存页面如何添加到伙伴系统中,是一页一页添加,还是以2n来添加呢?