欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CS考研复试面试问题总结

程序员文章站 2024-03-20 14:54:40
...

文章目录

计算机网络

1、计算机性能指标?

  1. 速率:每秒传输的比特率 。单位是b/s、kb/s、Mb/s等
  2. 带宽:数字信道所能传输的最高比特率。高速上车道数量好比是带宽,车辆数目是传输的数据。
  3. 吞吐量:单位时间内通过某个网络的比特率。
  4. 时延

带宽是没有损耗的情况下能传输的最大比特数。

吞吐量是在有损耗下传输的最大比特数,主要用来测试系统性能。

2、协议三要素?

实体:交换信息的硬件或软件进程

协议:对等实体之间的通信规则

三要素:

  1. 语法:就是规则和格式
  2. 语义:所表达的意思
  3. 时序:先执行什么,后执行什么

3、计算机网络体系结构?

  1. 应用层:能够产生网络流量并和用户进行交互的应用程序。 HTTP、HTTPS、DHCP、DNS
  2. 表示层:传输前是否压缩、加密
  3. 会话层:客户端和服务端建立会话。
  4. 传输层:可靠传输、流量控制、拥塞控制、不可靠传输
  5. 网络层:IP编址、路由选择
  6. 数据链路层:封装成帧、透明传输、差错校验
  7. 物理层:如何在物理媒介上传输比特流

4、计算机网络为什么要分层?优点?

复杂的程序都要分层。计算机科学领域的任何问题都可以通过增加一个中间层来间接解决。

优点:

  1. 各层之间相互独立。低耦合高内聚,各司其职。
  2. 易于实现和维护。

5、信道?

一般表示向一个方向传送信息的媒体。包含发送、接收信道。

6、单工、半双工、全双工通信?

单工通信:就是单向通信,只有一个方向的通信而没反方向

半双工通信:就是双向交替通信。通信双方不可以同时发送/接受消息

全双工通信:就是双向同时通信。通信双方可以同时发送/接受消息

7、 串行和并行传输?

串行传输:数据只能一个bit一个bit的传输。因此发送端和接受端只需要一条传输线路

并行传输:数据可以n个bit一起传输。因此发送端和接受端可以有n条传输线路

8、网卡?

概念:又称网络适配器,是电脑与局域网相互连接的设备

功能:

  1. 与CPU进行并行传输,与局域网进行串行传输
  2. 对数据进行缓存
  3. 在OS安装设备驱动程序

9、MAC地址?可以修改吗?

1、MAC地址是什么?

又叫物理地址,是由48位的16进制数字组成。

前24位是为了区分生产厂家;后24位是厂家自己分配,用来识别MAC地址用于局域网通信。

2、可以修改嘛?

本来设计的是唯一的,但是后来设备变多,出现了虚拟网卡。所以逻辑上可以修改,但是至少保证一个局域网唯一,以便在没有IP地址的时候通过MAC地址进行通信来获取IP地址。

10、网络包到达网关时,可以通过路由表得到下一跳的IP地址,直接通过IP地址找就可以了,为什么还需要MAC地址呢?

原因一:在网络上跑的包都是完整的,可以有下层没上层,绝不可能有上层没下层

原因二:网络包有源IP、目标IP、源MAC、目标MAC。在路由器中获得的下一跳IP地址没地方放啊。所谓下一跳看起来是IP地址,其实是通过ARP获取下一跳的MAC地址放到目标MAC地址上

11、为什么不直接用MAC地址进行通信呢?

全球有各种各样的网络设备,要想让这些异构网络进行通信就需要维护一个庞大的MAC地址映射表,这是不可能完成的。

12、IP地址是什么?

IP地址是有网络号主机号组成。网络号相等于电话区号,主机号相当于电话号码

IP地址是32位二进制构成,用点分十进制进行表示,分为A、B、C、D、E类地址。

13、IP地址和MAC地址的关系?

  1. IP与设备并不总是相对应,在局域网中是动态分配的,如果我下线了IP就会分配给别人;MAC地址出厂时就写在了设备上,因此是一一对应的,所以局域网用MAC地址通信没问题。
  2. IP是地址,有定位功能。MAC是身份证,无定位功能。
  3. IP用于广域网之间的,MAC用于局域网之间通信。
  4. MAC地址决定了数据帧是下一跳的哪个设备接受,IP地址决定数据包的起点和终点。

