面试感言

来源:互联网 发布:协同过滤的算法有哪些 编辑:程序博客网 时间:2024/05/20 18:46

                做了三年多的嵌入式开发,但大部分是用户态的应用程序开发,涉及内核的东西很少。在面试时经常被问到是否做过驱动开发,才觉得自己的知识面太窄。《深入理解linux内核》,《linux设备驱动程序》这些书也都看过,但是没有相应的开发经验,无疑在面试一些网络安全设备厂商时处于劣势。

               面试时自己不会的东西如下:

               1 在多核CPU上,如果在多个核上同时运行一个进程,怎么实现数据的互斥,这个进程可能是多线程的。

               2 操作系统发生缺页异常时,页面置换的算法?

               3 netfilter中做SNAT时,有一个端口池,这些端口是怎么分配的?

               以上问题回答不出来,反映了我对CPU,对于操作系统的掌握很不够,平时也没有考虑这些问题,虽然做的portal认证模块中也有 线程池,但线程池中的线程全部运行在CPU的一个核上,另一个线程处理计费,授权,运行在另一个核上,通过一个全局变量的链表进行线程间通讯。线程间大量采用互斥锁。

              其实大部分中,小企业 面试时算法的题都不会很难,而我准备的《微软算法面试100题》基本上没有用到。嵌入式开发很重要的位运算我却掌握得不好,在面试hillstone和启明星辰时都没有做出来相应的面试题。