保研面试408复习 8——计算机网络(浏览器http)、离散数学(平面图)、操作系统、数据结构

文章目录

  • 一、计算机网络
    • 1、从在浏览器输入网址到页面显示的过程
      • 1. 输入网址
      • 2. DNS 解析
      • 3. 建立TCP连接
      • 4. 发送HTTP请求
      • 5. 服务器处理请求并响应
      • 6. 浏览器处理响应
      • 7. 页面渲染
  • 二、离散数学
    • 一、平面图
      • 1、平面图性质
      • 2、Kuratowski定理
  • 三、操作系统
  • 四、数据结构

一、计算机网络

1、从在浏览器输入网址到页面显示的过程

从在浏览器输入网址到页面显示的过程涉及了多个步骤和不同的计算机网络协议。以下是这一过程的详细步骤:
浏览器检查DNS服务器进行DNS到IP地址的转换→建立TCP连接→浏览器发送HTTP请求→服务器进行HTTP响应→浏览器解析服务器给的HTML→继续HTTP请求,直到获得全部数据→断开TCP连接

1. 输入网址

用户在浏览器的地址栏输入一个URL(统一资源定位符),如 http://www.example.com

2. DNS 解析

  • 域名系统(DNS)查询浏览器检查本地缓存中是否有此URL的IP地址。如果没有,浏览器会向配置的DNS服务器发送一个DNS查询请求,以解析域名到对应的IP地址。
  • 接收IP地址DNS服务器查找域名对应的IP地址,然后返回给浏览器。

3. 建立TCP连接

  • 三次握手:浏览器根据得到的IP地址,通过TCP(传输控制协议)进行三次握手过程,建立一个到服务器的稳定连接。

4. 发送HTTP请求

  • 构建HTTP请求浏览器构建一个HTTP请求,包括请求行(如 GET / HTTP/1.1)、请求头(如主机、用户代理等信息),以及可能的请求体。
  • 发送请求到服务器:通过已建立的TCP连接,将HTTP请求发送到服务器。

5. 服务器处理请求并响应

  • 服务器接收请求:服务器接收到HTTP请求后,根据请求的类型(如GET、POST)、资源路径(如根目录/),处理请求。
  • 服务器发送HTTP响应:服务器处理完请求后,生成一个HTTP响应发送回客户端。响应包括状态码(如200 OK)、响应头(如内容类型、服务器信息等),以及响应体(请求的网页内容)。

6. 浏览器处理响应

  • 接收响应数据:浏览器接收到服务器的响应数据。
  • 解析HTML内容浏览器解析HTML标记,并构造DOM(文档对象模型)树。
  • 加载资源:解析过程中,浏览器遇到外部资源(如CSS文件、JavaScript文件、图片等)会发送额外的HTTP请求去加载这些资源。
  • CSS渲染:浏览器解析CSS样式,并应用到对应的HTML元素上。
  • JavaScript执行:浏览器执行页面中的JavaScript代码,可能会修改DOM树和页面的可视表现。

7. 页面渲染

  • 视觉呈现:浏览器将解析的结果绘制到屏幕上,用户开始看到最终的网页。

二、离散数学

一、平面图

一个图如果可以被画在平面上,且它的任何两条边都不会相交(除了在顶点处),那么这个图被称为平面图。
平面图一般是指无向图。
一个图可以重排结构画成平面图,则称为可平面图。

1、平面图性质

  • 欧拉公式: V − E + F = 2 V-E+F=2 VE+F=2
    • 对于任何连通的平面图,其顶点数 V V V,边数 E E E,和面数 F F F(包括外部区域,相当于环形复杂度)满足的关系式。
    • 我们可以用最简单的两个结点一个结点指向另一个结点。

2、Kuratowski定理

根据Kuratowski定理,一个图是可平面的当且仅当它不包含可以缩减为 K 5 K_5 K5(完全五部图)或
K 3 , 3 K_{3,3} K3,3(完全二部图,每部分有三个顶点)的子图。

在图论中, K 5 K_5 K5 K 3 , 3 K_{3,3} K3,3 是两种特殊的图,它们通常用来作为测试图的平面性的基准。

注意,这里的K下标的表示并不固定,我们只需要知道它是一个什么样的图就行。

(1) K 5 K_5 K5:完全五部图

  • 定义 K 5 K_5 K5 是一个完全图,包含5个顶点,每一对顶点之间都有一条边相连。
  • 性质
    • 顶点数 V = 5 V = 5 V=5
    • 每个顶点都与其他四个顶点相连。
    • 边数 E = 10 E = 10 E=10。这是因为每个顶点的度数为4,总共有5个顶点,所以总度数是20。由于每条边被两个顶点共享,所以实际的边数是总度数的一半。
  • 平面性:根据图论的定理,任何包含 K 5 K_5 K5 作为子图的图都不能是平面图,因为无法在平面上绘制 K 5 K_5 K5 而不让任何边相交。