14、集线器,网桥,交换机,路由器之间的区别

冲突域:同一物理网段中的所有计算机构成一个冲突域

广播域:网络中能收到任意设备发出的广播帧构成一个广播域

集线器:工作在物理层,就是简单的把各个终端连在一起。没有存储转发功能,终端过多,会引起广播风暴。

网桥:工作在数据链路层,有存储转发功能。可以根据MAC地址映射表把帧发到具体的终端上。主要用于连接两个局域网。

交换机:理解为高级网桥,比网桥性能好。主要用来连接独立的计算机。比网桥端口多。

路由器:工作在网络层,将局域网连接到广域网。根据路由算法,选择合适的下一跳地址。

15、数据链路层三个基本问题?

  1. 封装成帧:加上帧头帧尾。
  2. 透明传输:不管从键盘输入什么字符都可以通过帧传输
  3. 差错控制:CRC(循环冗余检查)、FSC(帧检验序列)

16、动态路由算法?

1、距离矢量路由算法

  1. 路由器的路由表保存着到达目标路由器从哪个口出去和距离
  2. 每个路由器都知道全局信息,通过周期性广播更新路由表

缺点:

  1. 好消息传得快,坏消息传得慢
  2. 每次广播都需要发送整个路由表,性能低。早期RIP(Routing Information Protocol,路由信息协议)协议就是基于这个算法,适用于小于15跳的小型网络。

2、链路状态路由算法

基于数据结构中的迪杰斯特拉算法,此算法是求最小路径的

17、动态路由协议?

内部网关协议–用于自治系统内

  1. 基于链路状态路由算法的开放最短路径优先OSPF,OSPF是直接基于IP协议发送的,而且OSPF的包都是发给邻居的,也即只有一跳,不会中间经过路由设备。
  2. 基于距离矢量路由算法的RIP

外部网关协议 --用于自治系统之间

基于距离矢量路由算法的BGP

18、三次握手、四次挥手图

三次握手

CS考研复试面试问题总结

四次挥手

CS考研复试面试问题总结

19、什么是面向连接?

连接是一种状态即彼此感受到双方的存在,建立连接是维护一种状态,维护这种状态就需一定的数据结构。

所谓的面向连接就是通过一定的数据结构来维护双方面向连接的特性。

20、TCP协议关注的问题

1、顺序问题,稳重不乱–>序号

2、丢包问题,承诺靠谱–>确认序号

3、连接维护,有始有终–>三次握手建立连接,四次挥手释放连接

4、流量控制,把握分寸

5、拥塞控制,知进知退

21、TCP如何保证可靠传输?

通过连续自动重传机制累计确认来保证!

22、为什么不是二次握手而是三次握手?

原因一:防止失效的请求再次到达服务端建立连接

客户端发送第一次请求,由于网络不好绕了原路,就以为丢失了,就发送了第二次请求然后建立了连接。完了之后绕了原路的包到达了服务端,此时服务端误以为客户端又要连接新的连接,于是返回确认包,同意建立连接。此时客户端不会理睬,但是服务端却在等待客户都发送数据,服务端的资源就白白浪费掉了

原因二:三次才能让双方都知道自己和对方的发送消息和接受消息的能力没问题

23、为了可靠为什么不是四次握手?

四次握手也可以,就是40次都可以。关键是400次都不一定能保证真正可靠。

所以建立连接是请求,应答,应答之应答;这样让双方的消息都有去有回就可以了

24、为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?

假想网络是不可靠的,有可能最后一个ACK包丢失。所以需要等待2MSL用来重发可能丢失的ACK包

25、为什么建立连接是三次握手,关闭连接确是四次挥手呢?

建立连接时,服务端收到SYN后,把SYN和ACK放到一个报文里发给客户端。

关闭连接,服务端ACK和FIN一般都会分开发送,从而导致多了一次

26、TCP和UDP区别?

