嵌入式操作系统面试高频考点解析1. 进程与线程1.1 基本概念差异进程操作系统资源分配的最小单位拥有独立的地址空间线程CPU调度的基本单位共享进程地址空间但拥有独立堆栈和局部变量1.2 关键特性对比特性进程线程地址空间独立共享健壮性一个进程崩溃不影响其他线程崩溃可能影响同进程其他线程创建开销较大较小上下文切换开销较大较小2. 进程间通信机制2.1 管道通信// 无名管道创建示例 int pipe(int pipefd[2]);无名管道仅限亲缘关系进程间通信单向字节流有名管道(FIFO)突破亲缘限制通过文件系统路径访问2.2 其他通信方式消息队列数据块传输需用户/内核空间拷贝共享内存最高效但需处理资源竞争信号异步事件通知机制信号量同步互斥控制Socket跨主机通信解决方案3. 进程调度算法3.1 基础算法FCFS先到先服务简单但平均等待时间长SJF最短作业优先理论上最优但需预知运行时间优先级调度可能产生饥饿现象3.2 高级算法时间片轮转公平但上下文切换开销大多级反馈队列多级队列优先级递减时间片递增新进程进入最高优先级队列4. 特殊进程类型4.1 孤儿进程产生条件父进程先于子进程终止处理机制被init进程(pid1)收养资源回收由init进程负责wait5. 线程同步机制5.1 同步原语对比机制适用场景特点互斥量临界区保护简单高效读写锁读多写少允许并发读条件变量事件等待需与互斥量配合使用信号量资源计数可跨进程自旋锁短临界区忙等待不释放CPU6. 进程内存布局6.1 Linux进程地址空间内核空间运行操作系统核心代码栈区自动管理存放局部变量和函数调用信息堆区动态内存分配区域数据段.bss未初始化全局变量.data已初始化全局变量代码段只读的程序指令7. 内存管理问题7.1 内存碎片类型外部碎片空闲内存总量足够但无法满足连续分配内部碎片分配单元未使用部分7.2 解决方案内存池技术slab分配器紧凑(compaction)技术8. 堆栈对比分析8.1 核心差异特性栈堆管理方式编译器自动分配释放程序员手动控制分配效率高(指针移动即可)低(需查找合适内存块)容量限制较小(通常MB级)较大(受虚拟内存限制)碎片问题无存在外部和内部碎片9. 同步原语深入9.1 互斥锁vs信号量互斥锁二元状态严格互斥访问信号量计数机制可实现复杂同步模式9.2 使用注意事项避免锁嵌套导致的死锁注意锁粒度对性能的影响优先使用读写锁优化读多写少场景10. 同步与异步10.1 执行流程差异// 同步调用示例 result sync_call(); // 异步调用示例 async_call(callback);10.2 适用场景同步流程严格依赖调用结果异步提高系统吞吐量避免阻塞11. 死锁问题11.1 必要条件互斥访问占有并等待不可抢占循环等待11.2 解决方案预防破坏任一必要条件资源预分配允许资源抢占强制资源有序申请检测与恢复定期检测死锁并采取措施11.3 实际工程建议统一锁获取顺序使用超时机制避免长时间持有锁
嵌入式操作系统面试高频考点解析
嵌入式操作系统面试高频考点解析1. 进程与线程1.1 基本概念差异进程操作系统资源分配的最小单位拥有独立的地址空间线程CPU调度的基本单位共享进程地址空间但拥有独立堆栈和局部变量1.2 关键特性对比特性进程线程地址空间独立共享健壮性一个进程崩溃不影响其他线程崩溃可能影响同进程其他线程创建开销较大较小上下文切换开销较大较小2. 进程间通信机制2.1 管道通信// 无名管道创建示例 int pipe(int pipefd[2]);无名管道仅限亲缘关系进程间通信单向字节流有名管道(FIFO)突破亲缘限制通过文件系统路径访问2.2 其他通信方式消息队列数据块传输需用户/内核空间拷贝共享内存最高效但需处理资源竞争信号异步事件通知机制信号量同步互斥控制Socket跨主机通信解决方案3. 进程调度算法3.1 基础算法FCFS先到先服务简单但平均等待时间长SJF最短作业优先理论上最优但需预知运行时间优先级调度可能产生饥饿现象3.2 高级算法时间片轮转公平但上下文切换开销大多级反馈队列多级队列优先级递减时间片递增新进程进入最高优先级队列4. 特殊进程类型4.1 孤儿进程产生条件父进程先于子进程终止处理机制被init进程(pid1)收养资源回收由init进程负责wait5. 线程同步机制5.1 同步原语对比机制适用场景特点互斥量临界区保护简单高效读写锁读多写少允许并发读条件变量事件等待需与互斥量配合使用信号量资源计数可跨进程自旋锁短临界区忙等待不释放CPU6. 进程内存布局6.1 Linux进程地址空间内核空间运行操作系统核心代码栈区自动管理存放局部变量和函数调用信息堆区动态内存分配区域数据段.bss未初始化全局变量.data已初始化全局变量代码段只读的程序指令7. 内存管理问题7.1 内存碎片类型外部碎片空闲内存总量足够但无法满足连续分配内部碎片分配单元未使用部分7.2 解决方案内存池技术slab分配器紧凑(compaction)技术8. 堆栈对比分析8.1 核心差异特性栈堆管理方式编译器自动分配释放程序员手动控制分配效率高(指针移动即可)低(需查找合适内存块)容量限制较小(通常MB级)较大(受虚拟内存限制)碎片问题无存在外部和内部碎片9. 同步原语深入9.1 互斥锁vs信号量互斥锁二元状态严格互斥访问信号量计数机制可实现复杂同步模式9.2 使用注意事项避免锁嵌套导致的死锁注意锁粒度对性能的影响优先使用读写锁优化读多写少场景10. 同步与异步10.1 执行流程差异// 同步调用示例 result sync_call(); // 异步调用示例 async_call(callback);10.2 适用场景同步流程严格依赖调用结果异步提高系统吞吐量避免阻塞11. 死锁问题11.1 必要条件互斥访问占有并等待不可抢占循环等待11.2 解决方案预防破坏任一必要条件资源预分配允许资源抢占强制资源有序申请检测与恢复定期检测死锁并采取措施11.3 实际工程建议统一锁获取顺序使用超时机制避免长时间持有锁