175 请设计一个嵌入式存储方案:设备每10ms产生一条数据,需持续写入Flash,空间有限需循环覆盖旧数据,且可能随时掉电,重启后要尽量保住最近的数据。考察候选人在真实约束下设计存储系统的能力,重点在异常路径、掉电一致性、循环覆盖与恢复策略,而非背诵Flash定义。 查看学习思路
176 请解释文件调用write返回成功后,数据是否一定进入存储介质?page cache、脏页、后台回写和fsync之间是什么关系?考察对文件系统写路径和持久化语义的理解,尤其是write成功与真正落盘之间的差距,以及fsync在掉电场景下的保证边界。 查看学习思路
177 请说明DMA读写缓冲区时为什么需要考虑Cache一致性,以及CPU已改缓存但DMA读到旧数据时如何处理。考察对DMA与Cache交互的理解,包括一致性问题的成因、常见处理手段及其代价。 查看学习思路
179 请解释volatile能保证什么、为什么不能拿它做线程同步,并说明编译器乱序与CPU乱序的区别以及内存屏障的使用场景。考察对volatile语义、编译器优化、CPU乱序和内存屏障的理解,判断候选人是否能把语言语义与硬件行为区分开。 查看学习思路
180 static修饰局部变量和全局变量分别有什么影响?未初始化的全局变量和局部变量的初始值是什么?考察C语言基础,static关键字对变量存储期、作用域和链接属性的影响,以及未初始化变量的默认值。 查看学习思路