TCP与UDP的区别

  • TCP是面向连接的,UDP是无连接的;
  • TCP是可靠的,UDP是不可靠的;
  • TCP只支持点对点通信,UDP支持一对一、一对多、多对一、多对多的通信模式;
  • TCP是面向字节流的,UDP是面向报文的;
  • TCP有拥塞控制机制;UDP没有拥塞控制,适合媒体通信;
  • TCP首部开销(20个字节)比UDP的首部开销(8个字节)要大;

TCP与UDP的应用场景不同

TCP :SSH安全登录(SSH是一种网络协议,用于计算机之间的加密登录)、HTTP、HTTPS、FTP

UDP :

  • QUIC(快速 UDP 互联网连接)用于手机APP和网页的访问
  • 流媒体
  • 实时游戏
  • QQ语音、QQ 视频

27、DNS域名解析过程?

DNS:将域名解析为IP地址

CS考研复试面试问题总结

  1. 客户端向本地 DNS 发送 DNS 请求,解析 www.163.com 的 IP 地址。

    • 本地 DNS 是由网络服务商(ISP)自动分配。
  2. 本地 DNS 在缓存中找到与域名对应的 IP,返回;否则,请求根 DNS。

    • 根 DNS 是最高层次的,全球共13套,不直接解析域名,但能指出下一步访问谁。
  3. 根 DNS 发现是后缀 .com,返回 .com 的* DNS 的地址。

  4. 本地 DNS 转向问* DNS。

  5. * DNS 返回 www.163.com 区域的权威 DNS 的地址。

  6. 本地 DNS 转向问权威 DNS,权威 DNS 解析了 IP 后返回。

  7. 本地 DNS 将 IP 地址返回给客户端。

28、DHCP过程?

DHCP全称Dynamic Host configuration protocol, 动态主机配置协议。它可以为客户机自动分配IP地址、子网掩码以及缺省网关、DNS服务器的IP地址等TCP/IP参数。DHCP的前身是BOOTP,DHCP是BOOTP的增强版。

CS考研复试面试问题总结

DHCP的实现分为4步,分别是:

第一步:Client端在局域网内发起一个DHCP Discover包,目的是想发现能够给它提供IP的DHCP Server。

第二步:可用的DHCP Server接收到Discover包之后,通过发送DHCP Offer包给予Client端应答,意在告诉Client端它可以提供IP地址。

第三步:Client端接收到Offer包之后,发送DHCP Request包请求分配IP。

第四步:DHCP Server发送ACK数据包,确认信息。

29、点击网页一次HTTP请求过程?

1、HTTP请求的准备

  1. 通过DNS将域名解析为IP地址

  2. 通过TCP三次握手建立连接

2、HTTP请求的构建

  1. 请求行
    • 请求方法
      • get
      • post (创建一个资源)
      • push(修改一个资源)
      • delete
  2. 请求头(key - value)
    • Contenet-Type:告诉服务器,请求的正文格式
    • If-Modified-Since:告诉服务器,缓存文件的最后修改日期
      • 如果服务器更新了数据,就应该下载最新的数据
      • 如果没有更新数据,就返回 " 304 Not Modified "
    • Cache-control:用来控制缓存的。
      • 当客户端发送的请求中包含 max-age 指 令时,
      • 如果判定缓存层中,资源的缓存时间数值比指定时间的数值小,那么客户端可以接受缓存 的资源;
      • 当指定 max-age 值为 0,那么缓存层通常需要将请求转发给应用集群
  3. 空格(必须的)
  4. 请求体(POST请求才有请求体)

