面试笔试重点总结:操作系统、计算机网络、设计模式
操作系统
1. 进程的有哪几种状态,状态转换图,及导致转换的事件。
2. 进程与线程的区别。
3. 进程通信的几种方式。
4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解)
5. 线程的实现方式. (也就是用户线程与内核线程的区别)
6. 用户态和核心态的区别。
7. 用户栈和内核栈的区别。
8. 内存池、进程池、线程池。(c++程序员必须掌握)
9. 死锁的概念,导致死锁的原因.
10. 导致死锁的四个必要条件。
11. 处理死锁的四个方式。
12. 预防死锁的方法、避免死锁的方法。
13. 进程调度算法。(周转时间 = 程序结束时间 -- 开始服务时间、带权周转时间= 周转时间 / 要求服务时间)
14. Windows内存管理的方式(块式、页式、段式、段页式).
15. 内存连续分配方式采用的几种算法及各自优劣。
16. 动态链接及静态链接.
17. 基本分页、请求分页储存管理方式。
18. 基本分段、请求分段储存管理方式。
19. 分段分页方式的比较各自优缺点。
20. 几种页面置换算法,会算所需换页数。(LRU用程序如何实现?)
21. 虚拟内存的定义及实现方式。
22. 操作系统的四个特性。
23. DMA。
24. Spooling。
25. 外存分配的几种方式,及各种优劣。
计算机网络
1. 电路交换与分组交换的区别?优劣对比。
2. OSI有哪几层,会画出来,知道主要几层的各自作用。
3. TCP/IP有哪几层,会画出来,知道所有层数的作用,会列举各层主要的协议名称。
4. 硬件(MAC)地址的概念及作用。
5. ARP协议的用途 及算法、在哪一层上会使用arp ?
6. CRC冗余校验算法,反码和检验算法。
7. 如何实现透明传输。
8. 知道各个层使用的是哪个数据交换设备。(交换机、路由器、网关)
9. 路由表的内容。
10. 分组转发算法。
11. IP报文的格式,格式的各个字段的含义要理解。
12.MTU的概念,啥叫路径MTU? MTU发现机制,TraceRoute(了解)。
13.RIP协议的概念及算法。
14.ICMP协议的主要功能。
15.组播和广播的概念,IGMP的用途。(环回地址、广播地址)
16.Ping协议的实现原理,ping 命令格式。
17. 子网划分的概念,子网掩码。
18. IP地址的分类,如何划分的,及会计算各类地址支持的主机数。
19.DNS的概念,用途,DNS查询的实现算法。
20. TCP与UDP的概念,相互的区别及优劣。
21.UDP报文的格式,字段的意义。
22. TCP 报文的格式,字段的意义。
23.TCP通过哪些措施,保证传输可靠?
24. 三次握手,四次断开过程。
25. TIME_WAIT状态的概念及意义。
26.滑动窗口协议 与停止等待协议的区别。
27. TCP的流量控制和拥塞控制实现原理(会画拥塞控制的典型图)。
28.TCP的快速重传与快速恢复算法。
29.TFTP 与 FTP的区别。
30.阻塞方式和非阻塞方式,阻塞connect与非阻塞connect。(比较难,有兴趣可以了解)
31. HTTP基本格式。(java程序员必须掌握)
设计模式
1. 各种常用模式的用途,使用方法(类图)。
2. 单例模式的双重检查实现。
3. MVC模式