(2) K 3 , 3 K_{3,3} K3,3:完全二部图

  • 定义 K 3 , 3 K_{3,3} K3,3 是一个完全二部图,包含两个顶点集,每个集合有3个顶点,集合间的每个顶点对都有一条边相连,但集合内的顶点之间没有边。
  • 性质
    • 顶点数 V = 6 V = 6 V=6
    • 边数 E = 9 E = 9 E=9。这是因为集合A中的每个顶点都必须与集合B中的每个顶点相连,因此边数是两个集合大小的乘积,即 3 × 3 3 \times 3 3×3
    • 没有顶点是相邻的,这意味着图中没有形成三角形的边。
  • 平面性:根据Kuratowski定理,任何包含 K 3 , 3 K_{3,3} K3,3 作为子图的图都不能是平面图。与 K 5 K_5 K5 一样, K 3 , 3 K_{3,3} K3,3 无法在平面上绘制而不让边相交。

三、操作系统

(1)进程间通信方式

  • 管道
  • 共享内存
    • 可能需要同步机制来避免竞争条件
  • 消息队列
  • 异步信号
  • 套接字

(2)进程调度:先到先服务,短作业优先,最高响应比,最高优先级,多级反馈队列,时间轮转

(3)磁盘调度:先到先服务,最短寻道时间优先,扫描算法,电梯算法,循环电梯

  • 最短寻道时间优先存在磁道歧视
  • 电梯算法和扫描算法存在地域差别

(4)动态内存分配:首次适应,最佳适应,最坏适应

(5)页面置换算法(淘汰页表中的页):LRU、先进先出

(6)文件锁

  • 共享锁:允许多个进程读文件,但是不允许写
  • 排他锁:只允许一个进程读入或写入文件

(7)每个进程都有一个页表

  • 因为一个虚拟地址对应了一个虚页号,如果不同进程共享一个页表,则不同进程必须有不同虚拟地址才能区分页表项,与每个地址由一个虚拟地址空间相违背。

(8)死锁避免
银行家算法:这是一个著名的死锁避免算法,通过模拟资源分配,判断资源分配后是否会导致系统进入不安全状态。只有在不会导致不安全状态时,才允许资源分配。

安全状态一定非死锁状态;
非安全状态不一定是死锁状态

(9)冯诺依曼结构

  • 特点:程序和数据存储在同一个内存空间中,使用同一套总线来传输数据和程序。

(10)指令系统

  • 指令格式:操作码 - 操作数1 - 操作数2 - 地址字段
  • 常见寻址方式:操作数存储方式
    • 立即数寻址:在指令中就有操作数
      • lw $t0,#5
    • 直接寻址:直接通过地址找到操作数
      • lw $t0,1000
    • 间接寻址:通过寄存器中的地址找到操作数
      • lw $to,( $r0)
    • 寄存器寻址:操作数就在寄存器中
      • lw $t0, $r0
    • 基址寻址:就像数组一样,寄存器当作首地址
      • lw $t0,100( $r0)
    • 变址寻址:俩寄存器中的值相加作为地址
      • lw $t0,( r 0 + r0+ r0+r1)

(11)流水线技术

  • 概念:为了提高CPU执行指令的效率,将指令执行过程分为多个阶段,每个阶段由不同的硬件模块并行处理不同的指令。
  • 五级流水线:取指(IF)、译码(ID)、执行(EX)、存储(MEM)、写回(WB)
  • 阻塞问题:
    • 数据相关:后续指令需要前一指令的计算结果
      • 解决办法:旁路技术
    • 控制相关:条件跳转指令导致的流水线停顿,比如执行之后产生跳转可能需要重新取指令。
      • 解决办法:动态分支预测,假定分支不发生,缩短分支时间,延迟槽
    • 结构相关:多个指令同时访问同一个存储器,比如取指和写回都是访问同一个存储器,我们使用前半个周期写回,后半个周期取指来解决。
      • 解决办法:增加硬件资源

(12)I/O控制方式

  • 程序查询方式:CPU定期检查输入输出设备的状态,发现设备准备好后执行相应的 I/O操作
    • 缺点:效率低,CPU大量时间用于查询设备状态
  • 中断方式:I/O设备准备好后向CPU发送中断请求,CPU暂停当前任务,处理中断请求,完成I/O操作后恢复原任务。
  • DMA方式:CPU只需要传输初始化参数,剩余工作由DMA控制器完成。DMA直接管理数据在内存和I/O设备间的传输。

四、数据结构

(1)动态数组
动态数组是一种可以在运行时自动调整大小的数组,通过复制现有元素到新分配的更大或更小的内存块来实现动态调整。比如vector

