保研面试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)排序算法的稳定性

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity3d使用3D WebView for Windows and macOS打开全景网页(720云)操作问题记录

问题描述 使用Unity3d内嵌网页的形式打开720云中的全景图这个功能,使用的是3D WebView for Windows and macOS插件,720云的全景图在浏览器上的操作是滑动鼠标滚轮推远/拉近全景图,鼠标左键拖拽网页可以旋转全景图内容。网页的打开过程是正常…

CSS函数:scale、scale3d函数的使用

CSS函数scale()主要是为了实现元素的放大和缩小效果,使用的是元素的变换效果。使用的是元素的转换属性:transform的,该函数可以实现指定X轴和Y轴的放大、缩小效果。除此之外,我们还可以通过如下两种方式实现指定方向的转换&#x…

C++结合OpenCV进行图像处理与分类

⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生👨‍🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三…

选择排序-Java版本

选择排序 算法的思想&#xff1a;java模拟 算法的思想&#xff1a; 每遍历一次就找一个最小的数 *外层 一共遍历 length-1次 总遍历次数符合等差数列 时间复杂度为O(n^2)内部查找 并 返回 数值 和 下标 java模拟 public static void selectSort(int[] arr) {for(int i 0;i<…

Flask 学习笔记 总结

python基础 服务端开发编程 第一个是赋值运算&#xff0c;第二是乘法&#xff0c;最后是一个是幂&#xff08;即a2&#xff09; a 2 a * 2 a ** 2 Python支持多重赋值&#xff1a; a, b, c 2, 3, 4 这句命令相当于&#xff1a; a 2 b 3 c 4 Python支持对字符串的灵活…

网络编程(一)

网络编程&#xff08;一&#xff09; 网络基础网络体系结构**OSI的7层模型**&#xff1a;&#xff08;理想化&#xff09;**每层的功能** **TCP/IP的4层模型**&#xff1a;&#xff08;在使用&#xff09;常见的协议IP地址IPV4分类A类&#xff08;第1位固定为0&#xff09;B类&…

10个令人惊叹的Python自动化脚本

大家好&#xff0c;Python凭借其简单和通用性&#xff0c;能够为解决每天重复同样的工作提供最佳方案。本文将介绍10个Python自动化脚本&#xff0c;可以帮助自动化完成任务&#xff0c;提高工作效率&#xff0c;它们可以成为项目运行中的便捷工具&#xff0c;可以收藏这些脚本…

conflicting types for 错误问题

操作系统真象还原中&#xff0c;第十一章出现的问题&#xff1a; 怎样编译都会出现一个conflicting types for ’xxx‘的错误 出现这个错误的原因&#xff1a; 头文件声明和定义参数稍有不同 头文件中声明 void Hanlder(const char * buf); 在定义时写作 void Hanlder(char…

C# WPF入门学习主线篇(六)—— TextBox常见属性和事件

欢迎回到C# WPF入门学习系列的第六篇。在前面的文章中&#xff0c;我们探讨了按钮&#xff08;Button&#xff09;的事件处理。今天&#xff0c;我们将继续学习另一个常用的WPF控件——TextBox。本文将介绍 TextBox 的常见属性和事件&#xff0c;并通过示例代码展示如何在实际应…

用这个AI工具,做公众号爆款图文,5分钟一篇10w+,居然这么简单!(附工具教程)

文章首发于公众号&#xff1a;X小鹿AI副业 大家好&#xff0c;我是程序员X小鹿&#xff0c;前互联网大厂程序员&#xff0c;自由职业2年&#xff0c;也一名 AIGC 爱好者&#xff0c;持续分享更多前沿的「AI 工具」和「AI副业玩法」&#xff0c;欢迎一起交流~ 之前X小鹿一直在各…

泵制造5G智能工厂工业物联数字孪生可视化,推进制造业数字化转型

