物理内存与虚拟内存--问答

news/2024/11/29 8:00:58/

1.请简述Linux内核在理想情况下页面分配器(page allocator)是如何分配出连续物理页面的。
2.在页面分配器中,如何从分配掩码(gfp_mask)中确定可以从哪些zone中分配内存?
3.页面分配器是按照什么方向来扫描zone的?
4.为用户进程分配物理内存时,分配掩码应该选用GFP_KERNEL,还是GFP_HIGHUSER_MOVABLE呢?
5.在中断上下文中能不能调用包含GFP_KERNEL分配掩码的内存分配函数?
6.如何判断一个zone是否满足分配需求?
7.在释放页面时,页面分配器是如何进行空闲页面合并的?
8.在早期的Linux内核中,以2n字节为大小的内存块分配机制有什么缺点?slab机制如何克服这些缺点?
9.slab分配器是如何分配和释放小内存块的?
10.slab分配器中有一个高速缓存着色(cache color)的概念,着色有什么作用?
11.slab分配器增长并导致大量不用的空闲对象产生,该如何解决?
12.什么是对象缓冲池?
13.在创建一个slab对象描述符时,如何确定一个slab占用多少个物理页面、有多少个对象、着色区有多少个?
14.slab分配器的布局有三种模式——正常模式、OBJFREELIST_SLAB模式、OFF_SLAB模式。它们的区别是什么?
15.什么时候给slab分配器分配物理内存?
16.slab分配器中有一个slab管理区域freelist,那么这个slab管理区域是如何管理空闲对象的呢?
17.slab分配器如何保证在多CPU的大型计算机中的并发访问性能?
18.kmalloc()、vmalloc()和malloc()之间有什么区别以及实现上的差异?
19.Linux内核是如何管理进程的用户态地址空间的?
20.进程地址空间的属性如何转换成硬件能识别的属性?
21.进程地址空间是离散的,那Linux内核如何保证这些地址空间不会冲突?
22.Linux内核如何实现进程地址空间的快速查询和插入?
23.find_vma()函数查找符合哪些条件的VMA?
24.malloc()函数返回的内存是否马上就被分配物理内存?testA()和testB()分别在何时分配物理内存?
25.假设不考虑libc的因素,malloc()分配100字节,那么实际上内核为其分配100 字节吗?
26.假设使用printf()输出的指针bufA和bufB指向的地址是一样的,那么在内核中这两个虚拟内存块是否冲突呢?
27.vm_normal_page()函数返回什么页面的page数据结构?为什么内存管理代码中需要这个函数?
28.请简述get_user_page()函数的作用和实现流程。
29.请简述follow_page()函数的作用和实现流程。
30.SYSCALL_DEFINE1(brk, unsigned long, brk)这个宏展是如何展开的?
31.在ARM64内核中,用户空间如何划分呢?brk区域的起始地址和结束地址在哪里?
32.请简述私有映射和共享映射的区别。
33.在以下代码中,为什么第二次调用mmap时,Linux内核没有捕捉到地址重叠并返回失败呢?
34.请简述ARM64处理器在缺页异常发生之后是如何找到发生异常的类型和错误地址的。
35.当ARM64处理器发生了缺页异常时,如何知道它是因为读内存还是写内存发生的缺页异常?
36.当处理器发生了缺页异常时,如何判断发生异常的地址是可以修复的还是不能修复的?
37.在do_page_fault()函数处理过程中需要考虑哪些情况?
38.主缺页(major fault)和次缺页(minor fault)有什么区别?
39.对于匿名页面的缺页异常,判断条件是什么?
40.对于文件映射页面的缺页异常,判断条件是什么?
41.什么是写时复制类型的缺页异常?判断条件是什么?
42.在写时复制处理中,有两种方式,一种是复用发生异常的页面,另外一种是写时复制,那究竟什么类型的页面可以复用?什么类型的页面必须写时复制呢?
43.在ARMv8.1架构中使能了硬件DBM机制的情况下,如何避免软件和CPU同时更新DBM位以及PTE_RDONLY位?
44.什么情况下可以安全地调用pte_offset_map()函数?什么情况下不行?
45.在切换新的页表项之前要先对页表项内容清零并刷新TLB,这是为什么?
46.在一个多核的SMP系统中,是否多个CPU内核可以同时对同一个页面发生缺页异常?若可以,请描述一个发生的场景,并描述如何保证这几个缺页异常的内核路径对同一个页面的操作不会导致竞争问题。


http://www.ppmy.cn/news/429196.html

相关文章

台式计算机怎么加一个硬盘,台式电脑硬盘怎么多安装一个?电脑安装多加一块硬盘的方法...

台式电脑硬盘运行久了会储存很多数据资料,时间久了,硬盘空间就不够用了,如果重新换电脑要花费很多资金。其实我们可以给电脑多加一个硬盘,增加硬盘空间,加快系统运行速度。那么台式电脑硬盘怎么多安装一个?…

安装完固态硬盘后计算机里没显示,安装了双硬盘电脑却不显示新硬盘怎么办

安装了双硬盘电脑却不显示新硬盘怎么办 我们在为电脑安装了一个新的硬盘之后,发现并没有显示出来。那么安装了双硬盘电脑却不显示新硬盘怎么办呢?下面就让jy135小编来告诉大家吧,欢迎阅读。 1、在“我的电脑”上面单击右键,选择“属性”&…

计算机使用中硬盘突然不见了,电脑硬盘突然消失不见

大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。 电脑硬盘突然消失不见问题原因分析如下: 1、IDE电缆连接口接触不良、断裂;检查IDE电缆线接口,重新插好,若断裂则更换过。 2、IDE接口…

计算机如何新增硬盘,电脑新增加一块硬盘安装并使用的教程

电脑新增加一块硬盘怎么安装使用?现在配置电脑主机,在存储这方面,主流推荐都会使用SSD硬盘,因为读写速度快,在SSD系统上安装系统,开机只需要10多秒,很在程序上提高了体验,但SSD成本较…

计算机硬盘如何安装系统,电脑硬盘怎么装系统

描述 首先自然是安装新硬盘,我们把旧的硬盘拆下来,然后把新的硬盘安装上去,安装的时候不要使用蛮力,以免破坏硬盘的针头,导致硬盘不能使用。如果你对安装硬盘不是很在行的话,可以求助其他人帮忙安装&#x…

linuxOPS系统服务_Linux下用户管理

用户概念以及基本作用 **用户:**指的是Linux操作系统中用于管理系统或者服务的人 一问:管理系统到底在管理什么? 答:Linux下一切皆文件,所以用户管理的是相应的文件 二问:如何管理文件呢? …

计算机双硬盘如何设置,电脑固态硬盘+机械硬盘双盘齐下的安装方法-双硬盘设置...

电脑旧了可以淘汰,但是硬盘一般不会轻易淘汰,因为有些数据希望保留;还有些朋友嫌电脑运行慢希望给笔记本加装成双硬盘,采用“固态硬盘机械硬盘”模式来扩大计算机的存储空间,那么笔记本双硬盘该如何安装呢?…

电脑计算机硬盘怎么加,电脑加装一个硬盘后怎么设置

电脑加装一个硬盘后能提高电脑运行速度,加装硬盘后要怎么设置呢?下面由学习啦小编为大家整理了电脑加装一个硬盘后怎么设置的方法步骤,希望对大家有帮助! 电脑加装一个硬盘后怎么设置 电脑设置加装硬盘的方法和步骤如下 将硬盘安装到电脑上之后&#xf…