面试问题之编程语言:
1. c++的特点是什么?
封装,继承,多态,支持面向对象和面向过程的开发
2. c++的异常处理机制?
抛出异常和捕捉异常进行处理。
3. c++和c,java的区别?
c是纯过程,c++是对象加过程,java是存面向对象
4. 纯虚函数?
被virtual修饰的成员函数,再基类不能实现,而他的实现放到派生类中实现
- 什么是内存泄漏?
申请了一块内存空间,使用完毕后没有释放掉
计算机网络:
TCP/IP分层
- 五层模型:
物理层,数据链路层,网络层,运输层,应用层 - 七层模型:
物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
3. TCP和UDP的区别
- Tcp需要建立连接,UDP不需要建立链接
- Tcp为可靠传输,UDP为不可靠交付
- UDP实时性比较好,TCP可靠
- TCP为点对点 UDP支持(一、多)对(一、多)
4. 拥塞控制和流量控制
- 流量控制:如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失
- 拥塞控制:拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载
- 两者的区别:流量控制是为了预防拥塞。如:在马路上行车,交警和红路灯是流量控制,当发生拥塞时,如何进行疏散,就是拥塞控制。流量控制指点对点通信量的控制,而拥塞控制是全局性的。涉及所有的因素
操作系统:
1. 操作系统的特点:
- 共享:资源可被多个并发执行的进程使用
- 并发:可以在同一时间间隔处理多个进程,需要硬件支持
- 虚拟:将物理实体映射成多个虚拟设备
- 异步:进程执行走走停停,每次进程执行速度可能不同,但OS需保证进程每次执行结果相同
2. 操作系统的功能主要是什么?
- 处理机管理
- 存储器管理
- 设备管理
- 文件管理
3. 操作系统发展过程?
- 无操作系统
- 单道批处理
- 多道批处理
- 分时
- 实时
4. 进程和线程的区别?
- 进程包含线程
- 同一进程内的线程可以共享进程空间
- 进程是资源分配的最小单位,线程是程序执行的最小单位
5. 进程的五种状态?
创建、就绪、阻塞、执行、终止
6. 产生死锁的原因有哪些
- 对互斥资源分配不当
- 进程推进顺序不当
7. 处理产生斯说的办法?
- 预防死锁
- 避免死锁
- 检测死锁
- 解除死锁
8. 死锁的产生和避免
- 互斥条件:资源不能被共享,只能由一个进程使用。
- 请求与保持条件:已经得到资源的进程可以再次申请新的资源。
- 非剥夺条件:已经分配的资源不能从相应的进程中被强制地剥夺。
- 循环等待条件:系统中若干进程组成环路,该环路中每个进程都在等待相邻进程正占用的资源。
9. 页面置换算法?
- 最佳置换算法OPT
- 先进先出置换算法FIFO
- 最近最久未使用算法LRU
- 时钟算法LOCK改进型时钟算法
10. 批处理作业调度算法?
1) 先来先服务FCFC
2) 最短作业优先SJF
3) 最高响应比优先HRN
4) 多级队列调度算法
11. 进程调度算法?
- 先进先出FIFO
- 时间片轮转算法RR
- 最高优先级算法HPF
- 多级队列反馈算法
12. 什么是中断?
中断的引入(外中断):为了支持CPU与设备之间的并行操作
异常的引入(内中断):表示CPU执行指令本身时出现的问题
13. 处理机调度有哪几层?
1)高级调度(后备作业->内存)
2)中级调度(进程->外存)
3)低级调度(进程/线程调度)
14. 页面置换算法有哪些
1)最佳页面置换算法
2)最近最久未使用算法
3)时钟置换算法
15. I/O控制方法有哪些?
1)程序控制I/O方式
2)中断驱动方式
3)DMA
16. 存储器的层次结构有哪些?
1)外存、主存、快速缓存、寄存器
17. 存储管理方案有哪些?
1)分区存储管理
2)分页存储管理
3)分段存储管理
4)段页式存储管理
5)虚拟存储管理
18. 设备管理采用的相关缓冲技术有哪些?
1)通道技术(使数据传输独立于CPU)(增加设备到主机之间的通路,使主存和设备之间有两条以上的通路)
2)DMA技术(数据在主存与I/O设备间直接成块传送)
3)缓冲技术(硬件缓冲、软件缓冲)
4)Spooling技术(使独占设备虚拟为多台设备)
如果觉得本篇文章还不错的话,点个赞再走呗,谢谢臭宝子们了