面试总结

来源:互联网 发布:开淘宝店空挂商品 编辑:程序博客网 时间:2024/05/17 15:38

人生第一次面试。。哈哈是思科数据中心交换机事业部-嵌入式软件开发岗位。总结一下吧。

  • 在进行面试之前先做了几个脑筋急转弯。主要是看你细不细心,思维灵不灵活吧。
    1、一行代码判断某个数是不是2的幂
    2、找质数
    3、1加到n
    4、交换一个数的每个位

1、VLAN位于哪一层?
局域网交换机的引入,使得网络节点间可以独享带宽,但是,对于二层广播报文,二层交换机会在各网络节点上进行广播;同时对于二层交换机无法识别的MAC地址,也必须在广播域内进行广播。当多个二层交换机级联时,二层交换网络上的所有设备都会收到广播消息。在一个大型的二层广播域内,大量的广播使得二层转发的效率大大降低,为避免在大型交换机上进行的广播所引起的广播风暴,需要在一个二层交换网络上进一步划分多个虚拟网。在一个虚拟网内,由一个工作站发送的信息只能发送到具有相同虚拟网号的其它站点,其它虚拟网的成员收不到这些信息或广播帧。采用虚拟网可以控制网络上的广播风暴和增加网络的安全性。不同虚拟网之间的通信必须通过路由器进行。

2、希尔排序
3、多进程的通信机制有哪些
参考 http://blog.csdn.net/Blues1021/article/details/44336797?ref=myread

  • 进程空间和多进程父子关系
    进程是分配资源的最小单位(进程内存空间)。fork后,子进程会复制父进程的task_struct结构;并为子进程的堆栈分配物理页(开始只是标记为只读的),延迟到当父或子进程尝试写这些区域,内核才为修改的那边内存拷贝副本。

  • 进程间通信方式
    1、共享内存(share memory),信号量(semaphore)
    2、消息队列(message queue),信号(signal)
    3、文件(file),匿名管道(pipe)/命名管道(name pipe),套接字(socket)。
    说到子进程只是一个额外的流程,那他跟父进程的联系和区别是什么呢?
    我很想建议你看看Linux内核的注解(有兴趣可以看看,哪里才有本质上的了解),总之fork后,子进程会复制父进程的task_struct结构,并为子进程的堆栈分配物理页。理论上来说,子进程应该完整的复制父进程的堆、栈以及数据空间。但是2者共享正文段。
    关于写时拷贝:由于一般fork后面都接着exec,所以,现在的fork都在用写时拷贝技术,顾名思义就是数据段,堆,栈一开始并不复制,由父、字进程共享,并将这些内存设置为只读。直到父,子进程一方尝试写这些区域,内核才为需要修改的那片内存拷贝副本,这样做可以提高fork的效率。
    由于多进程要并发协调工作,进程间的同步,通信时在所难免的。
    Linux下进程通信的集中主要手段简介:

    1. 管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道客服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。
    2. 信号(Signal):信号是比较复杂的通信方式,用于通知接收进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;Linux除了支持Unix早期信号语义函数Signal之外,还支持语义符合Posix.1标准的信号函数sigaction
    3. 消息(Message)队列:消息队列是消息的链接表,包括Posix消息队列system V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道智能承载无格式字节流以及缓冲区大小受限的缺点。
    4. 共享内存:使得多个进程可以范文同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。
    5. 信号量:主要作为进程间以及同一进程不同线程间的同步手段。
    6. 套接字(socket)

4、嵌入式软件的调试方法
5、哈希算法
6、ARP是什么,有什么作用
7、什么是死锁,怎么预防
8、NFS哪个是服务器
9、怎么调试内核,为什么不用模块的方法
10、Linux文件系统下面有哪些文件夹,这些文件夹各有什么用处
11、用一行命令查找某个文件中某个字符串
12、遇到过最复杂的问题,并说明你是怎么解决的
13、给一本书,让你统计每个词出现的频率
14、如果要查看词频前10个怎么做
15、手机上I2C连接哪个器件

海康威视嵌入式开发岗位。完成思科的面试就着急的打了个滴滴去海康的面试现场,问的比较随意。

1、有没有看过代码大全
2、指针的优缺点,以及怎么克服
3、嵌入式Linux在上电的整个启动过程

纵目科技,嵌入式Linux软件开发。我很喜欢的一家公司,也非常真诚。相对来说也问的比较简单。但是经验是,技术面当时没有突出自己做过的项目,HR面过早的摊牌自己对薪资的要求。

1、进程和线程的区别
2、MMU、页表、Cache和TLB各自的优缺点及作用(笔试)
3、用一行命令查找某个文件并重命名它
4、对某文件夹下面所有文件进行打包压缩(斐讯笔试)