3、HTTP请求的发送

  1. HTTP请求是基于TCP的
    • TCP+端口号就形成了套接字socket,通过socket来进行通信。
    • TCP来保证可靠传输,如果服务器没收到,TCP会重试,但是HTTP是不知道的
  2. TCP层发送数据时,将源IP地址和目标IP地址放到IP头,交给IP层去处理
  3. IP层属于网络层
    • 通过将IP&子网掩码得到网络号来判断是否在同一网段
    • 如果是,就发送ARP请求获取目标MAC地址,然后将源MAC和目标MAC放到MAC头发出去
    • 如果不是,就发送ARP请求获取网关MAC地址,然后将源MAC和目标MAC放到MAC头发出去
  4. 网关收到包发现MAC符合,就取去掉MAC头,取出目标IP地址,根据路由协议找到下一跳路由器。
  5. 就这样一跳一跳就到了最后一个路由器,这个路由器发现目标IP地址就在右手边一个局域网内,于是发送ARP请求目标MAC地址,将包发出
  6. 目标机器发现MAC符合,IP符合,通过IP层种的协议就知道上一层是TCP协议,根据TCP中的***就知道是否是自己需要的包,是就回一个ACK,不是就丢弃
  7. 根据TCP中的端口号,就知道是谁监听这个端口。HTTP服务进程看到,这个请求时访问一个网页,于是将网页发给客户端

4、HTTP返回的构建

  1. 状态行
    • 200 成功
    • 301 代表永久性转移
    • 302 代表暂时性转移
    • 400 客服端有错误,服务端不接受
    • 401 未经授权
    • 403 禁止访问
    • 500 服务端错误
  2. 响应头
  3. 空行
  4. 响应正文

5、HTTP响应

1、构造好返回的报文,将其交给Socket发送,还是到TCP层,让TCP将返回的HTML,也分成一个个小段,并且保证每个段都可到达

2、这些段加上TCP头后交给IP头,按刚才发送的过程反向走一遍。两次走的路径不一定相同,但是逻辑过程一样。

3、客户端发现 MAC 地址符合、IP 地址符合,于是就会交给 TCP 层。根据***看是不是自己要的报文段,如果是,则会根据 TCP 头中的端口号,发给相应的进程。这个进程就是浏览器,浏览器作为客户端也在监听某个端口

4、浏览器拿到HTTP报文。发现返回 “200”,一切正常。解析HTML,展示出一个绚丽多彩的网页。

31、cookie和session区别?

cookie:是客户端技术,因为HTTP请求时无状态的,所以服务器会把数据以cookie的形式返回给浏览器,当再次访问的时候浏览器就带着cookie来访问

session:是服务端技术,服务端会为每个用户都创建一个独享的session对象,服务端将JSESSIONID通过的cookie返回给浏览器,当再次访问时,浏览器就根据JSESSIONID去session对象取数据,安全可靠。

32、get和post请求区别?

CS考研复试面试问题总结

33、HTTP和HTTPS有什么区别?

  1. 安全性不同

    • HTTP协议位于TCP之上,明文传输,通信双方无法验证对方身份;

    • HTTPS协议是在HTTP和TCP之间添加了SSL协议构建的可进行加密传输身份认证的网络协议

  2. 端口不同。

    • HTTP端口是80;
    • HTTPS是443
  3. 消耗资源不同

    • 和HTTP通信相比,HTTPS通信会由于加密解密密会消耗更多的CPU和内存资源;
  4. 开销不同

    • HTTPS通信需要证书,而证书一般需要向认证机构购买

操作系统

1、基础

操作系统是什么?

  1. 从中间往两边看,是软件和硬件资源的管理者;并进行合理的组织和调度计算机的工作和资源的分配。
  2. 从上往下看,是提供给用户的接口。
  3. 从下往上看,是最基本的系统软件。

操作系统的特点?

并发、共享、虚拟、异步

并发和共享是操作系统最基本的特点,没有并发和共享就谈不上虚拟和异步

操作系统的功能?

  1. 作为系统资源的管理者
    • 进程管理
    • 内存管理
    • 文件管理
    • 设备管理
  2. 作为提供给用户的接口
    • 程序接口:由一组系统调用组成
    • 命令接口:脱机命令接口、联机命令接口
    • 图形用户接口

原语是什么?

1. 是最接近底层硬件一种特殊的程序

2. 具有原子性,执行必须一气呵成
3. 执行时间短,调用频繁
4. 原语采用"关中断指令"和"开中断指令"实现原子操作的

中断是什么?

  1. 中断是为了能使多道程序并发执行而引入的一种技术。
  2. 进程的管理和调度、I/O的输入输出、系统功能使用、文件访问无不依赖中断机制
  3. 中断是CPU从用户态进入核心态的唯一途径
  4. 中断分为内中断、外中断