(2)传统二叉搜索树——关键词互异
左子树的所有结点的值都小于该结点的值,右子树的所有结点的值都大于该结点的值。传统BST关键词是互异的

  • 在插入琪琪的小妹妹的时候,如果原来已经有了,那就直接return了,不会插入相同的。
    在这里插入图片描述
    AVL,红黑树,B树这些搜索树的关键词通常情况下都是互异的。

(3)红黑树——一种自平衡二叉搜索树

  • 每个节点都是红色或黑色
  • 根结点是黑色,叶节点是黑色
  • 从根结点到所有叶节点的路径上,黑色节点的数量相同
  • 不能有两个连续的红色节点
  • 实现:重新着色和旋转来保持平衡

(4)哈希冲突解决方法

  • 拉链法
  • 开放定址法
    • 线性探查法
      • d = h ( k e y ) + i d = h(key) + i d=h(key)+i,d表示放的位置,i是线性探查的值,从0开始
    • 平方探测法
      • d = h ( k e y ) + i 2 d = h(key) + i^2 d=h(key)+i2
    • 伪随机序列法
      • d = h ( k e y ) + r a n d ( ) d = h(key) + rand() d=h(key)+rand(),其中 r a n d ( ) rand() rand()表示随机序列按顺序取。
  • 再散列法(多重散列)
    • 比如双重散列, d = ( h 1 ( k e y ) + i ∗ h 2 ( k e y ) ) % m d=( h1(key) + i * h2(key))\%m d=(h1(key)+ih2(key))%m,i是冲突次数。

(5)B树和B+树

  • B树:所有叶子结点都在同一层,每个结点可以有多个子节点和多个键值。
  • B+树:内部节点只存储键值,所有数据都存储在叶子节点中,叶子结点还存储指向下一个叶子节点的指针形成一个有序链表。
  • 通过特点可以发现,B+树内部节点的“键值”也一点会出现在叶子节点中,B树的“键值”各结点各不相同。
    -
    在这里插入图片描述
    在这里插入图片描述

(6)排序算法的稳定性

  • 稳定性指的是排序前后对于任意两个相等的元素而言它们的相对位置不变。
  • 稳定排序:归并排序、插入排序、冒泡排序
    • 这些都是可以实现成稳定的排序算法。
  • 不稳定排序快速排序和堆排序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/22691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDCF五周年专场—【研发效能·创享大会】圆满落幕!

2024 年5 月25 日,【研发效能创享大会】—IDCF五周年专场在北京希尔顿欢朋酒店(大红门)成功举办!本次大会旨在为社区成员提供一个学习与交流的平台,分享技术经验,交流行业见解,促进技术合作与创…

Java模板模式及代码

意图 在父类中定义了算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤,这种类型的设计模式属于行为型模式。 主要解决的问题 解决在多个子类中重复实现相同的方法的问…

北京海淀区永丰产业基地地块出让,海开控股79.17亿元竞得

据悉,位于北京海淀区西北旺镇的永丰产业基地地块正式出让,引起了业界的广泛关注。经过激烈的竞争,最终由海开控股以79.17亿元的价格成功竞得该地块,成交楼面价达到35588元/平方米,溢价率为1.5%。此次出让的地块不仅吸引…

【Java基础】线程的五大状态

新建状态 使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程对象就处于新建状态。它保持这个状态直到程序 start() 这个线程。 就绪状态 当线程对象调用了start()方法之后,该线程就进入就绪状态。就绪状态的线程处于就绪队列中&#xff…

景深技术在AI绘画中的魔法:为数字艺术注入新维度

引言: 在人工智能(AI)的浪潮中,绘画艺术领域迎来了革命性的变革。AI绘画不仅改变了创作过程,还为艺术家和设计师提供了前所未有的工具。其中,景深技术作为一种重要的视觉处理手段,在AI绘画中的应…

error:nullptr was not declared in this scope

nullptr是c11的内容,在Qt5.5.0中使用时需要在.pro添加 QMAKE_CXXFLAGS -stdc11

告别繁琐,Xinstall一键解决App代理结算难题!

在移动互联网的浪潮中,App的推广和运营成为了众多企业和开发者关注的焦点。然而,随着App市场的日益竞争,代理结算的复杂性和繁琐性成为了许多推广者头疼的问题。为了解决这个问题,Xinstall凭借其专业的技术和丰富的服务经验&#…

在ros中获取话题的发布节点名称(C++)

文章目录 概要CMakeLists.txt主要代码效果概要 在ROS中,直接从订阅回调函数中获取发布该话题的节点信息并不直接支持。ROS设计的发布-订阅机制并没有直接提供在回调函数中获取发布节点的接口。发布节点的信息主要通过rosgraph等工具来获取。 不过,可以通过以下几种方式间接…

Modebus通信协议 温控器示例

