嵌入式面试必刷题单大揭秘

本篇为收集的技术面的面经以及自己经历的补充

共分为两部分

  • 第一部分,网络上汇总的面经.
  • 第二部分,鄙人亲自经历的面经汇总.(持续更新)

所有问题均很重要 排名不代表重要性

第一部分:进程与线程

基础概念

  1. 什么是进程?
  2. 什么是线程?
  3. 进程和线程有什么区别?
  4. 为什么线程要共享进程地址空间?
  5. 线程共享进程的哪些资源?
  6. 线程不共享哪些资源?
  7. 进程为什么需要独立地址空间?

多进程 / 多线程

  1. 多进程的优点是什么?
  2. 多进程的缺点是什么?
  3. 多线程的优点是什么?
  4. 多线程的缺点是什么?
  5. 多进程和多线程的使用场景分别是什么?
  6. 什么时候使用多进程?
  7. 什么时候使用多线程?

进程通信 IPC

  1. 什么是 IPC(进程间通信)?
  2. Linux 常见的 IPC 方式有哪些?
  3. 管道(Pipe)是什么?有什么特点?
  4. 管道可以用于哪些进程通信?
  5. 什么是命名管道(FIFO)?
  6. 消息队列是什么?
  7. 信号(Signal)是什么?
  8. 共享内存是什么?
  9. 为什么共享内存是最快的 IPC?
  10. 信号量(Semaphore)是什么?
  11. Socket 是否可以用于进程通信?

线程同步

  1. 什么是线程同步?
  2. 什么是线程互斥?
  3. 线程同步和线程互斥有什么区别?
  4. 常见的线程同步方式有哪些?
  5. 什么是互斥锁(Mutex)?
  6. 什么是条件变量(Condition Variable)?
  7. 什么是读写锁(Read Write Lock)?
  8. 什么是信号量(Semaphore)?
  9. 什么是自旋锁(Spinlock)?
  10. 什么是线程本地存储(TLS)?

并发相关概念

  1. 什么是并发(Concurrency)?
  2. 什么是并行(Parallelism)?
  3. 什么是同步(Synchronous)?
  4. 什么是异步(Asynchronous)?
  5. 什么是互斥(Mutex)?
  6. 什么是阻塞(Blocking)?
  7. 什么是非阻塞(Non-blocking)?
  8. 同步一定是阻塞的吗?
  9. 阻塞一定是同步的吗?

进程内存模型

  1. 什么是进程地址空间?
  2. 进程的内存结构有哪些部分?
  3. 什么是连续空间模型?
  4. 什么是分段模型?
  5. 什么是分页模型?
  6. 什么是段页式内存管理?
  7. 为什么操作系统采用分页机制?

进程 / 线程状态

  1. 进程有哪些状态?
  2. 什么是就绪状态(Ready)?
  3. 什么是运行状态(Running)?
  4. 什么是阻塞状态(Blocked)?
  5. 进程什么时候会进入阻塞状态?
  6. 阻塞状态什么时候会转为就绪状态?

父进程与子进程

  1. 什么是父进程?
  2. 什么是子进程?
  3. fork() 的作用是什么?
  4. fork() 调用后发生了什么?
  5. 父进程和子进程的返回值分别是什么?
  6. 父进程和子进程的地址空间关系是什么?
  7. 父进程和子进程共享哪些资源?

上下文

  1. 什么是进程上下文(Process Context)?
  2. 什么是线程上下文(Thread Context)?
  3. 什么是中断上下文(Interrupt Context)?
  4. 进程上下文切换发生在什么时候?
  5. 中断上下文和进程上下文有什么区别?

线程数量

  1. 一个进程最多可以创建多少线程?
  2. 线程数量受哪些因素限制?
  3. 为什么线程过多会降低性能?

特殊进程

  1. 什么是孤儿进程?
  2. 什么是僵尸进程?
  3. 什么是守护进程?
  4. 僵尸进程是如何产生的?
  5. 僵尸进程有什么危害?
  6. 如何避免僵尸进程?

守护进程

  1. 什么是守护进程?
  2. 守护进程有哪些特点?
  3. 如何创建一个守护进程?
  4. 为什么守护进程要调用 setsid()?

僵尸进程处理

  1. wait() 系统调用的作用是什么?
  2. waitpid() 和 wait() 的区别是什么?
  3. 如何正确回收子进程资源?

第二部分 C/C++ 面试题

  1. C 和 C++ 的主要区别是什么?
  2. C++ 为什么支持面向对象编程?
  3. 什么是类和对象?
  4. 什么是继承?
  5. 什么是多态?
  6. 什么是函数重载?
  7. 什么是运算符重载?
  8. 什么是模板(Template)?
  9. 什么是异常处理(Exception)?
  10. C++ 为什么需要命名空间(namespace)?
  11. C++ 的引用是什么?
  12. 引用和指针有什么区别?
  13. C++ 有哪些类型转换方式?

更多问题可以看指南,有详细的解答和示例。

嵌入式软件工程师面试完全指南

面经一共32篇文章,12w+字数,包含全部最新的面试必问考点,4.7w+同学学习,3300+订阅,非常适合在找工作面经薄弱的同学,销量即是口碑,提前订阅提前享受,持续更新中。

原帖链接:https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM

全部评论

相关推荐

zbk1:学院本找嵌入式我觉得不太行,不要被培训班忽悠了,老老实实读个研吧。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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