系统调用是什么?

  1. 是操作系统提供给用户的接口(可以理解为一种特殊的函数)
  2. 用户在程序中通过系统调用才能获取操作系统服务

系统调用和库函数的区别?

  1. 系统是操作系统提供给上层的接口
  2. 库函数是对系统系统调用的进一步封装
  3. 当今大多数应用程序都是通过高级语言提供的库函数的间接的进行系统调用。

系统调用和中断的区别?

区别:

  1. 中断是由外设产生, 无意的, 被动的 。
  2. 系统调用是由应用程序请求操作系统提供服务产生, 是有意的,主动的;要从用户态通过中断进入内核态。

联系:

  1. 中断过程:中断请求 中断响应 断点保护 执行中断服务程序 断点恢复 中断返回
  2. 系统调用过程:应用程序在用户态执行时请求系统调用,中断,从用户态进入内核态,在内核态执行相应的内核代码。

2、进程

进程概念及的三个组成部分?

  1. 进程的三个组成部分是程序段、数据段、PCB。这三部分组成进程映像,一般把进程映像简称为进程。

  2. 引入进程映像后,就可以把操作系统定义为是进程映像的运行过程。

PCB是什么?

  1. 是什么?

PCB是系统为运行的程序配置的一种数据结构。所谓进程的创建和撤销都是对PCB操作。PCB是进程存在的唯一标识!

  1. 包含什么?
    1. 进程描述信息(如进程标识符PID)
    2. 进程的控制和管理信息(如进程的状态和优先级)
    3. 资源分配清单
    4. PU相关信息(各种寄存器的值)

进程有哪几种状态?

新建、就绪、运行、阻塞、终止

进程的组织方式?

  1. 链接:根据进程状态将PCB分为多个队列

  2. 索引:根据进程状态建立索引表

进程的通信方式?

  1. 共享通信:设置一个共享空间,各进程互斥访问
  2. 管道通信:设置一个特殊的共享通道,就是缓冲区。一个管道只能实现半双工通信,二个管道才能全双工通信
  3. 消息传递:将数据格式化,通过发送/接受两个原语实现通信

临界资源和临界区是什么?

  1. 临界资源:一段时间只允许一个进程使用的资源。
  2. 临界区:访问临界资源的那段代码。

进程和线程的区别?

  1. 资源分配
    • 进程是资源分配的基本单位;
    • 线程不拥有资源,但是可以访问隶属于进程的资源
  2. 调度单位
    • 引入线程后,线程就是系统调度独立单位
  3. 系统开销
    • 创建和撤销进程时,系统要进行分配和回收资源。所以进程开销大。
    • 线程只要保存少量寄存器的值,开销小。
  4. 通信方面
    • 进程需要进程同步和互斥手段辅助。
    • 线程之间可以通过读/写同一进程中的数据进行通信

进程调度算法?

  1. 批处理系统
    1. 先来先服务(FCFS)
    2. 短作业优先(SJF)
    3. 最短剩余时间优先(抢占式短作业优先)
    4. 高响应比优先 响应比 = (等待时间 + 要求服务时间 ) / 要求服务时间
  2. 交互式系统
    1. 时间片轮转
    2. 优先级调度
    3. 多级反馈队列
  3. 比较
    1. FSFC考虑到等待时间,公平
    2. SJF考虑到运行时间
    3. 时间片轮转可以让每个进程都得到及时响应
    4. 优先级调度算法可以灵活处理紧急任务
    5. 而多级反馈队列就对上面进行折中权衡

进程切换的过程?

进程切换通过原语无非做三件事

  1. 更新PCB中的信息(修改进程状态标志,将运行境保存到PCB,从PCB恢复运行环境)
  2. 将PCB插入合适的队列
  3. 分配/回收资源

进程互斥的方式?

  1. 软件实现方法
    1. 单标志法
    2. 双标志先检查法
    3. 双标志后检查法
    4. Peterson算法
  2. 硬件实现方法
    1. 中断屏蔽方法
    2. TestAndSet方法
    3. Swap指令

