笔试面试题目
嵌入式其实是一个知识比较杂乱的岗位,软件你要懂,硬件你也要懂;底层要懂,做应用开发的话上层也要懂。
第一章进程线程的基本概念
1、什么是进程,线程,有什么区别
进程是系统资源分配的基本单位,线程是系统任务调度的基本单位
一个进程由一个或多个线程组成
进程间通信方式有(管道、信号、信号量、共享内存、消息队列、socket)
线程相当于执行一个函数
2、多进程、多线程的优缺点
3、什么时候用进程,什么时候用线程
4、多进程、多线程同步(通讯)的方法
5、进程线程的状态转换图 。什么时候阻塞,什么时候就绪
6、父进程、子进程的关系以及区别
7、什么是进程上下文、中断上下文
8、一个进程可以创建多少线程,和什么有关
9、进程间通讯:
(1)管道/无名管道(2)信号(3)共享内存(4)消息队列(5)信号量(6)socket
注意:临界区则是一种概念,指的是访问公共资源的程序片段,并不是一种通信方式。
10、线程通讯(锁):
(1)信号量(2)读写锁(3)条件变量(4)互斥锁(5)自旋锁
第二章C/C++面试题
1、new和malloc的区别
2、 malloc的底层实现
3、在1G内存的计算机中能否malloc(1.2G)?为什么