联发科嵌入式二面 面经

联发科二面相比一面,更关注系统设计能力、工程经验以及对问题的深入推导能力。面试官通常会从一个开放问题切入,持续追问实现细节、性能瓶颈以及设计权衡,重点考察是否具备完整的系统思维。

面试题目

  1. 设计一个高并发嵌入式数据采集系统,要求支持多种外设并保证实时性与可靠性
  2. 设计一个支持断电恢复和回滚的固件升级系统
  3. 如何定位一个长期运行后出现的内存泄漏问题
  4. 如果系统出现偶现卡死且无法复现,应如何系统性排查
  5. 多核系统中如何设计任务调度以减少锁竞争
  6. 在高并发场景下,如何优化中断处理路径以降低延迟
  7. 设计一个高效的用户态与内核态数据交互机制
  8. 如何优化Linux系统启动时间,从上电到应用启动全过程分析
  9. 如果设备出现频繁IO阻塞,如何分析瓶颈并优化
  10. 设计一个低功耗嵌入式系统,如何在性能与功耗之间做权衡
  11. 在驱动开发中如何处理硬件异常与错误恢复机制
  12. 如何设计一个高可靠的日志系统用于问题追踪
  13. 在资源受限情况下,如何进行内存管理与优化
  14. 多线程程序中如何减少上下文切换带来的性能损耗
  15. 如何设计一个支持高并发连接的网络服务模型

八股文准备

  1. 每个知识点必须做到三层理解是什么为什么怎么用
  2. 打通核心知识链路C语言与内存模型编译与链接过程操作系统调度与同步机制IO模型与事件机制嵌入式系统启动与驱动框架
  3. 对关键模块形成体系化认知内存管理机制进程与线程模型中断与调度机制设备驱动框架缓存与一致性
  4. 强化工程能力表达能够描述完整系统架构能够分析性能瓶颈来源能够说明设计选择的理由
  5. 训练深入追问能力每个问题至少向下推导三层从接口到实现从实现到数据结构从数据结构到硬件或系统本质

嵌入式八股文专栏(全网最全面的嵌入式八股文专栏,包含大厂面试题):https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk

结尾

二面的核心不在于题目本身,而在于能否从问题出发,逐层展开到系统实现、性能权衡以及工程实践。如果能够在回答中体现出结构化思考和深入推导能力,就能够明显拉开差距。

全部评论
连发科啊,这个我倒是真的想去的
点赞 回复 分享
发布于 04-05 17:28 陕西
写的真的很好呢
点赞 回复 分享
发布于 03-24 22:27 北京

相关推荐

1.Linux系统的组成部分有哪些?Linux内核、Linux文件系统、Linux shell、Linux应用程序。2.Linux内核的组成部分有哪些?(1)第一种分类方式:内存管理子系统、进程管理子系统、文件管理子系统、I/O管理子系统。(2)第二种分类方式:进程调度(SCHED)、进程间通信(IPC)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)。3.Linux内存管理模块MMU的作用是?(1)地址映射。(2)内存分配和回收。(3)内存保护。(4)内存扩充。4.操作系统调度策略有哪些?答案:(1)先来先服务(FCFS)。(2)短进程优先(SPF)。(3)高响应比优先(HRN)。(4)时间片轮转(RR)。(5)多级反馈队列(RRWMF)。(6)最高优先权优先(FPF)。解析:(1)先来先服务(FCFS):每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。(2)短进程优先(SPF):从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。(3)高响应比优先(HRN):在短作业优先的基础上,使作业的优先级随着等待时间的增加而以速率a 提高,则长作业在等待一定的时间后,必然有机会分配到处理机。(4)时间片轮转(RR):将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU 分配给队首进程,并令其执行一个时间片,时间到了之后将它送往就绪队列的末尾。接着调度下一个队首进程……如此循环。(5)多级反馈队列(RRWMF):①设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低。该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小。例如,第二个队列的时间片要比第一个队列的时间片长一倍,第i + 1个队列的时间片要比第i个队列的时间片长一倍。②当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行;如果它在第二队列中运行一个时间片后仍未完成,再依次将它放入第三队列,如此下去,当一个长进程从第一队列依次降到第n队列后,在第n 队列便采取按时间片轮转的方式运行。③仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第1~(i-1)队列均空时,才会调度第i队列中的进程运行。如果处理机正在第i队列中为某进程服务时,又有新进程进入优先权较高的队列(第1~(i-1)中的任何一个队列),则此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回到第i队列的末尾,把处理机分配给新到的高优先权进程。(6)最高优先权优先(FPF):把处理机分配给就绪队列中优先权最高的进程,这时,又可进一步把该算法分成如下两种:①非抢占式优先权算法:系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成;或因发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程。这种调度算法主要用于批处理系统中,也可用于某些对实时性要求不严的实时系统中。②抢占式优先权调度算法:系统同样是把处理机分配给优先权最高的进程,使之执行。但在其执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立即停止当前进程(原优先权最高的进程)的执行,重新将处理机分配给新到的优先权最高的进程。5.满足短作业优先又不会发生饥饿现象的操作系统调度策略是哪种?高响应比优先。6.Linux I/O子系统的层次结构是怎样的?从上到下依次是用户层I/O软件,设备独立性软件,设备驱动程序,中断处理程序。7.逻辑地址、线性地址、物理地址、总线地址、虚拟地址有什么区别?(1)逻辑地址:与内存段相关的偏移地址部分。例如,在C语言获取指针变量的值,就是逻辑地址,不和绝对的物理地址相关。(2)线性地址:线性地址 = 逻辑地址 + 基地址。(3)物理地址:如果启用了分页机制,那么线性地址使用页表项变换后就是物理地址。如果没有启用分页机制,那么线性地址就是物理地址。(4)总线地址:x86下的I/O地址,ARM下的物理地址。(在x86下,外设的I/O地址是独立的,即有专门的指令访问外设I/O,I/O地址就是"总线地址",而RAM地址就是"物理地址"。在ARM下,I/O和RAM统一编址,但linux为了统一各个平台,仍然保留这个概念,总线地址其实就是物理地址。)(5)虚拟地址:MMU虚拟出来的地址。8.你了解操作系统的内存分配方式吗?(1)分页存储管理:优点是不需要连续的内存空间,且内存利用率高(只有很小的页内碎片);缺点是不易于实现内存共享与保护。(2)分段存储管理:优点是易于实现段内存共享和保护;缺点是每段都需要连续的内存空间,且内存利用率较低(会产生外部碎片)。(3)段页式存储管理:优点是不需要连续的内存空间,内存利用率高(只有很小的页内碎片),且易于实现段内存共享和保护;缺点是管理软件复杂性较高,需要的硬件以及占用的内存也有所增加,使得执行速度下降。以上内容摘自专刊《嵌入式岗位笔试面试真题讲解》,该专刊不仅有真题讲解,还有经验分享,不清楚嵌入式该学什么的同学,想找嵌入式实习/正式工作的同学,都可以来看看:  https://blog.nowcoder.net/zhuanlan/v0ELPM
查看8道真题和解析
点赞 评论 收藏
分享
评论
3
15
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务