泵制造5G智能工厂工业物联数字孪生可视化&#xff0c;推进制造业数字化转型。泵制造行业&#xff0c;作为工业领域的核心部分&#xff0c;更是急需通过技术创新实现生产流程的智能化和高效化。而5G智能工厂工业物联数字孪生可视化技术的出现&#xff0c;为泵制造业的数字化转型…

代码随想录算法训练营第四十四天 | 01背包问题理论基础、01背包问题滚动数组、416. 分割等和子集

背包问题其实有很多种&#xff0c;01背包是最基础也是最经典的&#xff0c;软工计科学生一定要掌握的。 01背包问题 代码随想录 视频讲解&#xff1a;带你学透0-1背包问题&#xff01;| 关于背包问题&#xff0c;你不清楚的地方&#xff0c;这里都讲了&#xff01;| 动态规划经…

YOLO10:手把手安装教程与使用说明

目录 前言一、YOLO10检测模型二、YOLO安装过程1.新建conda的环境 yolo10安装依赖包测试 总结 前言 v9还没整明白&#xff0c;v10又来了。而且还是打败天下无敌手的存在&#xff0c;连最近很火的RT-DETR都被打败了。那么&#xff0c;笑傲目标检测之林的v10又能持续多久呢&#…

2024第三届全国大学生数据分析大赛,有没有没有思路的朋友?

大家好呀&#xff0c;2024第三届全国大学生数据分析大赛准备开始咯&#xff0c;大家是不是没有思路呀。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 比赛现在还能报名哈&#xff01;6-7才截…

图像背景去除工具:removebg

文章目录 简介面向不同用户价格 简介 removebg&#xff0c;就是remove background&#xff0c;是一款智能图片背景去除工具。 在免费使用时&#xff0c;用到的是本地的CPU。我第一次试用时&#xff0c;图片刚上传之后&#xff0c;电脑的帧率便直线下降&#xff0c;鼠标都拖不…

买视觉检测设备需要多少钱?

随着工业自动化的发展&#xff0c;其应用范围逐步提高&#xff0c;其中母子图像传感器、CMOS和CCD摄像机、DSP、ARM嵌入式技术、图像处理和模式识别技术的快速发展&#xff0c;有效地推动了视觉检测设备的发展。在机器视觉领域中&#xff0c;常见的就是视觉检测、视觉识别、视觉…

Win11中Yolo V10安装过程记录

1. 配置Anaconda环境&#xff1a; conda create -n yolov10 python3.9 conda activate yolov10 pip install -r requirements.txt pip install -e . 这里由于torch2.0.1太慢&#xff0c;单独用pytorch官网安装流程&#xff08;选择支持GPU版本&#xff09;&#xff1a; con…

数据治理挑刺行动:深化治理,提升数据质量

在当今信息化社会&#xff0c;数据已经成为推动经济发展、社会进步的重要驱动力。然而&#xff0c;随着数据量的爆炸式增长&#xff0c;数据质量问题也日益凸显&#xff0c;给各行各业带来了不小的挑战。为了应对这一挑战&#xff0c;深化数据治理&#xff0c;提升数据质量已成…

【CT】LeetCode手撕—3. 无重复字符的最长子串

目录 题目1- 思路1-1 模式1&#xff1a;涉及去重判断1-2 模式2&#xff1a;遍历字符串区间 2- 题解⭐无重复字符的最长子串——题解思路 3- ACM实现 原题链接&#xff1a;3. 无重复字符的最长子串 题目 无重复字符的最长子串 给定一个字符串 s &#xff0c;请你找出其中不含有…

kubernetes负载均衡---MetalLB

https://github.com/metallb/metallb 参考 &#xff1a; https://mp.weixin.qq.com/s/MBOWfcTjFMmgJFWw-FIk0Q 自建的Kubernetes集群&#xff0c;默认情况下是不支持负载均衡的。当需要提供服务的外部访问时&#xff0c;可使用 Ingress、NodePort等方式。他们都存在一些问题 …