2022年牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结 .pdf
《2022年牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结 .pdf》由会员分享,可在线阅读,更多相关《2022年牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、综合面试 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux 编程,数据结构总结分类:面试准备2014-07-29 10:01 946 人阅读评论 (0) 收藏举报基础篇:操作系统、计算机网络、设计模式一:操作系统1. 进程的有哪几种状态,状态转换图,及导致转换的事件。2. 进程与线程的区别。3. 进程通信的几种方式。4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解) 5. 线程的实现方式. (也就是用户线程与内核线程的区别) 6. 用户态和核心态的区别。7. 用户栈和内核栈的区别。8. 内存池、进程池、线程池。(c+程序员必须掌握) 9. 死锁的概念,导致
2、死锁的原因. 10. 导致死锁的四个必要条件。11. 处理死锁的四个方式。12. 预防死锁的方法、避免死锁的方法。13. 进程调度算法。 (周转时间= 程序结束时间- 开始服务时间、 带权周转时间= 周转时间/ 要求服务时间 ) 14. Windows 内存管理的方式(块式、页式、段式、段页式). 15. 内存连续分配方式采用的几种算法及各自优劣。16. 动态链接及静态链接. 17. 基本分页、请求分页储存管理方式。18. 基本分段、请求分段储存管理方式。19. 分段分页方式的比较各自优缺点。20. 几种页面置换算法,会算所需换页数。(LRU用程序如何实现?) 21. 虚拟内存的定义及实现方式
3、。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报文的格式
4、,格式的各个字段的含义要理解。12.MTU 的概念,啥叫路径MTU? MTU 发现机制, TraceRoute(了解 )。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 7 页13.RIP协议的概念及算法。14.ICMP 协议的主要功能。15.组播和广播的概念,IGMP 的用途。 (环回地址、广播地址) 16.Ping 协议的实现原理,ping 命令格式。17. 子网划分的概念,子网掩码。18. IP地址的分类,如何划分的,及会计算各类地址支持的主机数。19.DNS的概念,用途,DNS查询的实现算法。20. TCP与 UDP 的概念,相
5、互的区别及优劣。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. 各种常用模式的用途,使用方法(类图
6、 )。2. 单例模式的双重检查实现。3. MVC 模式提高篇: WIN32、MFC 与 Linux 一:WIN32 1. Win32 应用程序的基本类型. 2. 创建 win32 窗口程序的几个步骤,及使用到的函数。3. nmake 与 makefile。4. 有哪些字符集?Win32 对于各种字符集如何进行兼容及转换?(wchar_t 、TCHAR 、TEXT() ) 。5. 怎么创建一个子窗口?在哪进行设置?6. 窗口类的分类,如何创建一个应用程序全局窗口类。7. Win32 窗口程序运行机制与控制台程序的运行机制有何区别? 8. Getmessage函数的作用,与Peekmessage函
7、数的区别。9. 发送 WM_QUIT 消息使程序终止的内部过程。11. TranslateMessage及 DispatchMessage 的作用。12. SendMessage 与 PostMessage的区别。13. Win32 消息机制获取消息的过程(先查看什么消息?再查看什么消息?) 14. 知 道 有 哪 几 类 主 要 的 消 息 。 (WM_CREATE, WM_DESTROY , WM_SIZE, WM_SYSCOMMAND, WM_COMMAND, WM_PAINT, 鼠标消息 , 键盘消息 )。15. 定时器如何使用。16. 用户自定义消息如何定义。17. 创建菜单、设置菜
8、单的函数,在哪处理菜单命令的消息。18. 加速键如何使用?19. GDI 绘图对象,使用的步骤,及函数。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 7 页20. 使用位图的步骤及用到的主要函数。21. 可用于文字绘制的API函数。22. 有模式对话框与无模式对话框的区别,创建步骤。收到的创建消息是什么?23. 子控件和父窗口通过什么进行通信?父窗口在哪里处理子窗口发送的消息?24. 有哪些常见的子控件?(静态框、编辑框、按钮、listbox、comboBox、滚动条 )25. 什么样的控件支持自绘制?26. 动态库与静态库的区别。2
9、7. Win32 里面怎样用静态库?C+程序在引用c 的静态库时,需要注意什么?28. Win32 里面动态库有哪几种导出方式,有哪几种导入方式?(注意c+的导出方式)29. Win32 里面文件打开和关闭的API。30. Windows 地址空间的划分。31. Windows 内存使用的几种方式及相应的函数(虚拟内存、堆内存、栈内存)。32. Malloc 内部调用A 函数, A 函数调用 B函数。 A 和 B 分别是什么?33. 内存映射文件的作用。主要函数。34. 创建进程和打开进程用什么函数?有什么区别?35. 创建线程用什么函数?试比较_beginthreadex 、_beginth
10、read 和 CreateThread 的区别。36. 关闭线程和关闭进程的函数分别是什么?试比较_endthreadex 、 _endthread 和 ExitThread 的区别。(36、37 解答:1)中有很详细地介绍。_beginthreadex 是微软的C/C+运行时库函数,CreateThread 是操作系统的函数。_beginthreadex 通过调用 CreateThread 来实现的,但比CreateThread 多做了许多工作。注意:若要创建一个新线程,绝对不要使用CreateThread,而应使用 _beginthreadex. Why?考虑标准C运行时库的一些变量和函数
11、,如errno,这是一个全局变量。全局变量用于多线程会出什么事,你一定知道的了。故必须存在一种机制,使得每个线程能够引用它自己的errno 变量,又不触及另一线程的errno 变量 ._beginthreadex 就为每个线程分配自己的tiddata 内存结构。 该结构保存了许多像errno 这样的变量和函数的值、地址(自己看去吧)。通过线程局部存储将tiddata 与线程联系起来。具体实现在Threadex.c 中有。结束线程使用函数_endthreadex 函数,释放掉线程的tiddata数据块。2)解释一下理论上的区别:CreateThread、 _beginthread 和_begin
12、threadex 都是用来启动线程的,但大家看到oldworm没有提供_beginthread 的方式,原因简单,_beginthread 是_beginthreadex 的功能子集,虽然_beginthread 内部是调用 _beginthreadex 但他屏蔽了象安全特性这样的功能,所以 _beginthread 与 CreateThread 不是同等级别, _beginthreadex和 CreateThread 在功能上完全可替代,我们就来比较一下_beginthreadex与CreateThread! CRT的函数库在线程出现之前就已经存在,所以原有的CRT不能真正支持线程,这导致我
13、们在编程的时候有了CRT库的选择,在MSDN中查阅 CRT的函数时都有:Libraries LIBC.LIB Single thread static library, retail version LIBCMT.LIB Multithread static library, retail version MSVCRT.LIB Import library for MSVCRT.DLL, retail version 这样的提示!对于线程的支持是后来的事!这也导致了许多CRT的函数在多线程的情况下必须有特殊的支持,不能简单的使用CreateThread 就OK。大多的 CRT函数都可以在Cre
14、ateThread 线程中使用, 看资料说只有signal()函数不可以, 会导致进程终精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 7 页止!但可以用并不是说没有问题!有些 CRT的函数象 malloc(), fopen(), _open(), strtok(), ctime(), 或 localtime() 等函数需要专门的线程局部存储的数据块,这个数据块通常需要在创建线程的时候就建立,如果使用CreateThread,这个数据块就没有建立, 然后会怎样呢?在这样的线程中还是可以使用这些函数而且没有出错,实际上函数发现这个数据块的
15、指针为空时,会自己建立一个,然后将其与线程联系在一起,这意味着如果你用CreateThread 来创建线程,然后使用这样的函数,会有一块内存在不知不觉中创建,遗憾的是,这些函数并不将其删除,而CreateThread 和 ExitThread 也无法知道这件事,于是就会有Memory Leak,在线程频繁启动的软件中(比如某些服务器软件),迟早会让系统的内存资源耗尽!_beginthreadex( 内部也调用CreateThread)和_endthreadex 就对这个内存块做了处理,所以没有问题! (不会有人故意用CreateThread 创建然后用 _endthreadex 终止吧, 而且
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程 数据结构总结 2022 年牛人 整
链接地址:https://www.taowenge.com/p-36264287.html
限制150内