信号量机制是什么?

  1. 信息量其实就是一个变量,可以用一个信号量表示系统中某种资源的数量
  2. 用户进程可以通过使用操作系统提供的一对原语来对信号量进行操作,从而实现进程互斥,进程同步
  3. 一对原语wait(s) 和 signal(s) 简称P、V 操作(来自荷兰语proberen,verhogen)
  4. 信号量机制又分为整型信号量、记录型信号量

管程是什么?

  1. 定义:管程是由一组数据和对这组数据的操作组成的软件模块

  2. 组成:

    1. 局部于管程的共享结构数据说明(类的属性)
    2. 对该数据结构进行操作的一组过程(类的方法)
    3. 对局部于管程的共享数据设置初始值的语句

熟悉面向对象的会联想,管程很像一个抽象类

并发与并行区别?

  1. 并发:是指两个或多个进程在同一时间段内发生,宏观上看是同时发送,微观上其实是交替发送
  2. 并行:是指两个或多个进程在同一时间点发送

3、死锁

什么是死锁?

多个进程因竞争资源而形成的一种僵局,若无外力作用下,这些进程都无法向前推进。

什么是活锁?

  1. 活锁恰恰与死锁相反,死锁是大家都拿不到资源都占用着对方的资源,而活锁是拿到资源却又相互释放不执行

  2. 多个线程中出现了相互谦让,都主动将资源释放给别的线程使用,这样这个资源在多个线程之间跳动而又得不到执行,这就是活锁。

为什么会发送死锁?

对不可剥夺资源的不合理分配,就可能导致死锁

死锁产生的四个必要条件?

  1. 互斥条件
  2. 不可剥夺条件
  3. 请求和保持条件
  4. 循环等待条件

死锁、饥饿、死循环的区别?

  1. 死锁:至少是两个进程一起死锁,死锁的进程处于阻塞态

  2. 饥饿:由于长期得不到想要的资源,某进程无法向前推进的现象。可以只有一个进程饥饿,饥饿的进程可能处于阻塞也可能是就绪态

  3. 死循环:某个进程执行过程一直跳不出某个循环的现象。可能只有一个进程发送死循环,死循环可以上处理机。

死锁的处理策略?

  1. 预防死锁:破坏死锁产生的四个必要条件
  2. 避免死锁:避免系统进入不安全状态(银行家算法)
  3. 死锁的检测和解除:允许死锁的发生,系统负责检测出死锁并解除
CS考研复试面试问题总结

4、内存

页式存储管理中设置页表和快表的目的?

  1. 页表:为了能知道每个进程的每个页面在内存中存放的位置,操作系统要为每个进程建立一张页表。
  2. 快表:称联想寄存器(TLB),是一种访问速度比内存快很多的高速缓冲存储器,用来存放当前访问的若干页表项,以加速地址转换的过程。与此对应,内存中多大页表常称为慢表

分页和分段有什么区别?

最大的区别就是——离散分配时所分配地址空间的基本单位不同。

区别 分页 分段
1 页是信息的物理单位,是为了管理主存的方便而划分的,分页是系统的行为,对用户是不可见的 段是信息的逻辑单位,它是根据用户的需要划分的,因此段对用户是可见的
2 页的大小固定,由系统决定 段的大小不固定,有它所完成的功能决定
3 页向用户提供的是一维地址空间 段向用户提供二维地址空间
4 页的保护和共享受到限制。 更容易实现信息的存储和保护

页面置换算法?

  1. **最佳置换算法(OPT、Optimal [adj. 最佳的,最优的] )**无法实现
  2. 先进先出置换算法(FIFO)
  3. 最近最久未使用置换算法(LRU)
  4. 时钟置换算法(CLOCK)

FCB包含什么?

分配给文件的所有盘块号都放在FAT中,记录了文件的物理位置

FCB中主要包含了以下信息

  • 基本信息:如文件名、物理地址、逻辑地址、物理结构等
  • 存取控制信息:是否可读/可写、禁止访问的用户名等
  • 使用信息:文件的建立时间,修改时间等

最基本的、最重要的还是文件名、文件存放的物理地址

数据库(思维导图)

数据库的事务和锁

相关标签: 面试题总结