Intel 电话面试、一面、二面、三面全纪录 - 高飞网
6人看过

Intel 电话面试、一面、二面、三面全纪录

2014-05-21 01:25:30

电话面试

1多线程同步及各种方法的用途区别(三种)

2 当前Linux 页表是几级的

3 UFS&ext2的区别

4 2.4/2.6内核你知道的有哪些不同

5 进程调度算法,有哪些影响进程优先级的因素

一面

首先介绍项目,时间占了近20,然后问了一堆技术问题。

1 struct s {char a;short b;double c;}; sizeof(s),为什么要对齐。

2如何生成动态链接库

3 如何加载动态链接库

4 远程登陆和本地登陆的区别

5 如何控制socket等待连接的时间

6 Linux2-6.12.src.rpm 如何安装使Linux运行新的映像

7 Gcc 预处理选项-E

8 列举线程函数库

9 线程同步

10 fork &pthread_create

11 内核编程和用户编程的区别

12 copy_from_user函数是否可能阻塞

13 写脚本打印当前机子所有的用户名

14 perl 和python

15 安装了一个网卡驱动程序,把相关的网卡拔掉会出现什么问题

16 是否做过开源项目,用到那些工具

17 自己的爱好从事哪方面的开发?Kernel &app

18 数据结构的理解,内核中用到那些比较牛的数据结构,然后开始漫谈算法

19 写过什么模块吗?内核模块一般放在哪里?

20 自己的职业规划

21 malloc(100M)整个系统的动作,何时申请内存、缺页中断、阻塞等一系列问题

22 char *p = 0×1000; char a = *p; 编译、运行会有什么状况、解释原因

23 brk系统调用的理解,用户的交互

24 int main(){for(;;);return 0;} 这个代码运行后系统会有什么情况,内核如何感知?如何处理?

25 copy_from_user()函数可能阻塞吗?如果是,请举例,分析原因

 

二面

面试持续一个小时,比较深入的东西,让我感觉很爽。整个面试过程都是我再白板上写啊画啊,不停讨论。面试持续1小时,整个过程比较轻松就像是在交流。

1 介绍项目 15分钟左右。

2 文件系统讨论:

l 首先让我介绍UFS(sun的Solaris文件系统),其实跟linux的ext2很类似,我主要介绍了缓存机制:目录项缓存、i-node缓存,然后面试官问如果打开一个文件,文件的数据如何缓存呢?我说用页缓存机制,并画出了目录项、i-node、页结构之间的关系。

l 解释读取一个文件的过程?我就顺着read系统调用开始讲起,期间我提到了页面预读,他让我描述了页面预取的算法,然后说如果针对随即访问或者是针对lseek如何做预取优化?我简单介绍了我们实验室目前做的思路,先找出访问的规律,然后实现预取。

l 如果写一个文件,是一个怎样的过程?缓冲区的数据如何写到磁盘上?什么时候写回磁盘?

3、信号处理相关问题讨论

l Linux 支持多少信号?31个。如何产生信号?谁发送的?举几个信号的例子?有哪些信号是不可屏蔽的?

l 他介绍了idle进程,现在好多进程都设置了SIGALARM信号,从CPU睡眠节省电量的角度考虑,如何提高效率,如何优化,我说时钟中断来处理这些信号,同时对这些信号处理进程设计好的数据结构,他说这个问题可能太复杂,就没让我继续回答。

4 线程&进程讨论

l 线程&进程的区别以及优缺点?最重要的是线程间共享用户空间,这样可以节省内存,同时,调度时开销比较小,其它还有不少优缺点。

l 线程如何调度呢?我说其实内核根本不知道线程的存在,就是一般的进程调度,

l 线程同步有哪些方法?互斥锁、读写锁、信号量、条件变量。

l pthread_join函数的作用和用法是什么?我说根多进程的waitpid类似,等待指定线程的结束。

l 最新的线程库是NPTL?有什么新的特性?我说不太清楚,他说没关系。

5 脚本打印根目录下所有文件,并输出到一个文件中,我写了一个脚本,他说如何用一个命令来实现,我说用find / -type f >filelist即可。

6 socket做过项目吗?我如实回答:没有做过具体项目。

7 驱动&内核模块做过吗?

l 我简单介绍了我曾经做过的截取进程访问地址的内核模块。感觉比较满意就再问如何安装一个内核模块?我说insmod。

l 内核模块存放的位置是:这个问题上次面试就问过 呵呵J。

8 你用的Linux哪个发行版本?我回答FedoraCore,如何升级一个软件?我说用yum命令,他又问yum的基本工作原理是什么?我虽然不知道但是我肯定的说:先到指定网站上下载最新的安装包,然后用rpm –ivh升级。

9 C语言基础知识讨论

l foo(){static int a = 0;} 这里的变量a在进程空间存放的位置是哪里?在静态区;这条语句什么时候被执行,我说第一次调用foo时,只执行一次;

l struct S{char a;int b}; sizeof(struct S)是多少?我说8;为什么?字节对齐,为了提高访问效率。

l C语言考察的不是很深。

10 如何加载动态链接库?共享库呢?如何查找已经在内存的共享库?ldd命令的作用是什么?

11 mmap系统调用讨论

l 系统调用的返回值是什么?映射在用户空间的虚拟地址。

l mmap的实现过程能简单说说吗?我就根据看过的内核代码说了一下。

l 如果两个进程同时对一个文件执行mmap,进行写操作,会出现什么情况?

l mmap如何共享内存?

12 X-windows机制是什么?我说没做过UI程序,这方面不了解。

13 下面是我最后问他的几个问题:

l 工作的内容是什么?在Intel平台上做一个发行版操作系统,供其它厂商参考

l 你们招聘实习生吗?常年招聘,公司主页上可以查到

l 户口问题解决情况?这个下一面应该可以谈,他主要负责技术面试

l 他问:你要推荐同学过来?呵呵。

l 什么时间能有下一面的通知呢?他说我跟manager讨论一下,一周左右会有吧。

 

第三面 (hr面试)

这次效率高,两天就给消息了。中午本打算回去关机睡觉,想着会不会有电话啊,就开机睡觉了,果然12:40左右Intel打电话通知面试(终面)。

这次面试是一个manager,就算是最后的hr面试了,简单聊了一下,问了我有哪些offer了,我不好意思地说,“收到了三个offer了,百度这周也会有消息,听说Intel招聘冻结了,就业形势不好,收到腾讯的offer我就签腾讯了L”,他说:那怎么办?我说幸好还有一次违约的机会,他说:“那还好,这边准备给你offer了,就这两天的时间会发给你。”

待遇方面没说啥,说是两天左右会有收到offer,其中会有基本工资、股票、奖金等,可以自己算一下,做一些权衡。

还没有评论!
54.158.248.167