感谢老毕,现在都入职了,向他请教求职事宜,也热心回答。先将他经历的一些比较有代表性的面试题目贴出来,留下来慢慢研究:
[百度 移动终端研发工程师]
利用互斥量和条件变量设计一个消息队列,具有以下功能:
1 创建消息队列(消息中所含的元素)
2 消息队列中插入消息
3 取出一个消息(阻塞方式)
4 取出第一消息(非阻塞方式)
设计通用的内存管理系统,考虑线程安全性、内存泄露越界,要求算法效率不太低于malloc/free函数
[EMC 软件开发工程师]
spinlock、mutex的数据结构和c语言实现
读写锁的实现
*******************************************************
面:华赛、华为、29所、理光
电话:marvell、ni
华赛:
擅长什么?玩过linux开发没?
华为:
你对这个职位有多少了解?为什么非要投这个职位?你对于这个职位有什么优势?
marvell:
实现位结构体?
判断大端小端?
volatile的作用?有cache的情况,其作用会不会有不同?
中断服务程序时,什么机制保证同优先级中断不被嵌套?
单片机,如何实现跟踪其ram数据的读写?
ucosii里,任务堆栈大小如何估算?如何检测每个任务堆栈的最大使用上限(不借助内核API)?
对字符设备文件的读写操作具体是怎么关联到内核驱动程序中的相应操作的?
1G内核地址具体怎么操作4G虚拟空间?(光讲分段、分页还不够) swap具体的作用?
驱动开发中用户空间与内核空间哪些交互数据的方式?
ps命令显示进程有哪些状态?
IEEE802体系?Wifi架构?
未知头结点指针的链表,在给点节点之前插入新节点?
判断链表是否存在环?
内核用户数据交互(copy_to_user、copy_from_user)调用的最底层的函数或宏?
网络驱动要实现哪些必要的API?
对linux内核认识有多深?
《TCP/IP详解》几卷?滑动窗口?网关?路由?
29所:
如何保证系统的实时性?
哪些实时调度算法?
优先级反转?如何避免?
理光软件研究所:
控制算法误差的来源?fuzzy控制的具体原理?
在WSN中如何均衡节点的负载?
c语言如何处理异常?setjmp,longjmp具体怎么使用?
assert返回结果?debug和release版情况下的不同?
多态怎么实现的?虚指针、虚函数表内部结构?
多重继承的问题?
大量数据查找第2大的数?
连通域寻找标定算法?
ni:
从总线的角度描述机器人控制系统?
PID分别是什么?
********************************************************************
http://space.itpub.net/25835657/viewspace-696732
在Linux系统中,应用程序读写磁盘会经过哪些流程?思路:(APP-系统调用-VFS-(page cache)-block driver) (http://hi.baidu.com/_kouu/blog/item/06e432d2dd5692d5a9ec9aa0.html)
计算机系统中包含哪些并行的模块或者功能?(DMA,PipleLine,VLIW等)
虚拟机的架构和功能模块?(CPU,memory,IO虚拟化)
首先问驱动方面的东西,让画个网卡驱动原理说明,问的很细,比如你看的是哪款网卡,说到file_operation指针,就叫说明其中每个功能函数的作用等等
线性地址到物理地址的转换发生在什么时候
TCP协议,IP协议的功能
C中是怎么样做到类似C++那样面向对象的技术的,写一个用C表示继承的例子,Linux内核中有没有这样的例子?
i++是线程安全的吗?如果不是,你将怎么处理?
写一个C++中多态的例子。
说说linux内核中缓存机制里页缓存page cache原理是怎么样的?
说说Linux进程调度机制。
说说Linux内核同步机制中spin_lock,spin_lock_irq,spin_lock_irqsave都有什么区别,用在哪些场合中?
Linux里面进程间通信的方式及其区别。
Socket通信中listen操作和accept操作有什么区别。等待一个数据包的时候是停在哪一步?
以socket为例,说说异步传输与同步传输之间区别是什么?
说说Linux内核中TCP/IP协议栈中你觉得重要的几个点。