目录 1 指令解释 2 获取动态的CRC 3 crc在线验证 4 16进制正负温度互转 4.2 16进制转温度 4.2 温度转16进制 5 完整工具类 最近安卓工作接了很多硬件,其他的都是发个固定指令,比较有代表性就是温控器和打印机自定义内容所以这个记录接入示例&…

为什么没有输出九九乘法表?

下面的程序本来想输出九九乘法表到屏幕上&#xff0c;为什么没有输出呢&#xff1f;怎样修改&#xff1f; <!DOCTYPE html> <html> <head> <meta charset"utf-8" /> <title>我的HTML练习</title> …

从零开始教你RuoYi-Cloud项目阿里云部署

这里写自定义目录标题 准备需要的文件文件下载运程工具(按需下载)文件上传一、安装Docker环境二、应用部署2.1、Nacos2.2、Nginx2.3、Mysql2.4、Redis2.5、JDK2.6、Docker Compose三、项目部署四、ERROR无法访问云服务器上部署的Docker容器端口冲突或端口占用Linux修改jar包中…

qemu虚拟机安装麒麟v10 arm版系统

截止目前&#xff0c;安装v10 sp1版本系统&#xff0c;&#xff0c;v10 sp3系统无法安装。 1.// 创建虚拟机 最好大于65G qemu-img create -f qcow2 D:\Kylin\Kylindisk.qcow2 70G2.// 使用qemu-system-aarch64.exe命令安装麒麟操作系统&#xff1a; qemu-system-aarch64.exe …

go语言进阶 包

package 包&#xff1a; go 语言使用包&#xff08;package&#xff09;这种语法元素来组织管理源码&#xff0c;所有语法可见性均定义在 package 这个级别 与 Java python 相似 1. main 包&#xff1a; go 语言的程序入口 main() 函数所在的包 (package) 叫做 main包 , mian…

linux内核下rapidio(TSI721)相关笔记汇总

1 驱动的安装 和 主要功能(doorbell, DMA, rionet)的简单测试 linux5.4 下使用rapidio(tsi721)的笔记记录_kernel-rapidio-CSDN博客 2 机理分析 linux内核下&#xff0c;rapidio网络系统建立的过程(枚举 和 发现)_linux rapidio-CSDN博客 linux内核下&#xff0c;(rapidio)T…

新火种AI|倒反天罡!美国名校斯坦福AI团队抄袭中国大模型

作者&#xff1a;一号 编辑&#xff1a;美美 中国大模型被抄袭&#xff0c;怎么不算是某种层面上的国际认可呢&#xff1f; 5月29日&#xff0c;斯坦福大学的一个AI研究团队发布了一个名为「Llama3V」的模型&#xff0c;号称只要 500 美元就能训练出一个 SOTA 多模态模型&am…

Python库之pandas的简介、安装、使用方法详细攻略

Python库之pandas的简介、安装、使用方法详细攻略 简介 pandas 是 Python 中用于数据分析和操作的一个强大库&#xff0c;它提供了快速、灵活和表达力强的数据结构&#xff0c;旨在使数据清洗和分析工作变得更加简单易行。pandas 适用于处理表格数据&#xff08;例如CSV文件、…

元宇宙概念及关键技术

“元宇宙”这个概念最早出自上世纪90年代出版的一部美国人写的科幻小说《雪崩》&#xff08;Snow Crash&#xff09;&#xff0c;作家Neal Stephenson这样定义元宇宙&#xff1a;“元宇宙是指一个脱胎于现实世界&#xff0c;又与现实世界平行、相互影响&#xff0c;并且始终在线…

知识库系统:从认识到搭建

在这个信息过载的时代&#xff0c;企业越来越需要一个集中的知识库系统来促进员工协作和解决问题。本文跟着LookLook同学一起来探讨搭建高效知识库系统的所有注意事项和知识库系统的最佳推荐。 | 什么是知识库系统 知识库系统是一种软件或工具&#xff0c;旨在填补组织内的知识…

超越传统AI 新型多智能体系统MESA,探索效率大幅提升

探索多智能体强化学习的协同元探索 —— MESA 算法深度解读在多智能体强化学习&#xff08;MARL&#xff09;的征途中&#xff0c;如何高效探索以发现最优策略一直是研究者们面临的挑战。特别是在稀疏奖励的环境中&#xff0c;这一问题变得更加棘手。《MESA: Cooperative Meta-…

用扫描书籍的功能扫描文档是扫描件吗?

当使用扫描书籍的功能来扫描文档时&#xff0c;产生的结果通常被称为“扫描件”或“扫描图像”。这里的“扫描”一词指的是通过扫描仪或具有扫描功能的设备&#xff08;如一些高端打印机、多功能一体机等&#xff09;将纸质文档转换为数字图像的过程。 扫描件通常是高清晰度的…