完成《线性代数》点乘和重构408内容的图片路径
continuous-integration/drone/push Build is passing Details

main
InkSoul 2023-08-09 20:47:58 +08:00
parent 633a326ba1
commit beea6637f5
553 changed files with 576 additions and 496 deletions

View File

@ -113,7 +113,7 @@ date: 2023-07-05T14:13:34+08:00
* 根据CPU的命令对相应设备发送命令
* 用于实现设备控制功能
* 组成图
* ![](../../images/设备控制器组成图.png)
* ![](../../images/408/《操作系统》IO管理/设备控制器组成图.png)
### 设备控制器的三种寄存器可被CPU直接访问的寄存器也叫IO端口
@ -173,7 +173,7 @@ date: 2023-07-05T14:13:34+08:00
* 每个DMA控制器对应一台设备与内存传递数据
* DMA方式主要用于块设备磁盘尤其是典型的块设备
* 示例图
* ![](../../images/DMA工作原理.png)
* ![](../../images/408/《操作系统》IO管理/DMA工作原理.png)
### 通道控制方式
@ -189,7 +189,7 @@ date: 2023-07-05T14:13:34+08:00
* 通常包含许多非分配型字通道数量可以达到几十到几百个每个通道连接一台IO设备并控制该设备的IO操作
* 常用于连接大量低速或中速IO设备
* 示例图
* ![](../../images/通道控制方式流程图.png)
* ![](../../images/408/《操作系统》IO管理/通道控制方式流程图.png)
### 四种方式比较
@ -247,22 +247,22 @@ date: 2023-07-05T14:13:34+08:00
### 设备分配依据的数据结构
* 设备、控制器、通道间的关系
* ![](../../images/设备控制器组成图.png)
* ![](../../images/408/《操作系统》IO管理/设备控制器组成图.png)
* 设备控制表DCT
* 系统为每个设备配置一张DCT
* 用于记录设备情况
* ![](../../images/设备控制表.png)
* ![](../../images/408/《操作系统》IO管理/设备控制表.png)
* 控制器控制表COCT
* 每个设备控制器都会对应一张COCT
* 操作系统会根据COCT的信息对控制器进行操作管理
* ![](../../images/控制器控制表.png)
* ![](../../images/408/《操作系统》IO管理/控制器控制表.png)
* 通道控制表CHCT
* 每个通道都会对应一张CHCT
* 操作系统会根据CHCT的信息对通道进行操作管理
* ![](../../images/通道控制表.png)
* ![](../../images/408/《操作系统》IO管理/通道控制表.png)
* 系统设备表SDT
* 记录了系统中全部设备的情况,每个设备对应一个表目
* ![](../../images/系统设备表.png)
* ![](../../images/408/《操作系统》IO管理/系统设备表.png)
### 逻辑设备名到物理设备名的映射
@ -311,25 +311,25 @@ date: 2023-07-05T14:13:34+08:00
* 单缓冲
* 流程
* Max(C,T) + M
* ![](../../images/单缓冲流程图.png)
* ![](../../images/408/《操作系统》IO管理/单缓冲流程图.png)
* T > C 时处理一块数据需要T + M
* ![](../../images/单缓冲T大于C.png)
* ![](../../images/408/《操作系统》IO管理/单缓冲T大于C.png)
* T < C C + M
* ![](../../images/单缓冲T小于C.png)
* ![](../../images/408/《操作系统》IO管理/单缓冲T小于C.png)
* 双缓冲
* 流程
* Max(T,C + M)
* ![](../../images/双缓冲流程图.png)
* ![](../../images/408/《操作系统》IO管理/双缓冲流程图.png)
* T > C + M 时平均处理一个数据块需要时间T
* ![](../../images/双缓冲T大于C+M.png)
* ![](../../images/408/《操作系统》IO管理/双缓冲T大于C+M.png)
* T < C + M (C + M)
* ![](../../images/双缓冲T小于C+M.png)
* ![](../../images/408/《操作系统》IO管理/双缓冲T小于C+M.png)
* 循环缓冲
* 将多个大小相等的缓冲区连接成一个循环队列
* 下图中橙色表示已充满数据的缓冲区,绿色表示空缓冲区
* 当需要向缓冲区中充入数据时只要找到in指针指向的空缓冲区向其中充入数据然后再把in指针指向下一个空缓冲区
* 当需要取出满缓冲区的内容时找到out指针执行的满缓冲区读取完数据后将指针指向下一个满缓冲区
* ![](../../images/循环缓冲流程图.png)
* ![](../../images/408/《操作系统》IO管理/循环缓冲流程图.png)
* 缓冲池
* 缓冲池由系统中共用的存放在主存中的缓冲区组成,被认为是最好的方法
* 缓冲区根据使用情况分为
@ -341,7 +341,7 @@ date: 2023-07-05T14:13:34+08:00
* 用于提取输入数据的工作缓冲区sin
* 用于收容输出数据的工作缓冲区hout
* 用于提取输出数据的工作缓冲区sout
* ![](../../images/缓冲池流程图.png)
* ![](../../images/408/《操作系统》IO管理/缓冲池流程图.png)
## SPOOLing技术假脱机技术
@ -371,7 +371,7 @@ date: 2023-07-05T14:13:34+08:00
* 输入缓冲区用于暂存从输入设备输入的数据,之后再转存到输入井中
* 输出缓冲区用于暂存从输出井传送的数据,之后再传送到输出设备上
* 流程图
* ![](../../images/SPOOLing系统的运行过程.png)
* ![](../../images/408/《操作系统》IO管理/SPOOLing系统的运行过程.png)
### SPOOLing系统的优特点
@ -397,7 +397,7 @@ date: 2023-07-05T14:13:34+08:00
### 基本概念和结构
![](../../images/磁盘结构示例图.jpg)
![](../../images/408/《操作系统》IO管理/磁盘结构示例图.jpg)
* 基本结构
* 磁盘
@ -509,7 +509,7 @@ date: 2023-07-05T14:13:34+08:00
* 处理顺序
* 98,183,37,122,14,124,65,67
* 寻道示例图
* ![](../../images/磁盘调度-先来先服务.png)
* ![](../../images/408/《操作系统》IO管理/磁盘调度-先来先服务.png)
* 最短寻找时间优先SSTF
* 思想
* 优先选择从当前磁头位置所需寻道时间最短的请求
@ -522,7 +522,7 @@ date: 2023-07-05T14:13:34+08:00
* 处理顺序
* 65,67,37,14,98,122,124,183
* 寻道示例图
* ![](../../images/磁盘调度-最短寻道时间优先.png)
* ![](../../images/408/《操作系统》IO管理/磁盘调度-最短寻道时间优先.png)
* 扫描/电梯算法SCAN
* 思想
* 磁头在一个方向上移动,访问所有未完成的请求,直到磁头到达该方向上的最后的磁道,才调换方向
@ -536,7 +536,7 @@ date: 2023-07-05T14:13:34+08:00
* 磁头先响应左边的请求,到达最左端后才开始反向移动,响应右边的请求
* 37,14,0,65,67,98,122,124,183
* 寻道示例图
* ![](../../images/磁盘调度-扫描算法.png)
* ![](../../images/408/《操作系统》IO管理/磁盘调度-扫描算法.png)
* C-SCAN算法
* 思想
* 只有磁头朝某个特定方向移动时,才处理磁道访问请求
@ -553,7 +553,7 @@ date: 2023-07-05T14:13:34+08:00
* 直到到达最开始的磁道后,才继续顺序响应右边的请求
* 65,67,98,122,124,183,199,0,14,37
* 寻道示例图
* ![](../../images/磁盘调度-C-SCAN算法.png)
* ![](../../images/408/《操作系统》IO管理/磁盘调度-C-SCAN算法.png)

View File

@ -45,7 +45,7 @@ date: 2023-07-03T20:39:49+08:00
过程图
![](../../images/程序链接与接入过程图.jpg)
![](../../images/408/《操作系统》内存管理/程序链接与接入过程图.jpg)
* 编译
* 由编译程序将用户源代码编译程若干目标模块
@ -62,7 +62,7 @@ date: 2023-07-03T20:39:49+08:00
* 可重定位装入:装入时把逻辑地址转换为物理地址,但装入后不能改变
* 动态重定位装入:执行时再决定装入的地址并装入,装入后有可能会换出
![](../../images/重装入类别例图.jpg)
![](../../images/408/《操作系统》内存管理/重装入类别例图.jpg)
### 逻辑地址与物理地址
@ -91,7 +91,7 @@ date: 2023-07-03T20:39:49+08:00
* 堆:用来存放动态分配的变量【动态的】
* 栈:用来实现函数调用的【动态的】
![](../../images/内存映像的例图.jpg)
![](../../images/408/《操作系统》内存管理/内存映像的例图.jpg)
### 内存保护
@ -105,7 +105,7 @@ date: 2023-07-03T20:39:49+08:00
* 界地址寄存器含逻辑机制的最大值【用于比】
* 逻辑地址+重定位寄存器的值 = 物理地址
![](../../images/重定位寄存器和界地址寄存器的硬件支持.jpg)
![](../../images/408/《操作系统》内存管理/重定位寄存器和界地址寄存器的硬件支持.jpg)
### 内存共享
@ -274,11 +274,11 @@ date: 2023-07-03T20:39:49+08:00
利用段表实现物理内存区映射
![](../../images/利用段表实现物理内存区映射.jpg)
![](../../images/408/《操作系统》内存管理/利用段表实现物理内存区映射.jpg)
分段系统的地址变换过程
![](../../images/分段系统的地址变换过程.jpg)
![](../../images/408/《操作系统》内存管理/分段系统的地址变换过程.jpg)
### 分页
@ -333,7 +333,7 @@ date: 2023-07-03T20:39:49+08:00
* 分页产生的页表过大,使用多级页表来解决空间上的问题
![](../../images/基本地址变换结构图.png)
![](../../images/408/《操作系统》内存管理/基本地址变换结构图.png)
* 两级页表地址变换
* 一级页表覆盖到全部虚拟地址空间,二级页表在需要时创建
@ -341,7 +341,7 @@ date: 2023-07-03T20:39:49+08:00
* 页表寄存器存放的是一级页表起始物理地址
* 多层参与时间上开销大加入TLB提高地址的转换速度
![](../../images/两级页表地址变化结构图.png)
![](../../images/408/《操作系统》内存管理/两级页表地址变化结构图.png)
* 具有快表的地址变换
* 快表是相联存储器TLB
@ -351,7 +351,7 @@ date: 2023-07-03T20:39:49+08:00
* CPU芯片中封装了MMU内存管理单元
* MMU用来完成地址转换和TBL的访问与交互
![](../../images/具有快表的地址变换结构图.png)
![](../../images/408/《操作系统》内存管理/具有快表的地址变换结构图.png)
### 段页
@ -364,9 +364,9 @@ date: 2023-07-03T20:39:49+08:00
* 对内存的管理以存储块为单位,地址空间是二维的
* 演示图例
![](../../images/段页式系统的地址变换机构图.jpg)
![](../../images/408/《操作系统》内存管理/段页式系统的地址变换机构图.jpg)
![](../../images/段页式系统的逻辑地址结构图.jpg)
![](../../images/408/《操作系统》内存管理/段页式系统的逻辑地址结构图.jpg)
* 得到物理地址的3次内存访问
@ -470,7 +470,7 @@ date: 2023-07-03T20:39:49+08:00
* 从内存中换出一页
* 地址变换过程
![](../../images/地址变换过程演示图.jpg)
![](../../images/408/《操作系统》内存管理/地址变换过程演示图.jpg)
### 页框分配进程准备执行时由OS决定给特定进程分配几个页框
@ -591,5 +591,5 @@ date: 2023-07-03T20:39:49+08:00
使用页表的地址翻译
![](../../static/images/使用页表的地址翻译流程图.png)
![](../../static/images/408/《操作系统》内存管理/使用页表的地址翻译流程图.png)

View File

@ -22,7 +22,7 @@ date: 2023-07-06T11:24:18+08:00
----
![](../../images/《操作系统》大题总结/生产者消费者问题一.png)
![](../../images/408/《操作系统》大题总结/生产者消费者问题一.png)
``` C
Semaphore mutex1 = 1 //互斥访问F1
@ -75,7 +75,7 @@ F_C(){
```
![](../../images/《操作系统》大题总结/生产者消费者问题三.png)
![](../../images/408/《操作系统》大题总结/生产者消费者问题三.png)
```C
@ -156,7 +156,7 @@ while(1){
```
![](../../images/《操作系统》大题总结/理发师问题一.png)
![](../../images/408/《操作系统》大题总结/理发师问题一.png)
```C
Semaphore empty = 10;//空座位的数目
@ -236,7 +236,7 @@ process(){
```
![](../../images/《操作系统》大题总结/哲学家问题一.png)
![](../../images/408/《操作系统》大题总结/哲学家问题一.png)
通常解
@ -352,7 +352,7 @@ solo(){
```
![](../../images/《操作系统》大题总结/读者写者问题一.png)
![](../../images/408/《操作系统》大题总结/读者写者问题一.png)
1
```C
@ -407,7 +407,7 @@ NtoS(){//北到南
}
```
![](../../images/《操作系统》大题总结/读者写者问题二.png)
![](../../images/408/《操作系统》大题总结/读者写者问题二.png)
```C
Semaphore room = 1;
@ -497,21 +497,21 @@ P3(){
* 一级页表+虚拟内存+TLB
* 二级页表+虚拟内存+TLB
![](../../images/《操作系统》大题总结/内存管理知识体系.jpg)
![](../../images/408/《操作系统》大题总结/内存管理知识体系.jpg)
TLB+二级页表+Cache(全相联映射)
![](../../images/《操作系统》大题总结/TLB全相联映射.jpg)
![](../../images/408/《操作系统》大题总结/TLB全相联映射.jpg)
TLB+二级页表+Cache(2路组相联映射)
![](../../images/《操作系统》大题总结/TLB2路组相联映射.jpg)
![](../../images/408/《操作系统》大题总结/TLB2路组相联映射.jpg)
TLB + 二级页表 + Cache(直接映射)
![](../../images/《操作系统》大题总结/TLB直接映射.jpg)
![](../../images/408/《操作系统》大题总结/TLB直接映射.jpg)
---
![](../../images/《操作系统》大题总结/内存管理真题一.png)
![](../../images/408/《操作系统》大题总结/内存管理真题一.png)
1
<br>
@ -539,7 +539,7 @@ TLB + 二级页表 + Cache(直接映射)
<br>
代码2起始物理地址 = 00901000H
![](../../images/《操作系统》大题总结/内存管理真题二.png)
![](../../images/408/《操作系统》大题总结/内存管理真题二.png)
页的大小 = 4KB = $2^{12}$B页面位移比虚拟地址低12位
@ -570,7 +570,7 @@ TLB + 二级页表 + Cache(直接映射)
物理地址 = 101565H
![](../../images/《操作系统》大题总结/内存管理真题三.png)
![](../../images/408/《操作系统》大题总结/内存管理真题三.png)
1
@ -594,7 +594,7 @@ TLB + 二级页表 + Cache(直接映射)
物理地址为 0000 1011 1100 1010 = 0BCAH
![](../../images/《操作系统》大题总结/内存管理真题四.png)
![](../../images/408/《操作系统》大题总结/内存管理真题四.png)
1
@ -617,7 +617,7 @@ TLB + 二级页表 + Cache(直接映射)
适合,程序的时间局部性越好,从空闲页框链表中重新取回的机会越大,该策略优势越明显
![](../../images/《操作系统》大题总结/内存管理真题五.png)
![](../../images/408/《操作系统》大题总结/内存管理真题五.png)
1
@ -644,7 +644,7 @@ TLB + 二级页表 + Cache(直接映射)
访问的是同一个二级页表,即供访问一个二级页表
![](../../images/《操作系统》大题总结/内存管理真题六.png)
![](../../images/408/《操作系统》大题总结/内存管理真题六.png)
1
@ -668,7 +668,7 @@ TLB + 二级页表 + Cache(直接映射)
修改位$\rightarrow$修改字段
![](../../images/《操作系统》大题总结/内存管理真题七.png)
![](../../images/408/《操作系统》大题总结/内存管理真题七.png)
1
@ -706,16 +706,16 @@ a[1][2]的虚拟地址为 10801000H + 4 $\times$ 2 = 10801008H
显式链表分配法FAT文件系统即DOS
![](../../images/《操作系统》大题总结/FAT文件系统示意图.png)
![](../../images/408/《操作系统》大题总结/FAT文件系统示意图.png)
混合索引法Unix文件系统
![](../../images/《操作系统》大题总结/UFS文件系统示意图.png)
![](../../images/408/《操作系统》大题总结/UFS文件系统示意图.png)
### 考题
![](../../images/《操作系统》大题总结/文件管理真题一.png)
![](../../images/408/《操作系统》大题总结/文件管理真题一.png)
1
@ -729,7 +729,7 @@ FCB集中存放文件数据集中存放
这样在随机查找文件名时只需访问FCB对应的块可减少磁头移动和磁盘IO访问次数
![](../../images/《操作系统》大题总结/文件管理真题二.png)
![](../../images/408/《操作系统》大题总结/文件管理真题二.png)
1
@ -753,7 +753,7 @@ FCB集中存放文件数据集中存放
块数可表示$2^{32}$个块共4TB
![](../../images/《操作系统》大题总结/文件管理真题三.png)
![](../../images/408/《操作系统》大题总结/文件管理真题三.png)
1
@ -794,7 +794,7 @@ FAT最大长度 = $2^{16} \times 2B = 128KB$
即访问48号簇106号簇
![](../../images/《操作系统》大题总结/文件管理真题四.png)
![](../../images/408/《操作系统》大题总结/文件管理真题四.png)
1
@ -820,7 +820,7 @@ F的文件控制区的起始块号和文件长度内容会发生改变
文件长度为$1020B \times 4G = 4080GB$
![](../../images/《操作系统》大题总结/文件管理真题五.png)
![](../../images/408/《操作系统》大题总结/文件管理真题五.png)
1
@ -860,7 +860,7 @@ $F_2$采用一级索引$\rightarrow$ 还需读一级索引表
### 大题
![](../../images/《操作系统》大题总结/磁盘管理真题一.png)
![](../../images/408/《操作系统》大题总结/磁盘管理真题一.png)
1
@ -893,7 +893,7 @@ Flash半导体存储器不需要考虑寻道时间和旋转延迟
可直接按IO请求的先后顺序服务
![](../../images/《操作系统》大题总结/磁盘管理真题二.png)
![](../../images/408/《操作系统》大题总结/磁盘管理真题二.png)
1
@ -922,7 +922,7 @@ $30 \times 2 = 60$
将簇号转换成磁盘物理地址的过程由磁盘驱动程序完成
![](../../images/《操作系统》大题总结/磁盘管理真题三.png)
![](../../images/408/《操作系统》大题总结/磁盘管理真题三.png)
1

View File

@ -85,7 +85,7 @@ date: 2023-07-04T16:56:55+08:00
* 新增内容:索引节点编号;状态;访问计数;逻辑设备号;链接指针
![](../../images/书目录和计算机目录对比举例.jpg)
![](../../images/408/《操作系统》文件管理/书目录和计算机目录对比举例.jpg)
### 文件操作
@ -206,7 +206,7 @@ close(fd);//关闭文件
* 缺点
* 要求连续的存储空间,会产生外部碎片,不利于文件的动态扩充
* 例图
* ![](../../images/顺序分配例图.png)
* ![](../../images/408/《操作系统》文件管理/顺序分配例图.png)
* 链表分配
* 特点
* 存放是离散的,不用连续的,于是就可以消除磁盘碎片
@ -222,7 +222,7 @@ close(fd);//关闭文件
* 缺点
* 只能按照文件的指针链顺序访问,查找效率低,指针信息存放消耗内存或磁盘空间
* 例图
* ![](../../images/非连续空间存放方式-链表方式.png)
* ![](../../images/408/《操作系统》文件管理/非连续空间存放方式-链表方式.png)
* 索引分配
* 特点
* 为每个文件创建一个索引数据块存放指向文件数据块的指针列表
@ -234,17 +234,17 @@ close(fd);//关闭文件
* 缺点
* 索引表增加存储空间的开销,索引表的查找策略对文件系统效率影响较大
* 例图
* ![](../../images/非连续空间存放方式-索引方式.png)
* ![](../../images/408/《操作系统》文件管理/非连续空间存放方式-索引方式.png)
* 链表 + 索引
* 特点
* 索引数据块留出一个存放下一个索引数据块的指针
* 例图
* ![](../../images/链式索引块.png)
* ![](../../images/408/《操作系统》文件管理/链式索引块.png)
* 索引 + 索引(多级索引)
* 特点
* 通过一个索引块来存放多个索引数据块
* 例图
* ![](../../images/多级索引块.png)
* ![](../../images/408/《操作系统》文件管理/多级索引块.png)
* 举例
* unix系统的inode结构
* 对于小文件使用直接查找的方式可减少索引数据块的开销
@ -265,12 +265,12 @@ close(fd);//关闭文件
* 为所有空闲空间建立一张表
* 表内容包括空闲区的第一个块号和该空闲区的块个数
* 例图
* ![](../../images/空闲表法.png)
* ![](../../images/408/《操作系统》文件管理/空闲表法.png)
* 空闲链表法
* 每一个空闲块里有一个指针指向下一个空闲块
* 这样能够很方便地找到空闲块并管理起来
* 例图
* ![](../../images/空闲块链表.png)
* ![](../../images/408/《操作系统》文件管理/空闲块链表.png)
* 位图法
* 位图时利用二进制的一位来表示磁盘中一个盘块的使用情况
* 磁盘上所有的盘块都有一个二进制与之对应
@ -328,7 +328,7 @@ close(fd);//关闭文件
* 在磁盘中的结构
* 例图
* ![](../../images/块组.png)
* ![](../../images/408/《操作系统》文件管理/块组.png)
* 引导块
* 在系统启动时用于启用引导
* 块组
@ -371,7 +371,7 @@ close(fd);//关闭文件
### 用户空间、系统调用、虚拟文件系统、缓存、文件系统和存储之间的关系
![](../../images/虚拟文件系统.png)
![](../../images/408/《操作系统》文件管理/虚拟文件系统.png)
### 分区和安装
@ -415,7 +415,7 @@ close(fd);//关闭文件
* 不便于文件共享
* 不适合多用户的OS
* 结构图
* ![](../../images/单级目录结构.jpg)
* ![](../../images/408/《操作系统》文件管理/单级目录结构.jpg)
* 两级目录结构
* 定义
* 文件目录分为主文件目录MDF和用户文件目录UFD
@ -427,7 +427,7 @@ close(fd);//关闭文件
* 缺点
* 缺乏灵活性,不能对文件分类
* 结构图
* ![](../../images/两级目录结构.png)
* ![](../../images/408/《操作系统》文件管理/两级目录结构.png)
* 树型目录结构
* 定义
* 使用绝对路径,相对路径,当前路径的结构
@ -440,7 +440,7 @@ close(fd);//关闭文件
* 利于文件共享
* 查找文件增加了磁盘访问次数,会影响查询速度
* 例图
* ![](../../images/树型目录结构.jpg)
* ![](../../images/408/《操作系统》文件管理/树型目录结构.jpg)
* 无环图目录结构
* 定义
* 在树型目录结构上
@ -494,7 +494,7 @@ close(fd);//关闭文件
* 若得到的值不为0则不能删除此文件
* 即只要还有一个指针在,索引节点就不会被删除
* 例图
* ![](../../images/基于索引结点的共享方式.jpg)
* ![](../../images/408/《操作系统》文件管理/基于索引结点的共享方式.jpg)
* 基于符号链实现文件共享【软链接】
* 定义
* 软链接相当于重新创建一个文件

View File

@ -301,7 +301,7 @@ date: 2022-08-18T15:53:40+08:00
![](../../images/system_boot_pic.jpg)
![](../../images/408/《操作系统》计算机系统概述/system_boot_pic.jpg)
* 启动过程
1. CPU加电CS:IP指向FFFF0H

View File

@ -332,7 +332,7 @@ date: 2023-07-01T15:59:00+08:00
* 克服了多对一模型的并发度不高的缺点
* 克服了一对一模型的一个用户进程占用太多内核线程而开销打的缺点
![](../../images/muti-thread_model.jpg)
![](../../images/408/《操作系统》进程与线程/muti-thread_model.jpg)
## 处理机调度
@ -348,7 +348,7 @@ date: 2023-07-01T15:59:00+08:00
* 调度是多道程序OS的基础调度是OS设计的核心问题
* 层次分类模型图
![](../../images/调度层次分类模型图.jpg)
![](../../images/408/《操作系统》进程与线程/调度层次分类模型图.jpg)
* 高级调度、作业调度
* 是内存与辅存的调度,从后备队列中调度作业
@ -371,7 +371,7 @@ date: 2023-07-01T15:59:00+08:00
* 调度程序结构图
![](../../images/调度程序结构图.jpg)
![](../../images/408/《操作系统》进程与线程/调度程序结构图.jpg)
* 调度器的组成
* 用于调度和分派CPU的组件
@ -949,16 +949,16 @@ do{
#### 安全性算法和银行家算法例题举例
![](../../images/安全性算法和银行家算法举例.jpg)
![](../../images/408/《操作系统》进程与线程/安全性算法和银行家算法举例.jpg)
安全性算法解法
![](../../images/安全性算法和银行家算法举例安全性算法解法.jpg)
![](../../images/408/《操作系统》进程与线程/安全性算法和银行家算法举例安全性算法解法.jpg)
银行家算法解法
![](../../images/安全性算法和银行家算法举例银行家算法解法.jpg)
![](../../images/408/《操作系统》进程与线程/安全性算法和银行家算法举例银行家算法解法.jpg)

View File

@ -66,7 +66,7 @@ typedef struct
时间复杂度为O(mn)
![](../../images/《数据结构》栈、队列和数组/暴力匹配算法.jpg)
![](../../images/408/《数据结构》栈、队列和数组/暴力匹配算法.jpg)
```c
@ -101,7 +101,7 @@ int Index_BF(string s, string t)
时间复杂度为O(m + n)
![](../../images/《数据结构》栈、队列和数组/模式匹配算法.jpg)
![](../../images/408/《数据结构》栈、队列和数组/模式匹配算法.jpg)
```c

View File

@ -21,7 +21,7 @@ date: 2023-08-01T11:26:56+08:00
* G = (V,E)
* V = {1,2,3,4,5,6}
* E = {(1,2),(2,3),(3,4),(4,5),(1,5),(5,6),(2,6),(3,6)}
* ![](../../images/《数据结构》图/无向图实例.png)
* ![](../../images/408/《数据结构》图/无向图实例.png)
### 常考结论
@ -49,22 +49,22 @@ date: 2023-08-01T11:26:56+08:00
* 无向图
* 全部由无向边构成的图
* ![](../../images/《数据结构》图/无向图.png)
* ![](../../images/408/《数据结构》图/无向图.png)
* 有向图
* 全部由有向边构成的图
* ![](../../images/《数据结构》图/有向图.png)
* ![](../../images/408/《数据结构》图/有向图.png)
* 简单图、多重图
* 简单图:不存在重复边,不存在顶点到自身的边
* 多重图两个顶点之间的边数大于1
* 完全图(简单完全图)
* 完全无向图:边数$\frac{n(n-1)}{2}$
* 完全有向图:边数为$n(n-1)$
* ![](../../images/《数据结构》图/完全无向图.png)
* ![](../../images/《数据结构》图/完全有向图.png)
* ![](../../images/408/《数据结构》图/完全无向图.png)
* ![](../../images/408/《数据结构》图/完全有向图.png)
* 子图、生成子图
* G的子图所有顶点和边
* G的生成子图含有G的所有顶点
* ![](../../images/《数据结构》图/生成子图.png)
* ![](../../images/408/《数据结构》图/生成子图.png)
* 连通、连通图、连通分量【无向图】
* V和W连通无向图中V到W的路径存在
* 连通图:图中任意两个顶点都是连通的
@ -79,15 +79,15 @@ date: 2023-08-01T11:26:56+08:00
* 出度:从该顶点出去的边的数目
* 顶点的度 = 出度 + 入度
* 对于具有n个顶点e条边的有向图出度和 = 入度和 = e对于具有n个顶点e条边的无向图度和 = 2e
* ![](../../images/《数据结构》图/顶点的度.png)
* ![](../../images/408/《数据结构》图/顶点的度.png)
* 边的权和网
* 权Weight:边上的数值
* 网Network边上标识权的图
* ![](../../images/《数据结构》图/边的权和网.png)
* ![](../../images/408/《数据结构》图/边的权和网.png)
* 稠密图,稀疏图
* 稠密图:边多
* 稀疏图:边少
* ![](../../images/《数据结构》图/稠密图.png)
* ![](../../images/408/《数据结构》图/稠密图.png)
* 路径、路径长度和回路
* 路径Path在一个图中路径是从顶点u到顶点v所经过的顶点序列
* 路径长度:该路径上边的数目
@ -113,7 +113,7 @@ date: 2023-08-01T11:26:56+08:00
* 用两个数组来表示图
* 一个一位数组存储图中顶点信息
* 一个二维数组存储图中的边或弧的信息
* ![](../../images/《数据结构》图/邻接矩阵.jpg)
* ![](../../images/408/《数据结构》图/邻接矩阵.jpg)
* 邻接表
* 邻接表是由两部分组成
* 顶点用一个一维数组存储
@ -121,17 +121,17 @@ date: 2023-08-01T11:26:56+08:00
* 由于邻接点的个数不定,所以用单链表存储
* 无向图称为顶点Vi的边表
* 有向图则称为顶点Vi作为弧边的出边表
* ![](../../images/《数据结构》图/邻接表.jpg)
* ![](../../images/408/《数据结构》图/邻接表.jpg)
* 十字链表【针对有向图】
* 把邻接表和逆邻接表整合在了一起
* 既容易找到以Vi为尾的弧也容易找到以Vi为头的弧
* 容易求得顶点的出度和入度
* 创建图算法的时间复杂度和邻接表相同
* ![](../../images/《数据结构》图/十字链表.jpg)
* ![](../../images/408/《数据结构》图/十字链表.jpg)
* 邻接多重表【针对无向图】
* 仿照十字链表的方式,对边表结点的结构进行一些改造
* 同一条边在邻接表中用两个结点表示,而在邻接多重表中只有一个结点
* ![](../../images/《数据结构》图/邻接多重表.jpg)
* ![](../../images/408/《数据结构》图/邻接多重表.jpg)
### 图的基本操作
@ -163,11 +163,11 @@ date: 2023-08-01T11:26:56+08:00
* 最好情况O(1)
* 最坏情况O(n)
* 遍历过程
* ![](../../images/《数据结构》图/DFS遍历过程.jpg)
* ![](../../images/408/《数据结构》图/DFS遍历过程.jpg)
* 生成树
* ![](../../images/《数据结构》图/DFS生成树.jpg)
* ![](../../images/408/《数据结构》图/DFS生成树.jpg)
* 生成森林
* ![](../../images/《数据结构》图/DFS生成森林.jpg)
* ![](../../images/408/《数据结构》图/DFS生成森林.jpg)
### 广度优先搜索BFS
@ -180,11 +180,11 @@ date: 2023-08-01T11:26:56+08:00
* 空间复杂度
* O(n)
* 遍历过程
* ![](../../images/《数据结构》图/BFS遍历过程.jpg)
* ![](../../images/408/《数据结构》图/BFS遍历过程.jpg)
* 生成树
* ![](../../images/《数据结构》图/BFS生成树.jpg)
* ![](../../images/408/《数据结构》图/BFS生成树.jpg)
* 生成森林
* ![](../../images/《数据结构》图/BFS生成森林.jpg)
* ![](../../images/408/《数据结构》图/BFS生成森林.jpg)
### 遍历次数
@ -217,34 +217,34 @@ date: 2023-08-01T11:26:56+08:00
* 算法1Prim算法
* 类似于寻找图的最短路径的Dijkstra算法【以自我为中心】
* 当带权连通图的任意一个环中所包含的边权值不同时,最小生成树是唯一的
* ![](../../images/《数据结构》图/Prim算法.jpg)
* ![](../../images/408/《数据结构》图/Prim算法.jpg)
* 算法2Kruskal算法
* 按权值的递增次序选择合适的边来构造最小生成树【不以自我为中心】
* ![](../../images/《数据结构》图/Kruskal算法.jpg)
* ![](../../images/408/《数据结构》图/Kruskal算法.jpg)
### 最短路径
* BFS
* 求无权图的单源最短路径问题
* ![](../../images/《数据结构》图/求无权图的单源最短路径问题.jpg)
* ![](../../images/408/《数据结构》图/求无权图的单源最短路径问题.jpg)
* Dijkstra
* 求有向图的单源最短路径问题
* ![](../../images/《数据结构》图/求有向图的单源最短路径问题.jpg)
* ![](../../images/408/《数据结构》图/求有向图的单源最短路径问题.jpg)
* Floyd算法
* 求任意两顶点的最短路径
* ![](../../images/《数据结构》图/求任意两顶点间的最短路径.jpg)
* ![](../../images/408/《数据结构》图/求任意两顶点间的最短路径.jpg)
### 有向无环图描述表达式
* 有向无环图定义
* 若一个有向图中不存在环则称为有向无环图简称DAG图
* 利用有向无环图描述表达式【顶点中不能出现重复操作数】
* ![](../../images/《数据结构》图/利用有向无环图描述表达式.jpg)
* ![](../../images/408/《数据结构》图/利用有向无环图描述表达式.jpg)
### 拓扑排序优先入度为0
* 核心算法
* ![](../../images/《数据结构》图/拓扑排序.jpg)
* ![](../../images/408/《数据结构》图/拓扑排序.jpg)
* 时间复杂度
* 采用邻接矩阵存储,时间复杂度为$O(|V|^2)$
* 采用邻接表存储时间复杂度为O(|V|+|E|)
@ -252,7 +252,7 @@ date: 2023-08-01T11:26:56+08:00
### 逆拓扑排序优先出度为0
* 核心算法
* ![](../../images/《数据结构》图/逆拓扑排序.jpg)
* ![](../../images/408/《数据结构》图/逆拓扑排序.jpg)
### 关键路径
@ -264,10 +264,10 @@ date: 2023-08-01T11:26:56+08:00
* 有多条关键路径的时候,减少关键活动的时间不一定会缩短工程的工期
* 求关键路径的快速方法:找起点到终点的最长路径
* AOE网
* ![](../../images/《数据结构》图/AOE网.jpg)
* ![](../../images/408/《数据结构》图/AOE网.jpg)
* 计算过程
![](../../images/《数据结构》图/计算过程.jpg)
![](../../images/408/《数据结构》图/计算过程.jpg)
1. 求所有事件的最早发生事件Ve()

View File

@ -4,7 +4,7 @@ date: 2023-08-03T19:21:43+08:00
---
![](../../images/《数据结构》大题/大题1.jpg)
![](../../images/408/《数据结构》大题/大题1.jpg)
1
@ -12,7 +12,7 @@ date: 2023-08-03T19:21:43+08:00
2
![](../../images/《数据结构》大题/大题1图1.png)
![](../../images/408/《数据结构》大题/大题1图1.png)
front为队首指针rear为队尾指针
@ -26,7 +26,7 @@ frontrear均指向空闲结点
3
![](../../images/《数据结构》大题/大题1图2.png)
![](../../images/408/《数据结构》大题/大题1图2.png)
4
@ -53,7 +53,7 @@ front = front -> next;
---
![](../../images/《数据结构》大题/大题2.jpg)
![](../../images/408/《数据结构》大题/大题2.jpg)
1
@ -80,7 +80,7 @@ $01011010\cdots$
---
![](../../images/《数据结构》大题/大题3.jpg)
![](../../images/408/《数据结构》大题/大题3.jpg)
1
@ -101,7 +101,7 @@ $01011010\cdots$
---
![](../../images/《数据结构》大题/大题4.jpg)
![](../../images/408/《数据结构》大题/大题4.jpg)
1
@ -124,7 +124,7 @@ $01011010\cdots$
---
![](../../images/《数据结构》大题/大题5.jpg)
![](../../images/408/《数据结构》大题/大题5.jpg)
2
@ -137,7 +137,7 @@ $01011010\cdots$
---
![](../../images/《数据结构》大题/大题6.jpg)
![](../../images/408/《数据结构》大题/大题6.jpg)
1
@ -184,7 +184,7 @@ $$
---
![](../../images/《数据结构》大题/大题7.jpg)
![](../../images/408/《数据结构》大题/大题7.jpg)
1
@ -261,7 +261,7 @@ typedef struct hNode
(3)
![](../../images/《数据结构》大题/大题7图1.jpg)
![](../../images/408/《数据结构》大题/大题7图1.jpg)
|目的网络|路径|代价|
|:---:|:---:|:---:|
@ -273,7 +273,7 @@ typedef struct hNode
---
![](../../images/《数据结构》大题/大题8.jpg)
![](../../images/408/《数据结构》大题/大题8.jpg)
不一定能求得最短路径
@ -283,7 +283,7 @@ typedef struct hNode
---
![](../../images/《数据结构》大题/大题9.jpg)
![](../../images/408/《数据结构》大题/大题9.jpg)
1
@ -300,7 +300,7 @@ $$
2
![](../../images/《数据结构》大题/大题9图1.png)
![](../../images/408/《数据结构》大题/大题9图1.png)
3
@ -311,7 +311,7 @@ $$
---
![](../../images/《数据结构》大题/大题10.jpg)
![](../../images/408/《数据结构》大题/大题10.jpg)
总费用均为16
@ -330,7 +330,7 @@ TTL = 5=>IP分组的最大传递距离 = 5
---
![](../../images/《数据结构》大题/大题11.jpg)
![](../../images/408/《数据结构》大题/大题11.jpg)
1
@ -381,7 +381,7 @@ $ASL_{失败} = \frac{3+2+1+2+1+5+4}{7} = \frac{18}{7}$
---
![](../../images/《数据结构》大题/大题12.jpg)
![](../../images/408/《数据结构》大题/大题12.jpg)
1
@ -409,7 +409,7 @@ $ASL=0.15\times1 + 0.35\times2 + 0.35\times2 + 0.15\times3 = 2.0$
---
![](../../images/《数据结构》大题/大题13.jpg)
![](../../images/408/《数据结构》大题/大题13.jpg)
1

View File

@ -16,7 +16,7 @@ date: 2023-08-02T21:25:52+08:00
* 稳定性
* 稳定
* 例图
* ![](../../images/《数据结构》排序/直接插入排序.png)
* ![](../../images/408/《数据结构》排序/直接插入排序.png)
* 代码
```c
@ -48,7 +48,7 @@ void insertion_sort(int arr[],int len)
* 常考点
* 计算希尔排序的增量大小
* 例图
* ![](../../images/《数据结构》排序/希尔排序.png)
* ![](../../images/408/《数据结构》排序/希尔排序.png)
* 代码
```c
@ -104,7 +104,7 @@ void shell_sort(int arr[],int len)
* 元素从小到大时 = 最坏情况比较次数 = $\frac{n\times(n-1)}{2}$
* 元素从小到大时 = 最好情况比较次数 = n-1
* 例图
* ![](../../images/《数据结构》排序/冒泡排序.png)
* ![](../../images/408/《数据结构》排序/冒泡排序.png)
代码
@ -161,10 +161,10 @@ int main()
* 最小递归深度 = 枢纽值每次都是子表的最大值或最小值 = 单链表 = 树高为n
* 例图
* 三位取中【通常取最左边的元素为枢纽值】
* ![](../../images/《数据结构》排序/三位取中.png)
* ![](../../images/408/《数据结构》排序/三位取中.png)
* 根据枢纽值进行分割【通常先从右到左交换比枢纽值小的,再从左到右交换比枢纽值大的
* ![](../../images/《数据结构》排序/根据枢纽值进行分割1.png)
* ![](../../images/《数据结构》排序/根据枢纽值进行分割2.png)
* ![](../../images/408/《数据结构》排序/根据枢纽值进行分割1.png)
* ![](../../images/408/《数据结构》排序/根据枢纽值进行分割2.png)
* 代码
```c
@ -212,7 +212,7 @@ void Qsort(int A[],L,R)//a数组保存数据L和R是边界
* 常考点
* 比较次数数量级与序列初始状态无关
* 例图
* ![](../../images/《数据结构》排序/简单选择排序.jpg)
* ![](../../images/408/《数据结构》排序/简单选择排序.jpg)
* 代码
```c
@ -310,15 +310,15 @@ void heapSort(int A[],int n)
### 建堆过程
![](../../images/《数据结构》排序/掌握建堆的过程.jpg)
![](../../images/408/《数据结构》排序/掌握建堆的过程.jpg)
### 掌握堆增加一个元素的过程
![](../../images/《数据结构》排序/掌握堆增加一个元素的过程.jpg)
![](../../images/408/《数据结构》排序/掌握堆增加一个元素的过程.jpg)
### 掌握大顶堆和小顶堆的概念
![](../../images/《数据结构》排序/掌握大顶堆和小顶堆的概念.jpg)
![](../../images/408/《数据结构》排序/掌握大顶堆和小顶堆的概念.jpg)
## 归并排序和基数排序
@ -340,7 +340,7 @@ void heapSort(int A[],int n)
* 比较次数数量级与序列初始状态无关
* 对于N个元素进行k路归并排序的趟数满足$k^m = N$
* 例图
* ![](../../images/《数据结构》排序/归并排序.png)
* ![](../../images/408/《数据结构》排序/归并排序.png)
* 代码
```c
@ -404,7 +404,7 @@ void mergeSort(vector<int>& arr,int l,int r)
* MSD是最高位优先LSD是最低位优先
* 基数排序不能对float和double类型的实数进行排序
* 例题
* ![](../../images/《数据结构》排序/基数排序.jpg)
* ![](../../images/408/《数据结构》排序/基数排序.jpg)
* 代码
```c
@ -488,7 +488,7 @@ void radixSort(int data[],int n)
* 将整个文件等分为10个临时文件每个文件有1000个记录
* 然后将这10个文件依次进入内存采取适当的内存排序算法对其中的记录进行排序将得到的有序文件初始归并段移至内存
* 对得到的10个初始归并段进行如图的两两归并直到得到一个完整的有序文件
* ![](../../images/《数据结构》排序/外部排序举例.png)
* ![](../../images/408/《数据结构》排序/外部排序举例.png)
* 如图有10个初始归并段到一个有序文件共进行了4次归并每次都由m个归并段得到[m/2]个归并段这种归并方式被称为2-路平衡归并
* 效率分析
* 影响整体排序效率的因素主要取决于读写外存的次数,即访问外存的次数越多,算法花费的时间越多,效率就越低

View File

@ -72,7 +72,7 @@ int Search.Seq(SSTable ST,ElemType key){
查找判定树
![](../../images/《数据结构》查找/顺序查找的优化.jpg)
![](../../images/408/《数据结构》查找/顺序查找的优化.jpg)
性质:
@ -119,7 +119,7 @@ int Binary_Search(SSTable L,ElemType ket){
### 查找效率分析
![](../../images/《数据结构》查找/查找效率分析.jpg)
![](../../images/408/《数据结构》查找/查找效率分析.jpg)
$ASL_{成功} = (1 \cdot 1 + 2\cdot 2+3\cdot 4+4\cdot 4)/11 = 3$(有分支结点)
@ -130,7 +130,7 @@ $ASL_{失败} = (4\cdot 3+8\cdot 4)/12 = \frac{11}{3}$(叶子结点)
* 折半查找树是平衡二叉树左右子树高度之差不大于1
* 折半查找判定树可以用二叉排序树来判别,其中序序列是一个有序序列
* 还有可能要判断取整方向是否一致
* ![](../../images/《数据结构》查找/折半查找判定树.jpeg)
* ![](../../images/408/《数据结构》查找/折半查找判定树.jpeg)
### 常考结论
@ -144,7 +144,7 @@ $ASL_{失败} = (4\cdot 3+8\cdot 4)/12 = \frac{11}{3}$(叶子结点)
### 定义
![](../../images/《数据结构》查找/分块查找.jpg)
![](../../images/408/《数据结构》查找/分块查找.jpg)
```c
//索引表
@ -158,7 +158,7 @@ ElemType List[100];
### 效率分析
![](../../images/《数据结构》查找/效率分析.jpg)
![](../../images/408/《数据结构》查找/效率分析.jpg)
设长度为n的查找表被均匀低分为6块每个块包含s个元素
@ -212,7 +212,7 @@ $ASL = [\log_2(b+1)]+\frac{s+1}{2}$
#### 查找
![](../../images/《数据结构》查找/BST查找.png)
![](../../images/408/《数据结构》查找/BST查找.png)
```c
typedef Struct BSTNode{
@ -251,7 +251,7 @@ BSTNode *BSTSearch(BSTTree T,int key){
#### 插入
![](../../images/《数据结构》查找/BST插入.jpg.png)
![](../../images/408/《数据结构》查找/BST插入.jpg.png)
```c
//在二叉排序树中插入关键字为key的新结点递归
@ -276,7 +276,7 @@ int BST_Insert(BSTTree &T,int k){
按{50,66,60,26,21,30,70,68}建立BST
![](../../images/《数据结构》查找/BST构造.png)
![](../../images/408/《数据结构》查找/BST构造.png)
```c
//按照str[]中的关键字序列建立二叉排序树
@ -292,18 +292,18 @@ void Create_BST(BSTTree &T,int str[],int n){
#### 删除
![](../../images/《数据结构》查找/BST删除.png)
![](../../images/408/《数据结构》查找/BST删除.png)
#### 查找效率分析
![](../../images/《数据结构》查找/BST效率分析1.png)
![](../../images/408/《数据结构》查找/BST效率分析1.png)
$ASL_{成功} = \frac{(1\times1 + 2\times2 + 3\times4 +4\times1)}{8} = \frac{21}{8}$
$ASL_{失败} = \frac{(3\times7+2\times4)}{9} = \frac{29}{9}$
![](../../images/《数据结构》查找/BST效率分析2.png)
![](../../images/408/《数据结构》查找/BST效率分析2.png)
$ASL_{成功} = \frac{(1\times1 + 2\times2 + 3\times1 +4\times1+5\times1+6\times1+7\times1)}{8} = \frac{30}{8}$
@ -314,14 +314,14 @@ $ASL_{失败} = \frac{(3\times2+1\times3+1\times4+1\times5+1\times6+2\times7)}{9
#### 调整最小平衡子树
![](../../images/《数据结构》查找/调整最小不平衡子树.jpg)
![](../../images/408/《数据结构》查找/调整最小不平衡子树.jpg)
#### 平衡二叉树生成案例
{15,3,7,10,9,8}生成平衡二叉树的过程
![](../../images/《数据结构》查找/平衡二叉树生成例子.png)
![](../../images/408/《数据结构》查找/平衡二叉树生成例子.png)
#### 平衡二叉树的查找
@ -335,7 +335,7 @@ $n_0 = 0,n_1 = 1,n_2 = 2,n_3 = 4$
#### 平衡二叉树的删除
![](../../images/《数据结构》查找/BST删除.png)
![](../../images/408/《数据结构》查找/BST删除.png)
1. 删除结点(二叉排序树)
2. 向上寻找最小不平衡子树
@ -343,9 +343,9 @@ $n_0 = 0,n_1 = 1,n_2 = 2,n_3 = 4$
4. 依孙子位置调节平衡(LL/RR/LR/RL)
5. 调整后不平衡向上传导,重复第二步
![](../../images/《数据结构》查找/平衡二叉树生成例题1.jpg)
![](../../images/408/《数据结构》查找/平衡二叉树生成例题1.jpg)
![](../../images/《数据结构》查找/平衡二叉树生成例题2.jpg)
![](../../images/408/《数据结构》查找/平衡二叉树生成例题2.jpg)
### 红黑树
@ -363,7 +363,7 @@ $n_0 = 0,n_1 = 1,n_2 = 2,n_3 = 4$
插入序列{20,10,5,30,40,57,3,2,4,35,25,18,22,23,24,19,18}
![](../../images/《数据结构》查找/红黑树.jpg)
![](../../images/408/《数据结构》查找/红黑树.jpg)
## B树B-tree
@ -380,7 +380,7 @@ $n_0 = 0,n_1 = 1,n_2 = 2,n_3 = 4$
* 所有叶节点都在同一层次上
* 概念图
* B树中一个节点的子节点数目的最大值用m表示假如最大值为4则为4阶
* ![](../../images/《数据结构》查找/B树概念图.png)
* ![](../../images/408/《数据结构》查找/B树概念图.png)
## B+树
@ -391,7 +391,7 @@ $n_0 = 0,n_1 = 1,n_2 = 2,n_3 = 4$
* 叶子结点本身依关键字的大小自小而大的顺序链接
* 所有的非终端节点可以看成是索引部分,结点中仅含有其子树根结点中最大(或最小)关键字
* 概念图
* ![](../../images/《数据结构》查找/B+树概念图.png)
* ![](../../images/408/《数据结构》查找/B+树概念图.png)
* B树和B+树的对比
||m阶B树|m阶B+树|
@ -437,12 +437,12 @@ $n_0 = 0,n_1 = 1,n_2 = 2,n_3 = 4$
* 一旦产生了冲突,就按某种规则去寻找另一空地址
* 发生聚集的原因主要是解决冲突的方法选择不当
* 线性探测
* ![](../../images/《数据结构》查找/线性探测.png)
* ![](../../images/《数据结构》查找/散列表查找性能分析.png)
* ![](../../images/408/《数据结构》查找/线性探测.png)
* ![](../../images/408/《数据结构》查找/散列表查找性能分析.png)
* 平方探测
* ![](../../images/《数据结构》查找/平方探测.png)
* ![](../../images/408/《数据结构》查找/平方探测.png)
* 有定理显示如果散列表长度TableSize是某个4k+3(k是正整数)形式的素数时,平方探测就可以探查到整个散列表空间
* 链地址法
* 将相应位置上冲突的所有关键词存储在同一单链表中
* ![](../../images/《数据结构》查找/链地址法.png)
* ![](../../images/408/《数据结构》查找/链地址法.png)

View File

@ -129,7 +129,7 @@ bool GetTop(SqStack S,ElemType x)
* 利用栈底位置相对不变的特性,可让两个顺序栈共享一个一维数组空间
* 将两个栈的栈底分别设置在共享空间的两端,两个栈顶向共享空间的中间延伸
* 特点
* ![](../../images/《数据结构》栈、队列和数组/共享栈特点.jpg)
* ![](../../images/408/《数据结构》栈、队列和数组/共享栈特点.jpg)
* 目的
* 更有效地利用存储空间
* 两个栈的空间相互调节,只有在整个存储空间都被占满时才发生上溢
@ -180,13 +180,13 @@ typedef struct Linknode
后缀表达式和正常表达式的相互转换
![](../../images/《数据结构》栈、队列和数组/后缀表达式和正常表达式的相互转换.jpg)
![](../../images/408/《数据结构》栈、队列和数组/后缀表达式和正常表达式的相互转换.jpg)
---
中缀到后缀表达式转换的过程
![](../../images/《数据结构》栈、队列和数组/中缀到后缀表达式转换的过程.jpg)
![](../../images/408/《数据结构》栈、队列和数组/中缀到后缀表达式转换的过程.jpg)
#### 递归
@ -219,7 +219,7 @@ typedef struct Linknode
##### 顺序队列的实现
![](../../images/《数据结构》栈、队列和数组/顺序队列的实现.jpg)
![](../../images/408/《数据结构》栈、队列和数组/顺序队列的实现.jpg)
```c
@ -244,7 +244,7 @@ typedef struct
##### 循环队列的实现
![](../../images/《数据结构》栈、队列和数组/循环队列的实现.jpg)
![](../../images/408/《数据结构》栈、队列和数组/循环队列的实现.jpg)
##### 区分循环队列队空还是队满
@ -443,7 +443,7 @@ bool DeEmpty(LinkQueue &Q,ElemType &x)
使用队列是为了保存下一步的处理顺序
![](../../images/《计网》应用层/层次域名空间.png)
![](../../images/408/《计网》应用层/层次域名空间.png)
#### 计算机系统中的应用

View File

@ -16,7 +16,7 @@ date: 2023-07-31T14:08:42+08:00
* 每一个非根节点有且只有一个父节点
* 除了根节点外,每个子节点可以分为多个不相交的子树
* 结构图
* ![](../../images/《数据结构》树与二叉树/树的定义.jpg)
* ![](../../images/408/《数据结构》树与二叉树/树的定义.jpg)
* 树的高度、深度、层
* 节点的高度 = 节点到叶子节点的最长路径
* 节点的深度 = 根节点到这个节点所经历的边的个数
@ -47,10 +47,10 @@ date: 2023-07-31T14:08:42+08:00
* 采用一组连续空间来存储每个节点
* 在每个节点中设置一个伪指针
* 尾指针指示器双亲节点在数组中的位置
* ![](../../images/《数据结构》树与二叉树/双亲表示法.jpg)
* ![](../../images/408/《数据结构》树与二叉树/双亲表示法.jpg)
* 孩子表示法
* 将每个节点的孩子节点用单链表连接
* ![](../../images/《数据结构》树与二叉树/孩子表示法.jpg)
* ![](../../images/408/《数据结构》树与二叉树/孩子表示法.jpg)
* 孩子兄弟表示法
* 又叫二叉树表示法
* 以二叉链表作为树的存储结构
@ -58,7 +58,7 @@ date: 2023-07-31T14:08:42+08:00
* 孩子节点
* 数据
* 兄弟节点
* ![](../../images/《数据结构》树与二叉树/孩子兄弟表示法.jpg)
* ![](../../images/408/《数据结构》树与二叉树/孩子兄弟表示法.jpg)
### 树林和二叉树的转换
@ -66,12 +66,12 @@ date: 2023-07-31T14:08:42+08:00
* 在兄弟节点之间加一连线
* 对每个节点,只保留它与第一个孩子的连线
* 以树根为轴心顺时针旋转45度
* ![](../../images/《数据结构》树与二叉树/树与二叉树.jpg)
* ![](../../images/408/《数据结构》树与二叉树/树与二叉树.jpg)
* 树、树林与二叉树
* 将森林中的每棵树转换成相应的二叉树
* 每棵树的根也可以视为兄弟关系,在每棵树之间加一根连线
* 以第一棵树的根为轴心旋转45
* ![](../../images/《数据结构》树与二叉树/树,树林与二叉树.jpg)
* ![](../../images/408/《数据结构》树与二叉树/树,树林与二叉树.jpg)
### 树和森林的遍历对应关系
@ -91,7 +91,7 @@ date: 2023-07-31T14:08:42+08:00
* 二叉树可以是空集
* 根可以有空的左子树或右子树
* 左、右子树皆为空
* ![](../../images/《数据结构》树与二叉树/二叉树的定义.jpg)
* ![](../../images/408/《数据结构》树与二叉树/二叉树的定义.jpg)
* 性质
* 二叉树第i层上的节点数目最多为$2^{i-1}$
* 深度为k的二叉树最多有$2^k-1$个节点(满二叉树)
@ -104,21 +104,21 @@ date: 2023-07-31T14:08:42+08:00
* 满二叉树
* 高度为h并且有$2^h -1$个结点的二叉树
* ![](../../images/《数据结构》树与二叉树/满二叉树.jpg)
* ![](../../images/408/《数据结构》树与二叉树/满二叉树.jpg)
* 完全二叉树
* 叶子结点只能出现在最下层和次下层,最下层的叶子结点集中在树的左部
* 一棵满二叉树必定是一棵完全二叉树
* 完全二叉树未必是满二叉树
* 完全二叉树中度为1的节点数 = 0个或者1个
* ![](../../images/《数据结构》树与二叉树/完全二叉树.jpg)
* ![](../../images/408/《数据结构》树与二叉树/完全二叉树.jpg)
* 二叉查找树
* 左子树节点比根节点值小
* 右子树节点比根节点值大
* 没有剑指相等的节点
* ![](../../images/《数据结构》树与二叉树/二叉查找树.jpg)
* ![](../../images/408/《数据结构》树与二叉树/二叉查找树.jpg)
* 平衡二叉树
* 树上任一结点的左子树和右子树的深度值差不超过1
* ![](../../images/《数据结构》树与二叉树/平衡二叉树.jpg)
* ![](../../images/408/《数据结构》树与二叉树/平衡二叉树.jpg)
### 二叉树的存储结构
@ -136,7 +136,7 @@ date: 2023-07-31T14:08:42+08:00
* 完全二叉树
* 满二叉树
* 结构图
* ![](../../images/《数据结构》树与二叉树/顺序存储结构.jpg)
* ![](../../images/408/《数据结构》树与二叉树/顺序存储结构.jpg)
* 链式存储结构
* 定义
* 只要知道根节点,就可以通过左右子节点的指针把整棵二叉树串起来
@ -148,7 +148,7 @@ date: 2023-07-31T14:08:42+08:00
* 适用于
* 二叉树
* 结构图
* ![](../../images/《数据结构》树与二叉树/链式存储结构.jpg)
* ![](../../images/408/《数据结构》树与二叉树/链式存储结构.jpg)
## 二叉树的实现
@ -172,7 +172,7 @@ struct TreeNode
根节点->左节点->右节点
![](../../images/《数据结构》树与二叉树/前序.jpg)
![](../../images/408/《数据结构》树与二叉树/前序.jpg)
递归代码
@ -219,7 +219,7 @@ void PreOrderTraversal(BinTree BT)
左节点->根节点->右节点
![](../../images/《数据结构》树与二叉树/中序.jpg)
![](../../images/408/《数据结构》树与二叉树/中序.jpg)
递归代码
@ -269,7 +269,7 @@ void InOrderTraversal(BinTree BT)
左节点->右节点->根节点
![](../../images/《数据结构》树与二叉树/后序.jpg)
![](../../images/408/《数据结构》树与二叉树/后序.jpg)
递归方式
@ -350,7 +350,7 @@ void LevelOrderTraversal(BinTree BT)
#### 三种遍历示例
![](../../images/《数据结构》树与二叉树/三种遍历实例.jpg)
![](../../images/408/《数据结构》树与二叉树/三种遍历实例.jpg)
(01) 前序遍历结果 3 1 2 5 4 6
(02) 中序遍历结果 1 2 3 4 5 6
@ -365,7 +365,7 @@ void LevelOrderTraversal(BinTree BT)
* 前序序列与后序序列刚好相反的时候,二叉树的高度 = 节点数(即每层只有一个节点)
* 后序遍历可以找到m到n的路径其中m是n的祖先
* 根据两个序列确定二叉树的方法
* ![](../../images/《数据结构》树与二叉树/例题.jpg)
* ![](../../images/408/《数据结构》树与二叉树/例题.jpg)
### 线索二叉树
@ -395,7 +395,7 @@ void LevelOrderTraversal(BinTree BT)
2. 节点右子节点为空的指针域指向它的后继节点
3. 节点左子节点为空的指针域指向它的前驱节点
![](../../images/《数据结构》树与二叉树/中序遍历.png)
![](../../images/408/《数据结构》树与二叉树/中序遍历.png)
## 树和二叉树的应用
@ -413,7 +413,7 @@ void LevelOrderTraversal(BinTree BT)
* 构造
* 每次把队列中值最小的合并,合并后的值加入队列中再继续比较
* 例题
* ![](../../images/《数据结构》树与二叉树/哈夫曼树例题.jpg)
* ![](../../images/408/《数据结构》树与二叉树/哈夫曼树例题.jpg)
### 哈夫曼编码
@ -428,9 +428,9 @@ void LevelOrderTraversal(BinTree BT)
* 01 110 10 01 1111 00 00 10 01 110 10 01 111 00 00 10 11101 10 1110
* 最终只需50位内存比ascii码表示节省了2/3空间
![](../../images/《数据结构》树与二叉树/哈夫曼树.jpg)
![](../../images/408/《数据结构》树与二叉树/哈夫曼树.jpg)
![](../../images/《数据结构》树与二叉树/对应的哈夫曼编码.jpg)
![](../../images/408/《数据结构》树与二叉树/对应的哈夫曼编码.jpg)
最终编码表
@ -444,7 +444,7 @@ void LevelOrderTraversal(BinTree BT)
* 并查集是一种简单的集合表示支持3种操作
* 并查集的存储结构是双亲表示法存储的树,主要是为了方便两个主要的操作
* 例题
* ![](../../images/《数据结构》树与二叉树/并查集例题.jpg)
* ![](../../images/408/《数据结构》树与二叉树/并查集例题.jpg)
#### 并查集操作
@ -461,7 +461,7 @@ void Initial(int S[])
```
![](../../images/《数据结构》树与二叉树/并查集初始化.jpg)
![](../../images/408/《数据结构》树与二叉树/并查集初始化.jpg)
##### Union(S,Root1,Root2)
@ -476,7 +476,7 @@ void Union(int S[],int Root1,int Root2)
```
![](../../images/《数据结构》树与二叉树/并查集表示方法.jpg)
![](../../images/408/《数据结构》树与二叉树/并查集表示方法.jpg)
##### Find(S,x)
@ -491,4 +491,4 @@ int Find(int S[],int x)
}
```
![](../../images/《数据结构》树与二叉树/用树表示并查集.jpg)
![](../../images/408/《数据结构》树与二叉树/用树表示并查集.jpg)

View File

@ -227,7 +227,7 @@ for(i = 1; i<=n; ++i)
* 求执行次数的贵吗即可
* 先判断退出循环的关系然后构建某语句执行次数和n之间的关系解出的规模就是时间复杂度
![](../../images/《数据结构》绪论/例题1.jpg)
![](../../images/408/《数据结构》绪论/例题1.jpg)
设第k次循环终止
@ -237,7 +237,7 @@ for(i = 1; i<=n; ++i)
------
![](../../images/《数据结构》绪论/例题2.jpg)
![](../../images/408/《数据结构》绪论/例题2.jpg)
i =1 时, sum = 0+1

View File

@ -104,7 +104,7 @@ date: 2023-07-20T09:56:49+08:00
### 控制器结构和功能
* 结构
* ![](../../images/《计组》中央处理器/控制器结构.jpg)
* ![](../../images/408/《计组》中央处理器/控制器结构.jpg)
* 连接关系
* 运算器
* 运算器部件通过数据总线与内存储器、输入设备和输出设备传送数据
@ -134,7 +134,7 @@ date: 2023-07-20T09:56:49+08:00
* 时序系统产生的机器周期信号和节拍信号
* 来自执行单元的反馈信号,即标志
* 微操作控制信号的形成主要与指令译码信号和时钟信号有关
* ![](../../images/《计组》中央处理器/带指令译码器和节拍输入的控制单元.jpg)
* ![](../../images/408/《计组》中央处理器/带指令译码器和节拍输入的控制单元.jpg)
* 时序系统及微操作
* 时钟周期:用时钟信号控制节拍发生器,可产生节拍,每个节拍的宽度正好对应一个时钟周期
* 机器周期:视为所有指令执行过程中的一个基准时间
@ -215,7 +215,7 @@ date: 2023-07-20T09:56:49+08:00
* 用于产生初始微地址和后继微地址,以保证微指令的连续执行
* 微地址寄存器
* 接收微地址形成部件送来的微地址为在CM中读取微指令做准备
* ![](../../images/《计组》中央处理器/微程序控制器结构.jpg)
* ![](../../images/408/《计组》中央处理器/微程序控制器结构.jpg)
* 工作过程
* 执行取微指令公共操作
* 由机器指令的操作码字段通过微地址形成部件产生该及其指令所对应的微程序的入口地址并送入CMAR
@ -356,7 +356,7 @@ date: 2023-07-20T09:56:49+08:00
* 主存$\rightarrow$数据总线MDR$\rightarrow$IR存放指令
* CU发出控制信号$\rightarrow$PC内容加1
* 流程图
* ![](../../images/《计组》中央处理器/取指周期的数据流.jpg)
* ![](../../images/408/《计组》中央处理器/取指周期的数据流.jpg)
* 间址周期
* 取操作数的有效地址
* 数据流向
@ -366,7 +366,7 @@ date: 2023-07-20T09:56:49+08:00
* 主存$\rightarrow$数据总线$\rightarrow$MDR存放有限地址
* AdIR表示取出IR中存放点饿指令字的地址字段
* 流程图
* ![](../../images/《计组》中央处理器/一次间址周期的数据流.png)
* ![](../../images/408/《计组》中央处理器/一次间址周期的数据流.png)
* 执行周期
* 取操作数并根据IR中的指令字的操作码通过ALU操作产生执行结果
* 无统一的数据流向
@ -379,7 +379,7 @@ date: 2023-07-20T09:56:49+08:00
* PC$\rightarrow$MDR$\rightarrow$数据总线$\rightarrow$主存(程序断电存入主存)
* CU中断服务程序的入口$\rightarrow$PC
* 流程图
* ![](../../images/《计组》中央处理器/中断周期的数据流.jpg)
* ![](../../images/408/《计组》中央处理器/中断周期的数据流.jpg)
### 指令的执行方案
@ -448,13 +448,13 @@ date: 2023-07-20T09:56:49+08:00
* 性能高
* 基本不存在数据冲突
* 示例图
* ![](../../images/《计组》中央处理器/CPU内部总线的数据通路和控制信号.jpg)
* ![](../../images/408/《计组》中央处理器/CPU内部总线的数据通路和控制信号.jpg)
* in表示该部件的允许输入控制信号OUT表示该部件的允许输出控制信号
* ALU只能有一个输入端与总线相连另一个输入端要通过暂存器与总线相连
### 数据传输举例
![](../../images/《计组》中央处理器/CPU内部总线的数据通路和控制信号.jpg)
![](../../images/408/《计组》中央处理器/CPU内部总线的数据通路和控制信号.jpg)
* 寄存器间的数据传输
* 寄存器之间的数据传送可以通过CPU内部总线完成
@ -676,7 +676,7 @@ date: 2023-07-20T09:56:49+08:00
* 设一条指令有3条流水段每段平均时间为t度为4单流水线处理机执行20条指令的时间 = $3t+\frac{20-4}{4}t$度为4说明是超标量流水线处理机一次可以发生4条指令
* 流水线吞吐量计算
* 吞吐量 = $\frac{指令条数}{流水线执行时间}$
* ![](../../images/《计组》中央处理器/流水线吞吐量计算.jpg)
* ![](../../images/408/《计组》中央处理器/流水线吞吐量计算.jpg)
### 流水线的基本概念
@ -707,7 +707,7 @@ date: 2023-07-20T09:56:49+08:00
* 数据和指令在存储器中对齐存放,有利于减少访存次数,使所需数据在一个流水段内就可以从存储器中找到
* 流水线的表示方法
* 采用时空图描述流水线的执行情况
* ![](../../images/《计组》中央处理器/一个5段流水线数据通路.jpg)
* ![](../../images/408/《计组》中央处理器/一个5段流水线数据通路.jpg)
### 流水线的性能指标
@ -725,7 +725,7 @@ date: 2023-07-20T09:56:49+08:00
### 流水线的分类
* 超标量流水线技术
* ![](../../images/《计组》中央处理器/超标量水线技术.jpg)
* ![](../../images/408/《计组》中央处理器/超标量水线技术.jpg)
* 特点
* 一个时钟周期内一条流水线可执行一条以上的指令
* 不影响流水线功能段的处理时间
@ -740,7 +740,7 @@ date: 2023-07-20T09:56:49+08:00
* 静态流水线上下段连接方式固定
* 超流水线技术
* 提高主频来提高流水线性能
* ![](../../images/《计组》中央处理器/超流水线技术.jpg)
* ![](../../images/408/《计组》中央处理器/超流水线技术.jpg)
* 特点
* 流水线划分的段数越多,流水寄存器的开销越大
@ -752,9 +752,9 @@ date: 2023-07-20T09:56:49+08:00
* 包括数据通路上流经的部件如PCALU通用寄存器状态寄存器异常和中断处理逻辑
* 数据通路由控制部件控制,控制部件根据每条指令功能的不同生成对数据通路的控制信号
* 数据通路不包含生成控制信号的控制部件
* ![](../../images/《计组》中央处理器/一个5段流水线数据通路.jpg)
* ![](../../images/408/《计组》中央处理器/一个5段流水线数据通路.jpg)
* 流水线的控制信号
* ![](../../images/《计组》中央处理器/控制信号分类.jpg)
* ![](../../images/408/《计组》中央处理器/控制信号分类.jpg)
* 流水线寄存器保存的信息
* 后续流水段要用到的所有数据信息
* 包括PC+4、指令、立即数、目的寄存器、ALU运算结果、标志信息等

View File

@ -33,7 +33,7 @@ date: 2023-07-23T11:15:49+08:00
## 历年真题
![](../../images/《计组》大题/历年真题1.jpg)
![](../../images/408/《计组》大题/历年真题1.jpg)
1
@ -63,7 +63,7 @@ CPU用于B输入输出时间 = $40000\times500 = 2\times10^7$个时钟周期
---
![](../../images/《计组》大题/历年真题2.jpg)
![](../../images/408/《计组》大题/历年真题2.jpg)
1
@ -87,7 +87,7 @@ CPU的时间 = $1000\times(10+20\times4) = 90000$个时钟周期
---
![](../../images/《计组》大题/历年真题3.jpg)
![](../../images/408/《计组》大题/历年真题3.jpg)
1
@ -109,7 +109,7 @@ DMA的开销 = $1000\times500 = 0.5M$个时钟周期
## 存储系统相关
![](../../images/《计组》大题/存储系统1.jpg)
![](../../images/408/《计组》大题/存储系统1.jpg)
1
@ -146,7 +146,7 @@ Cache初始为空Cache行有效位为0Cache访问缺失
---
![](../../images/《计组》大题/存储系统2.jpg)
![](../../images/408/《计组》大题/存储系统2.jpg)
1
@ -177,7 +177,7 @@ Cache缺失的额外开销 = 平均访存次数 $\times$Cache缺失率$\times$1
---
![](../../images/《计组》大题/存储系统3.jpg)
![](../../images/408/《计组》大题/存储系统3.jpg)
1
@ -213,7 +213,7 @@ TLB表位数增加2位
---
![](../../images/《计组》大题/存储系统4.jpg)
![](../../images/408/《计组》大题/存储系统4.jpg)
1
@ -246,7 +246,7 @@ Cache总容量 = $2^3\times2(20+1b+1b+1b+23B) = 4464b = 558B$
---
![](../../images/《计组》大题/存储系统5.jpg)
![](../../images/408/《计组》大题/存储系统5.jpg)
1
@ -293,7 +293,7 @@ TLB有2个组 = 高11位为TLB标记最低1位为TLB组号
---
![](../../images/《计组》大题/存储系统6.jpg)
![](../../images/408/《计组》大题/存储系统6.jpg)
1
@ -330,7 +330,7 @@ cache组号 = 0 0000 0011 = 3
---
![](../../images/《计组》大题/存储系统7.jpg)
![](../../images/408/《计组》大题/存储系统7.jpg)
1
@ -368,7 +368,7 @@ a[1][1]地址 = $320+256\times4+1\times4 = 1348 = 10101000100_B$=>Cache行号为
---
![](../../images/《计组》大题/存储系统8.jpg)
![](../../images/408/《计组》大题/存储系统8.jpg)
1
@ -400,7 +400,7 @@ Cache有$\frac{64}{4} = 16组 $=>组号占4位
## 数据运算相关
![](../../images/《计组》大题/数据运算1.jpg)
![](../../images/408/《计组》大题/数据运算1.jpg)
1
@ -431,7 +431,7 @@ $ n = 1111 0110_{[补]} = 1000 1010_{[原]} = -10$
---
![](../../images/《计组》大题/数据运算2.jpg)
![](../../images/408/《计组》大题/数据运算2.jpg)
1
@ -452,7 +452,7 @@ a最长c最短
## 指令执行相关
![](../../images/《计组》大题/指令执行1.jpg)
![](../../images/408/《计组》大题/指令执行1.jpg)
1
@ -483,7 +483,7 @@ f(13) > $2^{32} - 1$,发生了溢出的错误结果,可将$f_1$的返回值
---
![](../../images/《计组》大题/指令执行2.jpg)
![](../../images/408/《计组》大题/指令执行2.jpg)
1
@ -500,7 +500,7 @@ CISCM的指令长短不一不符合RISC的指令系统的特点
---
![](../../images/《计组》大题/指令执行3.jpg)
![](../../images/408/《计组》大题/指令执行3.jpg)
1
@ -538,7 +538,7 @@ I、J型2^6 -1 = 63种操作
---
![](../../images/《计组》大题/指令执行4.jpg)
![](../../images/408/《计组》大题/指令执行4.jpg)
1

View File

@ -99,7 +99,7 @@ date: 2023-07-17T20:39:45+08:00
## 多级层次的存储系统
![](../../images/《计组》存储系统/多级层次的存储系统.jpg)
![](../../images/408/《计组》存储系统/多级层次的存储系统.jpg)
* 层次结构Cache$\rightarrow$主存层和主存$\rightarrow$辅存
* 前者解决CPU和主存速度不一致的问题
@ -124,21 +124,21 @@ date: 2023-07-17T20:39:45+08:00
* 片选线CS确定哪个存储芯片被选中可用于容量扩充
* 引脚最低数目 = 片选线(1) + 控制线(2,读RD写WR) + 数据线 + 地址线
![](../../images/《计组》存储系统/存储器芯片的组成.jpg)
![](../../images/408/《计组》存储系统/存储器芯片的组成.jpg)
* 主存储器的组成部分
* 数据线的宽度 = MDR的宽度 = 存储字长
* 地址线的宽度 = MAR的宽度 = 存储字数
* 如下图的总容量为$2^{36} \times 64位 = 2^{39}B$
![](../../images/《计组》存储系统/主存储器的组成部分.jpg)
![](../../images/408/《计组》存储系统/主存储器的组成部分.jpg)
### 存储体的组成元素
* 存储体 + 存储单元 + 存储元
* 总容量 = 存储字数 + 存储字长
![](../../images/《计组》存储系统/存储体的组成元素.jpg)
![](../../images/408/《计组》存储系统/存储体的组成元素.jpg)
### 寻址方式
@ -228,7 +228,7 @@ date: 2023-07-17T20:39:45+08:00
* 刷新时需要选中一行,即占用片选线,地址线,地址译码器
* 同理,刷新操作之间也不能够并行
![](../../images/《计组》存储系统/集中刷新.png)
![](../../images/408/《计组》存储系统/集中刷新.png)
#### 分散刷新
@ -242,7 +242,7 @@ date: 2023-07-17T20:39:45+08:00
* 不存在停止读/写的死时间,但存取周期变长,整个系统速度都降低了
* 分散刷新的刷新周期为128us但其实无需如此频繁产生了浪费
![](../../images/《计组》存储系统/分散刷新.png)
![](../../images/408/《计组》存储系统/分散刷新.png)
#### 异步刷新
@ -258,7 +258,7 @@ date: 2023-07-17T20:39:45+08:00
* 是存储周期加长且降低系统速度的缺点,又不会出现集中刷新的访存死区问题
* 根本上提高了整机的工作效率
![](../../images/《计组》存储系统/分散刷新.png)
![](../../images/408/《计组》存储系统/分散刷新.png)
### 多模块存储器
@ -284,7 +284,7 @@ date: 2023-07-17T20:39:45+08:00
* 缺点
* 各模块串行工作,存储器的带宽受到了限制,并不能提高吞吐量
* 示意图
* ![](../../images/《计组》存储系统/高位交叉编址(顺序方式).jpg)
* ![](../../images/408/《计组》存储系统/高位交叉编址(顺序方式).jpg)
* 低位交叉编址(交叉方式)
* 特点
* 连续地址分布在相邻的不同模块内,同一模块内的地址是不连续的
@ -301,10 +301,10 @@ date: 2023-07-17T20:39:45+08:00
* 判断发送访问冲突的规则
* 给定的访存地址在相邻的四次访问中出现在同一个存储模块中
* 示意图
* ![](../../images/《计组》存储系统/低位交叉编址(交叉方式).jpg)
* ![](../../images/《计组》存储系统/低位交叉编址流水线方式存取示意图.jpg)
* ![](../../images/408/《计组》存储系统/低位交叉编址(交叉方式).jpg)
* ![](../../images/408/《计组》存储系统/低位交叉编址流水线方式存取示意图.jpg)
* 计算带宽
* ![](../../images/《计组》存储系统/多体并行存储器-计算带宽.jpg)
* ![](../../images/408/《计组》存储系统/多体并行存储器-计算带宽.jpg)
* 常考
* 模块数=4存储周期T字长W数据总线宽度即为W总线传输周期r连续存取n个字分别求带宽
* 有m个存储体存储周期为T字长为W每隔r时间启动下一个存储体连续存取n个字分别求带宽
@ -325,7 +325,7 @@ date: 2023-07-17T20:39:45+08:00
* 8K * 8位的存储器 = 共8片 8K*1位的RAM组成
* 地址线并行,数据线一一接上
* 结构图
* ![](../../images/《计组》存储系统/位扩展法.jpg)
* ![](../../images/408/《计组》存储系统/位扩展法.jpg)
* 字扩展法-线选法实现
* 18k * 8位的存储器 = 2片8K*8位的存储器
* 由片选信号来区分芯片的地址范围
@ -333,7 +333,7 @@ date: 2023-07-17T20:39:45+08:00
* 谁工作数据线就接送谁的数据吗即将CS设置为1
* 2位二进制时只能利用01,0
* 结构图
* ![](../../images/《计组》存储系统/字扩展法.jpg)
* ![](../../images/408/《计组》存储系统/字扩展法.jpg)
* 字扩展法-译码片实现
* 有4块芯片不需要4条线而只需要两条
* 2位二进制时可以利用00,01,10,11
@ -341,14 +341,14 @@ date: 2023-07-17T20:39:45+08:00
* 一个二进制转十进制的物理元件,将三根地址线表示的二进制意义映射到右边十进制的选通线
* 结构图
* 地址线应为A0~A11共12位译码线位A12和A13共2位
* ![](../../images/《计组》存储系统/字扩展法【译码片实现】.jpg)
* ![](../../images/408/《计组》存储系统/字扩展法【译码片实现】.jpg)
* 字位同时扩展法
* 一块芯片只有4位因此通过两片叠加实现位扩展
* 等价于实现了一个8位的存储芯片
* 在通过译码片选的方式实现字拓展
* 在不同的地址线中选择不同的芯片组合进行工作
* 结构图
* ![](../../images/《计组》存储系统/字位同时扩展法.jpg)
* ![](../../images/408/《计组》存储系统/字位同时扩展法.jpg)
线选法和译码片选法的比较
@ -361,7 +361,7 @@ date: 2023-07-17T20:39:45+08:00
例题:求字扩展法的地址
![](../../images/《计组》存储系统/求字扩展法的地址例题.jpg)
![](../../images/408/《计组》存储系统/求字扩展法的地址例题.jpg)
## 外部存储器
@ -379,7 +379,7 @@ date: 2023-07-17T20:39:45+08:00
* 抗震性好
* 缺点
* 易磨损
* ![](../../images/《计组》存储系统/SSD.jpg)
* ![](../../images/408/《计组》存储系统/SSD.jpg)
## 高速缓存存储器
@ -413,7 +413,7 @@ date: 2023-07-17T20:39:45+08:00
* 让Cache读取主存CPU再从Cache中读取
* CPU一边直接访问主存读取一边让Cache读取主存CPU再从Cache中读取
![](../../images/《计组》存储系统/Cache的读写过程.jpg)
![](../../images/408/《计组》存储系统/Cache的读写过程.jpg)
### Cache的性能分析
@ -441,7 +441,7 @@ date: 2023-07-17T20:39:45+08:00
* 计算方法
* 全相联中的t,c,b,m和直接映射中的都一样
* 例图
* ![](../../images/《计组》存储系统/全相联映射.png)
* ![](../../images/408/《计组》存储系统/全相联映射.png)
* 优点
* 映射灵活
* 块冲突概率比较低
@ -456,7 +456,7 @@ date: 2023-07-17T20:39:45+08:00
* 而且相邻块之间映射的位置也是相邻的
* 因为主存的容量肯定比cache大得多其实相当于一轮轮映射过去
* 例图
* ![](../../images/《计组》存储系统/直接映射.png)
* ![](../../images/408/《计组》存储系统/直接映射.png)
* 计算方法
* 主存地址长度
* 主存中存储单元个数为$2^{10}$则主存地址长度就是10
@ -504,7 +504,7 @@ date: 2023-07-17T20:39:45+08:00
* 先按号分组【如8块Cache分为四组】
* 组内再任意放【组内为全相联映射】
* 例图
* ![](../../images/《计组》存储系统/组相联映射.png)
* ![](../../images/408/《计组》存储系统/组相联映射.png)
* 计算过程
* $2^c$
* Cache总块数
@ -679,13 +679,13 @@ q可以认为是Cache分为1024块每组是$2^r$ = 4块就能分$\frac{102
* 先入先出算法FIFO
* 由于最先进入的是0号cache
* 因此0号cache替换掉标记位标记为2
* ![](../../images/《计组》存储系统/替换算法-FIFO.jpg)
* ![](../../images/408/《计组》存储系统/替换算法-FIFO.jpg)
* 近期最少使用(LRU)算法
* 从后往前,先把前面使用过的划去
* 没有被划去的意味着用的比较少
* 然后从前往后看
* 看第一块没有被划去的就决定替换它
* ![](../../images/《计组》存储系统/替换算法-LRU.jpg)
* ![](../../images/408/《计组》存储系统/替换算法-LRU.jpg)
* 最不经常使用LFU算法
* 统计使用次数
* 4号块用了3次6号块用了2次
@ -703,23 +703,23 @@ q可以认为是Cache分为1024块每组是$2^r$ = 4块就能分$\frac{102
* 在写的时候CPU将数据通过数据总线橙色箭头方向运输
* 由于CPU写给cache的速度和写入主存的速度会差很多
* 所以需要设计一个缓冲,先写入缓冲块中,再慢慢写入
* ![](../../images/《计组》存储系统/全写法写直达法.jpg)
* ![](../../images/408/《计组》存储系统/全写法写直达法.jpg)
* 回写法
* 在CPU执行写操作时先按橙色线写入cache存储体中
* 此时并没有修改主存的内容会在cache中设计一个脏位
* 当一块中的任何一个单元被修改时脏位修改位被置1
* 需要替换掉该块时如果修改位为1则必须先把这一块写回到主存中然后才能再调入新的块
* 如果修改位为0则这一块不必写回主存只要用新调入的块覆盖这一块即可
* ![](../../images/《计组》存储系统/回写法.jpg)
* ![](../../images/408/《计组》存储系统/回写法.jpg)
#### cache写没命中
* 写分配法
* 先将数据从内存中调入到cache中
* 再按回写法修改cache
* ![](../../images/《计组》存储系统/写分配法.jpg)
* ![](../../images/408/《计组》存储系统/写分配法.jpg)
* 非写分配法
* 直接去内存修改
* ![](../../images/《计组》存储系统/非写分配法.jpg)
* ![](../../images/408/《计组》存储系统/非写分配法.jpg)
![](../../images/《计组》存储系统/四种方法的搭配.jpg)
![](../../images/408/《计组》存储系统/四种方法的搭配.jpg)

View File

@ -81,7 +81,7 @@ date: 2023-07-22T10:06:23+08:00
* 组成
* 系统总线
* 结构图
* ![](../../images/《计组》总线/单总线结构.jpg)
* ![](../../images/408/《计组》总线/单总线结构.jpg)
* 双总线结构
* 优点
* 将低速IO设备从单总线上分离出来
@ -91,7 +91,7 @@ date: 2023-07-22T10:06:23+08:00
* 组成
* 主存总线+IO总线
* 结构图
* ![](../../images/《计组》总线/双总线结构.jpg)
* ![](../../images/408/《计组》总线/双总线结构.jpg)
* 三总线结构
* 优点
* 提高了IO设备的性能
@ -102,7 +102,7 @@ date: 2023-07-22T10:06:23+08:00
* 组成
* IO总线+主存总线+DMA总线
* 结构图
* ![](../../images/《计组》总线/三总线结构.jpg)
* ![](../../images/408/《计组》总线/三总线结构.jpg)
## 总线性能标准
@ -130,10 +130,10 @@ date: 2023-07-22T10:06:23+08:00
### 例题
* 计算传输数据所要的时间
* ![](../../images/《计组》总线/计算传输数据所要的时间.jpg)
* ![](../../images/408/《计组》总线/计算传输数据所要的时间.jpg)
* 计算数据传输率/总线带宽
* ![](../../images/《计组》总线/计算数据传输率.jpg)
* ![](../../images/《计组》总线/计算总线带宽.jpg)
* ![](../../images/408/《计组》总线/计算数据传输率.jpg)
* ![](../../images/408/《计组》总线/计算总线带宽.jpg)
## 总线事务和定时

View File

@ -57,12 +57,12 @@ date: 2023-07-18T22:48:35+08:00
操作码和地址码分组存放
![](../../images/《计组》指令系统/操作码和地址码分组存放.jpg)
![](../../images/408/《计组》指令系统/操作码和地址码分组存放.jpg)
操作码和地址码放在一起
![](../../images/《计组》指令系统/操作码和地址码放在一起.jpg)
![](../../images/408/《计组》指令系统/操作码和地址码放在一起.jpg)
### 地址码
@ -232,7 +232,7 @@ date: 2023-07-18T22:48:35+08:00
* 跳跃的地址分为绝对地址【标记符直接得到】和相对地址【相对当前指令地址的偏移量】
* 跳跃的结果是当前指令修改PC值所以下一条指令仍然通过PC给出
* 例图
* ![](../../images/《计组》指令系统/指令寻址的种类例图.jpg)
* ![](../../images/408/《计组》指令系统/指令寻址的种类例图.jpg)
### 数据寻址
@ -262,7 +262,7 @@ date: 2023-07-18T22:48:35+08:00
* 隐地址不给出明显的操作数地址,而在指令中隐含操作数的地址
* 可以简化地址结构,如零地址指令
* 例图
* ![](../../images/《计组》指令系统/隐含寻址.jpg)
* ![](../../images/408/《计组》指令系统/隐含寻址.jpg)
* 立即寻址
* 有效地址
* A就是操作数
@ -285,7 +285,7 @@ date: 2023-07-18T22:48:35+08:00
* 特点
* 直接寻址主要执行取指令访存1次还有执行指令访存1次
* 例图
* ![](../../images/《计组》指令系统/直接寻址.jpg)
* ![](../../images/408/《计组》指令系统/直接寻址.jpg)
* 间接寻址
* EA=(A)
* 定义
@ -295,7 +295,7 @@ date: 2023-07-18T22:48:35+08:00
* 特点
* 与直接寻址相比间接寻址执行取指令访存1次还要执行指令访存2次
* 例图
* ![](../../images/《计组》指令系统/间接寻址.jpg)
* ![](../../images/408/《计组》指令系统/间接寻址.jpg)
* 访问寄存器的寻址
* 寄存器寻址
* $EA = R_i$
@ -307,7 +307,7 @@ date: 2023-07-18T22:48:35+08:00
* 访问寄存器会比访问主存快得多
* CPU中寄存器不是很多用很短的编码就可以指令寄存器能有效地缩短地址段的位数
* 例图
* ![](../../images/《计组》指令系统/寄存器寻址.jpg)
* ![](../../images/408/《计组》指令系统/寄存器寻址.jpg)
* 寄存器间接寻址
* $EA = (R_i)$
* 定义
@ -319,7 +319,7 @@ date: 2023-07-18T22:48:35+08:00
* 寄存器间接寻址主要执行指令访存1次
* 还有一次是寄存器执行指令访存1次
* 例图
* ![](../../images/《计组》指令系统/寄存器间接寻址.jpg)
* ![](../../images/408/《计组》指令系统/寄存器间接寻址.jpg)
* 转/偏移类寻址
* 基址寻址
* EA = (BR)+A
@ -334,8 +334,8 @@ date: 2023-07-18T22:48:35+08:00
* 原先只能寻址A的位数范围内的地址有了基址寻址的方式
* 可以通过加上一个基地址从而在更大范围的空间内设计程序
* 例图
* ![](../../images/《计组》指令系统/BR基址寻址.jpg)
* ![](../../images/《计组》指令系统/通用基址寻址.jpg)
* ![](../../images/408/《计组》指令系统/BR基址寻址.jpg)
* ![](../../images/408/《计组》指令系统/通用基址寻址.jpg)
* 变址寻址
* EA = (IX) + A
* 定义
@ -345,7 +345,7 @@ date: 2023-07-18T22:48:35+08:00
* 变址寻址常用在一些有规律的操作上,比如遍历字符串,遍历数组
* 1条指令实现了基址寻址多条的功能
* 例图
* ![](../../images/《计组》指令系统/变址寻址.jpg)
* ![](../../images/408/《计组》指令系统/变址寻址.jpg)
* 相对寻址
* EA = (PC)+A
* 定义
@ -356,7 +356,7 @@ date: 2023-07-18T22:48:35+08:00
* 相对寻址有利于程序浮动,广泛用于转移指令和多道程序设计中
* 所以相对寻址的相对地址是以下条指令在内存中首地址为基准位置的偏移量
* 例图
* ![](../../images/《计组》指令系统/相对寻址.jpg)
* ![](../../images/408/《计组》指令系统/相对寻址.jpg)
* 堆栈寻址
* 定义
* 把操作数存放在堆栈中隐含的使用堆栈指针SP作为操作数地址
@ -365,7 +365,7 @@ date: 2023-07-18T22:48:35+08:00
* 入栈,先压入数据,再修改指针
* 出栈,先修改指针,再弹出数据
* 例图
* ![](../../images/《计组》指令系统/堆栈寻址.jpg)
* ![](../../images/408/《计组》指令系统/堆栈寻址.jpg)
* 常考点
* 速度方面
* $立即寻址\rightarrow寄存器寻址\rightarrow直接寻址\rightarrow寄存器间接寻址\rightarrow间接寻址$
@ -381,7 +381,7 @@ date: 2023-07-18T22:48:35+08:00
### 选择结构语句的机器级表示
![](../../images/《计组》指令系统/过程调用示意图.png)
![](../../images/408/《计组》指令系统/过程调用示意图.png)
参数列表中越后面的参数越早压入,压完参数之后就是返回地址,以及旧的 ebp 数值
@ -429,7 +429,7 @@ date: 2023-07-18T22:48:35+08:00
* ggreater、lless、eequalssign
![](../../images/《计组》指令系统/跳转指令.png)
![](../../images/408/《计组》指令系统/跳转指令.png)
* 举例
* 无符号的情况下 jb 就是 B 大jae 就是 A 大于等于 B。
@ -457,12 +457,12 @@ ret
Switch 语法举例
![](../../images/《计组》指令系统/switch指令为例.png)
![](../../images/408/《计组》指令系统/switch指令为例.png)
### 循环结构语句的机器级表示
![](../../images/《计组》指令系统/循环结构机器级表示.png)
![](../../images/408/《计组》指令系统/循环结构机器级表示.png)
### 过程(函数)调用对应的机器级表示
* 被保存的寄存器函数P将要使用的“被调用者保存寄存器”通过push保存在函数的栈帧中。

View File

@ -24,11 +24,11 @@ date: 2023-07-07T16:48:40+08:00
* 范围0~9 + ABCDEF
* 数制的相互转换
* 二进制$\rightarrow$八进制或十六进制
* ![](../../images/《计组》数据的表示和运算/二进制转八或十六.jpg)
* ![](../../images/408/《计组》数据的表示和运算/二进制转八或十六.jpg)
* 任意进制$\rightarrow$十进制
* ![](../../images/《计组》数据的表示和运算/任意进制转二.jpg)
* ![](../../images/408/《计组》数据的表示和运算/任意进制转二.jpg)
* 十进制$\rightarrow$任意进制
* ![](../../images/《计组》数据的表示和运算/十进制转任意.jpg)
* ![](../../images/408/《计组》数据的表示和运算/十进制转任意.jpg)
## 无符号数
@ -146,7 +146,7 @@ date: 2023-07-07T16:48:40+08:00
* 和表达式 = $A_i\bigoplus B_i \bigoplus C_i$
* 进位表达式$C_i = A_iB_i + (A_i \bigoplus B_i) C_{i-1}$
* 结构图
* ![](../../images/《计组》数据的表示和运算/一位全加器结构.jpg)
* ![](../../images/408/《计组》数据的表示和运算/一位全加器结构.jpg)
### 串行进位加法器
@ -154,7 +154,7 @@ date: 2023-07-07T16:48:40+08:00
* 串行进位加法器把n个FA相连得到的n位加法器
* 每级进位直接依赖于前一级的进位,进位信号逐级形成
* 最长运算时间由进位信号的传递时间决定
* ![](../../images/《计组》数据的表示和运算/串行进位加法器.jpg)
* ![](../../images/408/《计组》数据的表示和运算/串行进位加法器.jpg)
### 并行进位加法器
@ -167,7 +167,7 @@ date: 2023-07-07T16:48:40+08:00
* 采用并行进位的目标是:提高加法器运算速度
* 通常采用两级或多级先行进位加法器
* 结构图
* ![](../../images/《计组》数据的表示和运算/并行进位加法器.jpg)
* ![](../../images/408/《计组》数据的表示和运算/并行进位加法器.jpg)
### 带标志加法器
@ -181,7 +181,7 @@ date: 2023-07-07T16:48:40+08:00
* CF进位/借位标志,$C_{in} = 0$时,$CF = C_{out};C_{in} = 1$时,$CF = C_{out}$取反
* A - B < 0 CF = 1;溢出时 OF = 1
* 结构图
* ![](../../images/《计组》数据的表示和运算/带标志加法器.jpg)
* ![](../../images/408/《计组》数据的表示和运算/带标志加法器.jpg)
### 算术逻辑单元ALU
@ -193,7 +193,7 @@ date: 2023-07-07T16:48:40+08:00
* 在ALUop的控制下由一个多路选择器MUX选择输出某种操作结果
* MUX是多路选择开关它从多个输入信号中选择一个送到输出端
* 结构图
* ![](../../images/《计组》数据的表示和运算/算术逻辑单元ALU.png)
* ![](../../images/408/《计组》数据的表示和运算/算术逻辑单元ALU.png)
## C语言中的整数类型与类型转换
@ -268,7 +268,7 @@ int main(){
* double 占8字节 = 64位
* 大端方式按MSB到LSB的顺序存储数据
* 小端方式按LSB到MSB的顺序存储数据
* ![](../../images/《计组》数据的表示和运算/数据的大端方式和小端方式存储.png)
* ![](../../images/408/《计组》数据的表示和运算/数据的大端方式和小端方式存储.png)
* 如小端方式中,按字节编制
* 设int变量i的地址为0800Hi的机器数为01234567H则地址0800H表示的内容为67H
@ -278,9 +278,9 @@ int main(){
* 存储字长为32位时半字是2的整数倍字地址是4的整数倍字节大小为8位
* 边界对齐虽然浪费了一些存储空间,但是可以提高取指令和取数的速度
* 边界不对齐可以充分利用存储空间,但是效率低
* ![](../../images/《计组》数据的表示和运算/数据按边界对齐方式存储.png)
* ![](../../images/408/《计组》数据的表示和运算/数据按边界对齐方式存储.png)
* 例题
* ![](../../images/《计组》数据的表示和运算/数据存储和排列例题.png)
* ![](../../images/408/《计组》数据的表示和运算/数据存储和排列例题.png)
## 定点数
@ -296,7 +296,7 @@ int main(){
* 符号位和数值位一起参与运算
* 运算结果的高位被丢弃
* 实例
* ![](../../images/《计组》数据的表示和运算/补码加减法运算实例.png)
* ![](../../images/408/《计组》数据的表示和运算/补码加减法运算实例.png)
* 运算电路信号解释
* |记忆方法|解释|是否有意义|
|---|---|---|---|
@ -336,9 +336,9 @@ int main(){
* 积和被乘数采用双符号位
* 最多进行n次加法运算n次移位
* 计算过程
* ![](../../images/《计组》数据的表示和运算/原码一位乘法计算过程.png)
* ![](../../images/408/《计组》数据的表示和运算/原码一位乘法计算过程.png)
* 电路图
* ![](../../images/《计组》数据的表示和运算/原码一位乘法流程图.jpg)
* ![](../../images/408/《计组》数据的表示和运算/原码一位乘法流程图.jpg)
* 补码一位乘法
* 定义和概念
* 一种有符号数的乘法
@ -351,9 +351,9 @@ int main(){
|1|0|部分积加$[-a]_补$,右移一位|
|1|1|部分积右移一位|
* 计算过程
* ![](../../images/《计组》数据的表示和运算/补码一位乘法计算过程.png)
* ![](../../images/408/《计组》数据的表示和运算/补码一位乘法计算过程.png)
* 电路图
* ![](../../images/《计组》数据的表示和运算/补码一位乘法电路图.png)
* ![](../../images/408/《计组》数据的表示和运算/补码一位乘法电路图.png)
### 除法
@ -380,9 +380,9 @@ int main(){
* 异号上商0
* 最后一步商置1
* 计算过程
* ![](../../images/《计组》数据的表示和运算/补码除法运算计算过程.png)
* ![](../../images/408/《计组》数据的表示和运算/补码除法运算计算过程.png)
* 电路图
* ![](../../images/《计组》数据的表示和运算/补码除法运算电路图.png)
* ![](../../images/408/《计组》数据的表示和运算/补码除法运算电路图.png)
## 移位运算
@ -423,7 +423,7 @@ int main(){
* d中数据位连同CF一起左移
* 数据的最高位移入CF
* CF则移入数据的最低位
* ![](../../images/《计组》数据的表示和运算/循环移位流程.png)
* ![](../../images/408/《计组》数据的表示和运算/循环移位流程.png)
## 浮点数
@ -452,12 +452,12 @@ int main(){
* 基数为2时将小数点前面的值固定为1基数为4时尾数的最高两位不全为0
* 指数(阶码)部分
* 阶码的位数反映浮点数的表示范围
* ![](../../images/《计组》数据的表示和运算/浮点数结构.jpg)
* ![](../../images/408/《计组》数据的表示和运算/浮点数结构.jpg)
### 表示范围
![](../../images/《计组》数据的表示和运算/浮点数范围.jpg)
![](../../images/408/《计组》数据的表示和运算/浮点数范围.jpg)
* 【正上溢】:大于最大正数
* 【负上溢】:小于绝对值最大负数
@ -479,7 +479,7 @@ int main(){
* 规格化规定尾数的最高数位必须是一个有效值1
* 目的
* 提高数据的表示精度
* ![](../../images/《计组》数据的表示和运算/浮点数规格化.png)
* ![](../../images/408/《计组》数据的表示和运算/浮点数规格化.png)
* 左规
* 当浮点数运算的结果为非规格化时要进行规格化处理
* 将尾数算术左移一位,阶码减一
@ -522,7 +522,7 @@ int main(){
### IEEE754标准浮点数范围
* IEEE754中尾数使用原码表示阶码用移码表示
* ![](../../images/《计组》数据的表示和运算/IEE754浮点数结构.jpg)
* ![](../../images/408/《计组》数据的表示和运算/IEE754浮点数结构.jpg)
|以正数为例|最小值|最大值|
|---|---|---|
@ -538,11 +538,11 @@ int main(){
#### 浮点数转十进制
![](../../images/《计组》数据的表示和运算/将浮点数转为十进制例题.jpg)
![](../../images/408/《计组》数据的表示和运算/将浮点数转为十进制例题.jpg)
#### 十进制转浮点数
![](../../images/《计组》数据的表示和运算/将十进制转为浮点数例题.png)
![](../../images/408/《计组》数据的表示和运算/将十进制转为浮点数例题.png)
## 浮点数和定点数区别

View File

@ -61,7 +61,7 @@ date: 2023-07-07T11:24:47+08:00
## 计算机应用层次结构
* 层次结构图
* ![](../../images/《计组》计算机系统概述/计算机应用层次结构.jpg)
* ![](../../images/408/《计组》计算机系统概述/计算机应用层次结构.jpg)
* 三种程序转换
* 高级语言$\underrightarrow{编译}$汇编语言$\underrightarrow{汇编}$机器语言
* 高级语言$\underrightarrow{解释}$机器语言
@ -89,7 +89,7 @@ date: 2023-07-07T11:24:47+08:00
### 冯诺依曼结构
* 组成示例图
* ![](../../images/《计组》计算机系统概述/冯诺依曼机的示例图.jpg)
* ![](../../images/408/《计组》计算机系统概述/冯诺依曼机的示例图.jpg)
* 特点
* 计算机由五大部件组成
* 输入设备
@ -111,7 +111,7 @@ date: 2023-07-07T11:24:47+08:00
### 现代计算机结构
* 示例图
* ![](../../images/《计组》计算机系统概述/现代计算机结构的示例图.jpg)
* ![](../../images/408/《计组》计算机系统概述/现代计算机结构的示例图.jpg)
* 特点
* 计算机 = 主机 + 输入/输出设备
* 主机 = CPU +主存
@ -127,8 +127,8 @@ date: 2023-07-07T11:24:47+08:00
### 存储器
* ![](../../images/《计组》计算机系统概述/存储器.jpg)
* ![](../../images/《计组》计算机系统概述/存储体.jpg)
* ![](../../images/408/《计组》计算机系统概述/存储器.jpg)
* ![](../../images/408/《计组》计算机系统概述/存储体.jpg)
* 组件
* 存储元存储二进制的电子元件每个存储元可存储1bit
* 存储单元:每个存储单元放一串二进制代码
@ -145,7 +145,7 @@ date: 2023-07-07T11:24:47+08:00
### 运算器
* ![](../../images/《计组》计算机系统概述/运算器.jpg)
* ![](../../images/408/《计组》计算机系统概述/运算器.jpg)
* 组件
* ACC累加器用于存放操作数或运算结果
* MQ乘商寄存器在乘除计算中用于存放操作数或运算结果
@ -154,7 +154,7 @@ date: 2023-07-07T11:24:47+08:00
### 控制器
* ![](../../images/《计组》计算机系统概述/控制器.jpg)
* ![](../../images/408/《计组》计算机系统概述/控制器.jpg)
* 组件
* PC:程序计数器,存放下一条指令的地址,并跟踪下一条要执行的指令的地址
* IR指令寄存器存放当前正在执行的指令
@ -164,7 +164,7 @@ date: 2023-07-07T11:24:47+08:00
## 计算机系统的细节
* 系统细节图
* ![](../../images/《计组》计算机系统概述/系统细节图.jpg)
* ![](../../images/408/《计组》计算机系统概述/系统细节图.jpg)
* 系统的组成
* CPU中央处理器
* PC程序计数器
@ -195,7 +195,7 @@ date: 2023-07-07T11:24:47+08:00
* 送结果到寄存器中或送到内存
* PC加一
* 常见操作码
* ![](../../images/《计组》计算机系统概述/常见的操作码.jpg)
* ![](../../images/408/《计组》计算机系统概述/常见的操作码.jpg)
* 程序执行过程举例
* 举例计算$y = ax^2 + bx+c$
* 取x至运算器中
@ -205,7 +205,7 @@ date: 2023-07-07T11:24:47+08:00
* 将运算器中数据送至存储器y中
* 打印y
* 停机
* ![](../../images/《计组》计算机系统概述/程序执行过程举例.jpg)
* ![](../../images/408/《计组》计算机系统概述/程序执行过程举例.jpg)
## 计算机性能指标

View File

@ -20,7 +20,7 @@ date: 2023-07-22T13:59:04+08:00
* 只能在OS内核的底层IO软件中使用
* IO指令实现的数据传送通常发生在通用寄存器和IO端口之间
* 一种特权指令
* ![](../../images/《计组》输入输出系统/IO接口的基本结构.jpg)
* ![](../../images/408/《计组》输入输出系统/IO接口的基本结构.jpg)
* IO接口类型
* 数据传输方式区分
* 并行接口:一个字节或一个字的所有位同时传送
@ -90,7 +90,7 @@ date: 2023-07-22T13:59:04+08:00
* 缺点
* CPU在信息传送过程中要花费很多时间来查询和等待
* 在一段时间内只能和一台外设交换信息,效率大大降低
* ![](../../images/《计组》输入输出系统/程序查询方式流程图.jpg)
* ![](../../images/408/《计组》输入输出系统/程序查询方式流程图.jpg)
* 程序中断方式
* 基本概念
* 在计算机执行现行程序的过程中出现某些急需处理的寻常情况或特殊情况请求CPU暂停中止现行程序而专区对这些异常情况或特殊请求进行处理处理完毕后再返回到现行程序的断点处继续执行原程序
@ -115,7 +115,7 @@ date: 2023-07-22T13:59:04+08:00
* 然后CPU继续执行当前的程序不需要像查询方式那样等待外设准备就绪
* 一但外设完成数据传送的准备工作就主动向CPU发出中断请求请求CPU为自己服务
* 在可以响应中断的条件下CPU暂时中止正在执行的程序转去执行中断服务程序为外设服务在中断服务程序中完成一次主机与外设之间的数据传送传送完成后CPU回到原来的程序
* ![](../../images/《计组》输入输出系统/程序中断方式示意图.jpg)
* ![](../../images/408/《计组》输入输出系统/程序中断方式示意图.jpg)
* 程序中断的基本流程
* 中断请求
* 中断响应判优(硬件排队器实现)
@ -138,7 +138,7 @@ date: 2023-07-22T13:59:04+08:00
* 非向量(软件)中断
* CPU设置一个异常状态寄存器用于记录异常原因OS用一个统一的异常或中断查询程序按优先等级顺序查询异常状态寄存器以检测异常和中断的类型先查到的先被处理然后转到内核中相应的处理程序
* 中断处理过程
* ![](../../images/《计组》输入输出系统/可嵌套中断的处理流程.jpg)
* ![](../../images/408/《计组》输入输出系统/可嵌套中断的处理流程.jpg)
* 多重中断和中断屏蔽技术
* 单重中断
* 若CPU在执行中断服务程序的过程中又出现了新的更高优先级的中断请求而CPU对新的中断请求不响应
@ -152,7 +152,7 @@ date: 2023-07-22T13:59:04+08:00
* 1表示屏蔽该中断源的请求0表示可以正常申请
* 所有屏蔽触发器组合在一起便构成一个屏蔽字寄存器
* 屏蔽字寄存器的内容称为屏蔽字
* ![](../../images/《计组》输入输出系统/单重中断和多重中断示意图.jpg)
* ![](../../images/408/《计组》输入输出系统/单重中断和多重中断示意图.jpg)
* DMA(Direct Memory Access 直接存储器存取)方式
@ -180,7 +180,7 @@ date: 2023-07-22T13:59:04+08:00
* DMA请求触发器每当IO设备准备好数据后给出一个控制信号使DMA请求触发器置位
* 控制/状态逻辑由控制和时序电路及状态标志组成用于指令传送方向修改传送参数并对DMA请求信号CPU响应信号进行协调和同步
* 中断机构当一个数据块传送完毕后触发中断机构向CPU提出中断请求
* ![](../../images/《计组》输入输出系统/简单的DMA控制器.jpg)
* ![](../../images/408/《计组》输入输出系统/简单的DMA控制器.jpg)
* 传送方式
* 当IO设备和CPU同时访问主存时可能发生冲突为了有效使用主存DMAC和CPU通常采用3种方式使用主存
* 停止CPU访问
@ -198,7 +198,7 @@ date: 2023-07-22T13:59:04+08:00
* 校验送入主存的数据是否正确
* 测试传送过程中是否出错(错误则转诊断程序)
* 决定是否继续使用DMA传送其他数据等
* ![](../../images/《计组》输入输出系统/DMA的传送流程.jpg)
* ![](../../images/408/《计组》输入输出系统/DMA的传送流程.jpg)
* DMA方式和中断方式的对比
@ -222,8 +222,8 @@ date: 2023-07-22T13:59:04+08:00
* 各种IO控制方式的对比和例题
* ![](../../images/《计组》输入输出系统/IO控制方式对比.png)
* ![](../../images/《计组》输入输出系统/IO例题.jpg)
* ![](../../images/408/《计组》输入输出系统/IO控制方式对比.png)
* ![](../../images/408/《计组》输入输出系统/IO例题.jpg)
## 思维导图

View File

@ -56,14 +56,14 @@ date: 2023-07-27T14:50:10+08:00
* UDP没有拥塞控制有利于实时应用视频语音
* UDP分组首部开销小TCP有20B的首部开销UDP仅有8B的开销
* UDP是面向报文的报文是UDP数据报处理的最小单位
![](../../images/《计网》传输层/UDP协议.png)
![](../../images/408/《计网》传输层/UDP协议.png)
* 报文太长UDP把报文交给IP层后会导致分片
* 报文太短UDP把它交给IP层后会使IP数据报的首部相对长度太大
* 两者都会减低IP层的效率
### 首部格式
* ![](../../images/《计网》传输层/UDP首部格式.png)
* ![](../../images/408/《计网》传输层/UDP首部格式.png)
* 用户数据报UDP有两个字段数据字段和首部字段
* 首部字段只有8个字节由四个字段组成每个字段长度都是两个字节
* 源端口不是必须的只有在需要对方回信时选用不需要时可用全0
@ -82,13 +82,13 @@ date: 2023-07-27T14:50:10+08:00
* UDP校验和校验出UDP数据报是错误的可以丢弃也可以交付给上层但是要附上错误报告
* UDP校验和提供差错检测功能在计算校验和时要在UDP用户数据报之前增加12字节的伪首部
* 伪首部既不向下传送也不向上递交,只是为了计算校验和
* ![](../../images/《计网》传输层/UDP校验1.png)
* ![](../../images/408/《计网》传输层/UDP校验1.png)
* 各字段内容
* 源IP地址和目的IP地址和IP数据一样各占4个字节
* 伪首部第3个字段是全零
* 协议字段UDP协议的协议字段值是17
* UDP长度UDP用户数据报长度首部长度和数据部分长度之和
* ![](../../images/《计网》传输层/UDP校验2.png)
* ![](../../images/408/《计网》传输层/UDP校验2.png)
* 校验和过程
* 将校验和字段置位0
* 将伪首部和UDP用户数据报首部和数据部分看成是以16位为单位的二进制组成依次进程二进制反码求和
@ -112,14 +112,14 @@ date: 2023-07-27T14:50:10+08:00
### TCP报文段
![](../../images/《计网》传输层/TCP报文段1.png)
![](../../images/408/《计网》传输层/TCP报文段1.png)
* 一个TCP报文段 = 首部 + 数据部分
* 首部的前20个字节是固定的
* 后面有4n字节是根据需要而增加的选项
* TCP首部的最小字节是20字节
![](../../images/《计网》传输层/TCP报文段2.png)
![](../../images/408/《计网》传输层/TCP报文段2.png)
* 源端口和目的端口
* TCP分用功能的实现
@ -159,7 +159,7 @@ date: 2023-07-27T14:50:10+08:00
### TCP连接三次握手
![](../../images/《计网》传输层/TCP连接三次握手.png)
![](../../images/408/《计网》传输层/TCP连接三次握手.png)
* 第一次握手
* 客户端向服务端发送请求首部同步位SYN = 1选择一个初始序号seq = x
@ -179,7 +179,7 @@ date: 2023-07-27T14:50:10+08:00
### TCP连接释放四次握手
![](../../images/《计网》传输层/TCP连接三次握手.png)
![](../../images/408/《计网》传输层/TCP连接三次握手.png)
* 第一次握手
* 客户端向服务端发出连接释放报文段->停止发送数据,主动关闭连接
@ -242,16 +242,16 @@ date: 2023-07-27T14:50:10+08:00
* 拥塞控制是指防止过多的数据注入网络,保证网络中的路由器或链路不致过载
* 拥塞往往表现为通信时延的增加
* 慢开始
* ![](../../images/《计网》传输层/慢开始.png)
* ![](../../images/408/《计网》传输层/慢开始.png)
* cwnd < ssthresh使
* 在达到慢开始门限ssthresh前cwnd成线性增长
* 拥塞避免
* ![](../../images/《计网》传输层/拥塞避免.png)
* ![](../../images/408/《计网》传输层/拥塞避免.png)
* cwnd > ssthresh时使用拥塞避免算法
* cwnd每次增加1
* 出现乘法减小时ssthresh设置为当前cwnd的一半cwnd设置为1然后重新慢开始
* 快重传/快恢复
* ![](../../images/《计网》传输层/快重传.png)
* ![](../../images/408/《计网》传输层/快重传.png)
* 快重传
* 当发送方连续收到3个重复的ack报文时直接重传对方尚未收到的报文段
* 不必等待那个报文段设置的重传计时器超时

View File

@ -6,11 +6,11 @@ date: 2023-07-28T14:35:45+08:00
## 各报文常考内容
![](../../images/《计网》大题/各报文常考内容.jpg)
![](../../images/408/《计网》大题/各报文常考内容.jpg)
## 大题
![](../../images/《计网》大题/大题1.jpg)
![](../../images/408/《计网》大题/大题1.jpg)
1
@ -46,7 +46,7 @@ u = $\frac{发送数据的时间}{从开始发送第一帧到收到第一个确
---
![](../../images/《计网》大题/大题2.jpg)
![](../../images/408/《计网》大题/大题2.jpg)
1
@ -66,7 +66,7 @@ u = $\frac{发送数据的时间}{从开始发送第一帧到收到第一个确
---
![](../../images/《计网》大题/大题3.jpg)
![](../../images/408/《计网》大题/大题3.jpg)
1
@ -98,7 +98,7 @@ $2^7 = 128$ =>主机号占7位
---
![](../../images/《计网》大题/大题4.jpg)
![](../../images/408/《计网》大题/大题4.jpg)
1
@ -123,7 +123,7 @@ $2^7 = 128$ =>主机号占7位
---
![](../../images/《计网》大题/大题5.jpg)
![](../../images/408/《计网》大题/大题5.jpg)
1
@ -146,7 +146,7 @@ R2转发P的源IP地址203.10.2.6目的IP地址192.168.1.2
---
![](../../images/《计网》大题/大题6.jpg)
![](../../images/408/《计网》大题/大题6.jpg)
1
@ -167,7 +167,7 @@ R1,R2属于不同的自治系统使用边界网关协议BGP或BGP4
---
![](../../images/《计网》大题/大题7.jpg)
![](../../images/408/《计网》大题/大题7.jpg)
1
@ -193,7 +193,7 @@ metric为10
---
![](../../images/《计网》大题/大题8.jpg)
![](../../images/408/《计网》大题/大题8.jpg)
1
@ -219,7 +219,7 @@ R需提供NAT服务网络地址转换服务
---
![](../../images/《计网》大题/大题9.jpg)
![](../../images/408/《计网》大题/大题9.jpg)
1
@ -267,7 +267,7 @@ STTL = 40H = 64
---
![](../../images/《计网》大题/大题10.jpg)
![](../../images/408/《计网》大题/大题10.jpg)
1
@ -289,7 +289,7 @@ SYN = 1,ACK =1,确认序号 =101
---
![](../../images/《计网》大题/大题11.jpg)
![](../../images/408/《计网》大题/大题11.jpg)
1
@ -322,7 +322,7 @@ IP数据报每经过一个路由器TTL长度减1并重新计算首部验
---
![](../../images/《计网》大题/大题12.jpg)
![](../../images/408/《计网》大题/大题12.jpg)
1

View File

@ -16,7 +16,7 @@ date: 2023-07-27T19:15:08+08:00
### 客户/服务器模型
![](../../images/《计网》应用层/客户服务器模型.png)
![](../../images/408/《计网》应用层/客户服务器模型.png)
* 主要特点
* 客户是服务请求方,服务器是服务提供方
@ -36,7 +36,7 @@ date: 2023-07-27T19:15:08+08:00
### P2P模型
![](../../images/《计网》应用层/P2P模型.png)
![](../../images/408/《计网》应用层/P2P模型.png)
* 主要特点
* 显著特点:对等节点之间有直接通信能力
@ -56,13 +56,13 @@ date: 2023-07-27T19:15:08+08:00
### DNS组成部分
* 层次域名空间
* ![](../../images/《计网》应用层/层次域名空间.png)
* ![](../../images/408/《计网》应用层/层次域名空间.png)
* 顶级域名
* 二级域名
* 三级域名
* 多个标号组成的完整域名总共不超过255个字符
* 域名服务器
* ![](../../images/《计网》应用层/域名服务器.png)
* ![](../../images/408/《计网》应用层/域名服务器.png)
* 种类
* 根域名服务器(.
* 顶级域名服务器
@ -72,10 +72,10 @@ date: 2023-07-27T19:15:08+08:00
* 域名服务器被设计为一种联机的分布式数据库系统采用C/S模型
* 域名解析过程
* 递归查询
* ![](../../images/《计网》应用层/递归查询.png)
* ![](../../images/408/《计网》应用层/递归查询.png)
* 本机向本地域名服务器的查询是递归查询
* 递归迭代查询
* ![](../../images/《计网》应用层/递归迭代查询.png)
* ![](../../images/408/《计网》应用层/递归迭代查询.png)
* 本地域名服务器向根域名服务器的查询是迭代查询
* 流程
* 主机m.xyz.com先向其本地域名服务器dns.xyz.com进行递归查询
@ -123,7 +123,7 @@ date: 2023-07-27T19:15:08+08:00
* 使协议更加简单和容易实现
* 在传输文件的时候可以利用控制连接对文件的传输进行控制(如用户可以在文件传输过程中发生请求中止服务)
![](../../images/《计网》应用层/FTP工作时用到的TCP连接.png)
![](../../images/408/《计网》应用层/FTP工作时用到的TCP连接.png)
* 控制连接
* 作用
@ -158,7 +158,7 @@ date: 2023-07-27T19:15:08+08:00
* 邮件服务器,用来发送和接收邮件
* 邮件发送协议SMTP【类似Push】和读取协议pop3【类似Pull】
* 发送接收过程
* ![](../../images/《计网》应用层/电子邮件发送接收过程.png)
* ![](../../images/408/《计网》应用层/电子邮件发送接收过程.png)
### 电子邮件格式
@ -205,7 +205,7 @@ date: 2023-07-27T19:15:08+08:00
### Cookie
![](../../images/《计网》应用层/Cookie.png)
![](../../images/408/《计网》应用层/Cookie.png)
* Cookie是网站为了辨别用户身份进行会话跟踪而存储在客户端上的数据
* Cookie的组成
@ -216,7 +216,7 @@ date: 2023-07-27T19:15:08+08:00
### HTTP操作过程
![](../../images/《计网》应用层/HTTP操作过程.jpg)
![](../../images/408/《计网》应用层/HTTP操作过程.jpg)
* 浏览器分析链接指向页面的URL
* 浏览器向DNS请求解析网址的IP地址
@ -230,13 +230,13 @@ date: 2023-07-27T19:15:08+08:00
### 持久连接和非持久连接
* 非持久连接
* ![](../../images/《计网》应用层/非持久连接.png)
* ![](../../images/408/《计网》应用层/非持久连接.png)
* 传输时间
* 文档传输时间 + 两倍的往返时间RTT
* connection状态
* 标志为close说明是非持久连接
* 持久连接
* ![](../../images/《计网》应用层/持久连接.png)
* ![](../../images/408/《计网》应用层/持久连接.png)
* 传输时间
* 共经历1个RTT延迟
* connection状态
@ -245,7 +245,7 @@ date: 2023-07-27T19:15:08+08:00
### HTTP的报文结构
![](../../images/《计网》应用层/HTTP的报文结构.jpg)
![](../../images/408/《计网》应用层/HTTP的报文结构.jpg)
* 两类HTTP报文
* 请求报文
@ -260,4 +260,4 @@ date: 2023-07-27T19:15:08+08:00
* POST【上传信息】
* CONNECT【代理服务器】
* 实例
* ![](../../images/《计网》应用层/HTTP的报文结构实例.jpg)
* ![](../../images/408/《计网》应用层/HTTP的报文结构实例.jpg)

View File

@ -66,9 +66,9 @@ date: 2023-07-25T19:25:31+08:00
* 计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层
* CRC具有纠错能力但数据链路层只使用了他的检错功能检测到帧出错直接丢弃
* 计算举例
* ![](../../images/《计网》数据链路层/CRC计算举例1.jpg)
* ![](../../images/《计网》数据链路层/CRC计算举例2.jpg)
* ![](../../images/《计网》数据链路层/CRC计算举例3.jpg)
* ![](../../images/408/《计网》数据链路层/CRC计算举例1.jpg)
* ![](../../images/408/《计网》数据链路层/CRC计算举例2.jpg)
* ![](../../images/408/《计网》数据链路层/CRC计算举例3.jpg)
* 纠错编码分类
* 海明码
* 实现原理
@ -102,7 +102,7 @@ date: 2023-07-25T19:25:31+08:00
### 停止等待协议SW
![](../../images/《计网》数据链路层/停止-等待协议.jpg)
![](../../images/408/《计网》数据链路层/停止-等待协议.jpg)
* 接收端检测到数据分组有误码时,将器丢弃并等待发送方的超时重传
* 对于误码率较高的点对点链路为使发送方尽快重传可给发送方发生NAK拒绝分组
@ -115,42 +115,42 @@ date: 2023-07-25T19:25:31+08:00
* 超时计时器设置的重传时间一般略大于从发送方到接收方的平均往返时间
* 在数据链路层点对点的往返时间好确认,重传时间好确认
* 在运输层,由于端到端往返时间不确定,重传时间不好确认
* ![](../../images/《计网》数据链路层/停止-等待协议的信道利用率.jpg)
* ![](../../images/408/《计网》数据链路层/停止-等待协议的信道利用率.jpg)
* 当往返时延RTT远大于数据帧发送时延TD时【如卫星链路】信道利用率非常低
* 若出现重传,则对于传送有用的数据信息来说,信道利用率还要降低
* 为了克服该协议信道利用率低的缺点可以使用GBN和SR协议
* 这些协议也叫做自动重传请求ARQ
* ARQ通过接收方请求发送方重传出错的数据帧来恢复出错的帧
* 例题
* ![](../../images/《计网》数据链路层/例题停止-等待协议.jpg)
* ![](../../images/《计网》数据链路层/例题2停止-等待协议.jpg)
* ![](../../images/408/《计网》数据链路层/例题停止-等待协议.jpg)
* ![](../../images/408/《计网》数据链路层/例题2停止-等待协议.jpg)
### 回退N帧协议GBN【Go-back-N】
![](../../images/《计网》数据链路层/回退N帧协议.jpg)
![](../../images/408/《计网》数据链路层/回退N帧协议.jpg)
![](../../images/《计网》数据链路层/详细回退N帧协议.jpg)
![](../../images/408/《计网》数据链路层/详细回退N帧协议.jpg)
* 例题
* ![](../../images/《计网》数据链路层/例题1回退N帧协议.jpg)
* ![](../../images/《计网》数据链路层/例题2回退N帧协议.jpg)
* ![](../../images/《计网》数据链路层/例题3回退N帧协议.jpg)
* ![](../../images/《计网》数据链路层/例题4回退N帧协议.jpg)
* ![](../../images/408/《计网》数据链路层/例题1回退N帧协议.jpg)
* ![](../../images/408/《计网》数据链路层/例题2回退N帧协议.jpg)
* ![](../../images/408/《计网》数据链路层/例题3回退N帧协议.jpg)
* ![](../../images/408/《计网》数据链路层/例题4回退N帧协议.jpg)
### 选择重传协议SR
![](../../images/《计网》数据链路层/选择重传协议.jpg)
![](../../images/408/《计网》数据链路层/选择重传协议.jpg)
![](../../images/《计网》数据链路层/详细选择重传协议.jpg)
![](../../images/408/《计网》数据链路层/详细选择重传协议.jpg)
* 例题
* ![](../../images/《计网》数据链路层/例题选择重传协议.jpg)
* ![](../../images/408/《计网》数据链路层/例题选择重传协议.jpg)
## 点对点协议PPP
![](../../images/《计网》数据链路层/点对点协议PPP.jpg)
![](../../images/408/《计网》数据链路层/点对点协议PPP.jpg)
* PPP协议的组成
* 链路控制协议LCP
@ -173,14 +173,14 @@ date: 2023-07-25T19:25:31+08:00
* 共享信道要着重考虑的一个问题就是如何协调多个发送和接受站点对一个共享传输媒体的占用即MAC(Medium Access Control)
* MAC的内容就是采取一定的措施使得两对结点之间的通信不会发生互相干扰的情况
* 分类
* ![](../../images/《计网》数据链路层/媒体接入控制.jpg)
* ![](../../images/408/《计网》数据链路层/媒体接入控制.jpg)
* 要点
* 随着技术的发展,交换技术的成熟和成本的减低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播特性,无线局域网仍然使用的是共享媒体技术
## 静态划分信道
* 信道复用
* ![](../../images/《计网》数据链路层/信道复用.jpg)
* ![](../../images/408/《计网》数据链路层/信道复用.jpg)
* 复用是通信技术中的一个重要概念
* 复用就是通过一条物理线路同时传输多路用户的信号
* 当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时
@ -190,7 +190,7 @@ date: 2023-07-25T19:25:31+08:00
#### 频分多路复用FDM
![](../../images/《计网》数据链路层/频分多路复用.jpg)
![](../../images/408/《计网》数据链路层/频分多路复用.jpg)
* FDM的所有用户同时占用不同的频带资源并行通信
* FDM和TDM的比较
@ -201,7 +201,7 @@ date: 2023-07-25T19:25:31+08:00
#### 时分多路复用TDM
![](../../images/《计网》数据链路层/时分多路复用.jpg)
![](../../images/408/《计网》数据链路层/时分多路复用.jpg)
* TDM的所有用户在不同的时间占用同样的频带宽度
* TDM介质的位速率大于单个信号的位速率
@ -211,7 +211,7 @@ date: 2023-07-25T19:25:31+08:00
#### 波分多路复用WDM
![](../../images/《计网》数据链路层/波分多路复用.jpg)
![](../../images/408/《计网》数据链路层/波分多路复用.jpg)
#### 超分多路复用CDM
@ -235,11 +235,11 @@ date: 2023-07-25T19:25:31+08:00
* $S \cdot S = l$
* $S \cdot \bar{S} = -l$
* 例题
* ![](../../images/《计网》数据链路层/例题1码分多路复用.jpg)
* ![](../../images/《计网》数据链路层/例题2码分多路复用.jpg)
* ![](../../images/《计网》数据链路层/例题3码分多路复用.jpg)
* ![](../../images/《计网》数据链路层/例题4码分多路复用.jpg)
* ![](../../images/《计网》数据链路层/例题5码分多路复用.jpg)
* ![](../../images/408/《计网》数据链路层/例题1码分多路复用.jpg)
* ![](../../images/408/《计网》数据链路层/例题2码分多路复用.jpg)
* ![](../../images/408/《计网》数据链路层/例题3码分多路复用.jpg)
* ![](../../images/408/《计网》数据链路层/例题4码分多路复用.jpg)
* ![](../../images/408/《计网》数据链路层/例题5码分多路复用.jpg)
### 随机接入协议分类
@ -273,62 +273,62 @@ date: 2023-07-25T19:25:31+08:00
##### 多址接入MA、碰撞检测CD、载波监听CS的概念
![](../../images/《计网》数据链路层/多址接入MA.jpg)
![](../../images/408/《计网》数据链路层/多址接入MA.jpg)
* 不适用于无线网络
##### 征用期(碰撞期)
![](../../images/《计网》数据链路层/征用期(碰撞期.jpg)
![](../../images/408/《计网》数据链路层/征用期(碰撞期.jpg)
##### 最大帧长
【首部+尾部+数据载荷最小开始=64即最小帧长】
![](../../images/《计网》数据链路层/最大帧长.jpg)
![](../../images/408/《计网》数据链路层/最大帧长.jpg)
##### 信道利用率
![](../../images/《计网》数据链路层/信道利用率.jpg)
![](../../images/408/《计网》数据链路层/信道利用率.jpg)
* 信号传播延迟趋于0时信道利用率接近100%
##### MA、CD、CS的协作
![](../../images/《计网》数据链路层/MACDCS的协作.jpg)
![](../../images/408/《计网》数据链路层/MACDCS的协作.jpg)
##### 最小帧长
![](../../images/《计网》数据链路层/最小帧长.jpg)
![](../../images/408/《计网》数据链路层/最小帧长.jpg)
##### 截断二进制的指数退避算法
![](../../images/《计网》数据链路层/截断二进制指数退避算法.jpg)
![](../../images/408/《计网》数据链路层/截断二进制指数退避算法.jpg)
* 考虑到了网络负载对冲突的影响
##### 帧发送流程
![](../../images/《计网》数据链路层/帧发送流程.jpg)
![](../../images/408/《计网》数据链路层/帧发送流程.jpg)
#### 无线局域网使用的协议【CSMA/CA】
##### CSMA/CA为什么不能用于无线网
![](../../images/《计网》数据链路层/CSMACA为什么不能用于无线网.jpg)
![](../../images/408/《计网》数据链路层/CSMACA为什么不能用于无线网.jpg)
##### 帧间间隔IFSInterFrame Space
![](../../images/《计网》数据链路层/帧间间隔IFSInterFrame%20Space.jpg)
![](../../images/408/《计网》数据链路层/帧间间隔IFSInterFrame%20Space.jpg)
##### 退避算法工作原理
![](../../images/《计网》数据链路层/退避算法工作原理.jpg)
![](../../images/408/《计网》数据链路层/退避算法工作原理.jpg)
##### CSMA/CA是什么
![](../../images/《计网》数据链路层/CSMACA是什么.jpg)
![](../../images/408/《计网》数据链路层/CSMACA是什么.jpg)
##### CSMA/CA的工作原理
@ -336,11 +336,11 @@ date: 2023-07-25T19:25:31+08:00
##### 退避算法示意
![](../../images/《计网》数据链路层/退避算法示意图.jpg)
![](../../images/408/《计网》数据链路层/退避算法示意图.jpg)
##### 虚拟载波监听
![](../../images/《计网》数据链路层/虚拟载波监听.jpg)
![](../../images/408/《计网》数据链路层/虚拟载波监听.jpg)
#### 令牌传递协议
@ -360,15 +360,15 @@ date: 2023-07-25T19:25:31+08:00
### IEEE802局域网的MAC地址发送顺序
![](../../images/《计网》数据链路层/IEEE802.11局域网的MAC地址发送顺序.jpg)
![](../../images/408/《计网》数据链路层/IEEE802.11局域网的MAC地址发送顺序.jpg)
### IEEE802局域网的MAC地址格式
![](../../images/《计网》数据链路层/IEEE802.11局域网的MAC地址格式.jpg)
![](../../images/408/《计网》数据链路层/IEEE802.11局域网的MAC地址格式.jpg)
### 以太网和802的MAC帧示意图
![](../../images/《计网》数据链路层/以太网和802的MAC帧示意图.jpg)
![](../../images/408/《计网》数据链路层/以太网和802的MAC帧示意图.jpg)
## ARPaddress resolution protocol协议
@ -393,7 +393,7 @@ date: 2023-07-25T19:25:31+08:00
### 以太网交换机的概述
![](../../images/《计网》数据链路层/以太网交换机的概述.jpg)
![](../../images/408/《计网》数据链路层/以太网交换机的概述.jpg)
### 以太网交换机自学习和转发帧的过程
@ -401,19 +401,19 @@ date: 2023-07-25T19:25:31+08:00
* 以太网交换机收到帧后在帧交换表中查找帧的目的MAC地址所对应的接口号然后通过该接口转发帧
* 以太网交换机是一种即插即用的设备,刚上电启动时其内部的帧交换表是空的
* 随着网络各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表
* ![](../../images/《计网》数据链路层/以太网交换机自学习和转发帧的过程.jpg)
* ![](../../images/408/《计网》数据链路层/以太网交换机自学习和转发帧的过程.jpg)
* 例题
* ![](../../images/《计网》数据链路层/例题以太网交换机自学习和转发帧的过程.jpg)
* ![](../../images/408/《计网》数据链路层/例题以太网交换机自学习和转发帧的过程.jpg)
### 以太网交换机生成树协议STP
![](../../images/《计网》数据链路层/以太网交换机生成树协议STP.jpg)
![](../../images/408/《计网》数据链路层/以太网交换机生成树协议STP.jpg)
### 集线器和交换机的对比
![](../../images/《计网》数据链路层/集线器和交换机的对比1.jpg)
![](../../images/408/《计网》数据链路层/集线器和交换机的对比1.jpg)
![](../../images/《计网》数据链路层/集线器和交换机的对比2.jpg)
![](../../images/408/《计网》数据链路层/集线器和交换机的对比2.jpg)
## 局域网和广域网
@ -441,10 +441,10 @@ date: 2023-07-25T19:25:31+08:00
* 有效共享网络资源
* 简化网络管理
* 提高网络安全性
* ![](../../images/《计网》数据链路层/VLAN的概述.jpg)
* ![](../../images/408/《计网》数据链路层/VLAN的概述.jpg)
### VLAN的实现机制
IEEE 802.1Q帧
![](../../images/《计网》数据链路层/VLAN的实现机制.jpg)
![](../../images/408/《计网》数据链路层/VLAN的实现机制.jpg)

View File

@ -103,11 +103,11 @@ date: 2023-07-24T16:46:37+08:00
* 噪声干扰
* 传输媒体的质量
* 码元传输速率越大、信号传输距离越远、噪声干扰越大或传输媒体质量越差、波形失真越严重
* ![](../../images/《计网》物理层/失真.png)
* ![](../../images/408/《计网》物理层/失真.png)
* 码间串扰
* 接收端收到的信号波形市区了码元之间清晰界限的现象
* 具体的信道所能通过的频率范围是有限的
* ![](../../images/《计网》物理层/码间干扰.png)
* ![](../../images/408/《计网》物理层/码间干扰.png)
* 奈氏准则
* 在理想低通无噪声、带宽受限条件下为了避免码间串扰极限码元传输速率为2W BaudW是信道带宽单位是Hz
* 带宽只有在奈氏准则和香农定理中单位是HZ其余都是b/s
@ -130,7 +130,7 @@ date: 2023-07-24T16:46:37+08:00
## 编码和调制
![](../../images/《计网》物理层/编码和调制.png)
![](../../images/408/《计网》物理层/编码和调制.png)
* 信道上传送的信号类型
* 基带信号
@ -152,7 +152,7 @@ date: 2023-07-24T16:46:37+08:00
## 四种编码方式
### 数字数据编码为数字信号
* ![](../../images/《计网》物理层/数字数据编码为数字信号.png)
* ![](../../images/408/《计网》物理层/数字数据编码为数字信号.png)
* 归零编码
* 信号电平在一个码元之内都要恢复到零的编码方式
* 这种编码在传输过程中处于低电平的情况多,信道利用率低
@ -178,7 +178,7 @@ date: 2023-07-24T16:46:37+08:00
### 数字数据调制为模拟信号
![](../../images/《计网》物理层/数字数据调制为模拟信号.png)
![](../../images/408/《计网》物理层/数字数据调制为模拟信号.png)
* 调幅
* 即戴波的振幅随基带数字信号而变化如0或1分别对应无载波或有载波输出
@ -212,7 +212,7 @@ date: 2023-07-24T16:46:37+08:00
## 电路交换、报文交换、分组交换
![](../../images/《计网》物理层/三种交换的比较.png)
![](../../images/408/《计网》物理层/三种交换的比较.png)
* 电路交换
* 电路交换需要建立一条专用的数据通信路径,这条路径上可能包含许多中间节点
@ -317,7 +317,7 @@ date: 2023-07-24T16:46:37+08:00
* 5-4-3规则
* 网络标准中都对信号的延迟范围作了具体的规定,因而中继器只能在规定的范围内进行,否则会网络故障
* 以太网有5个网段4个网络设备3个段连接计算机
* ![](../../images/《计网》物理层/5-4-3规则.png)
* ![](../../images/408/《计网》物理层/5-4-3规则.png)
* 集线器
* 本质为一个多端口的中继器
* 功能

View File

@ -71,7 +71,7 @@ date: 2023-07-26T11:37:50+08:00
* 分组转发,处理通过路由器的数据流
* 路由计算,通过和其他路由器进行路由协议的交互,完成路由表的计算
* 路由器的组成
* ![](../../images/《计网》网络层/路由器的组成.jpg)
* ![](../../images/408/《计网》网络层/路由器的组成.jpg)
* 路由选择部分
* 路由选择处理机 + 路由选择协议 + 路由表
* 控制部分,核心是路由选择处理机
@ -93,14 +93,14 @@ date: 2023-07-26T11:37:50+08:00
* 路由表总是用软件实现,转发表可以用软件也可以用邮件实现
* 路由表不等于转发表,分组的实际转发是靠直接查找转发表,而不是直接查找路由表
* 路由表中默认路由的目的地址和子网掩码都是0.0.0.0
* ![](../../images/《计网》网络层/路由表.jpg)
* ![](../../images/408/《计网》网络层/路由表.jpg)
## IP地址的基本知识
### IP地址的定义
![](../../images/《计网》网络层/IP地址定义.png)
![](../../images/408/《计网》网络层/IP地址定义.png)
* MAC的作用则是实现直连的两个设备之间通信而IP负责在没有直连的两个网络之间进行通信传输
* 源IP地址和目标IP地址在传输过程中是不会变化的没有使用NAT网络情况下只有源MAC地址和目标MAC一直在变化
@ -112,7 +112,7 @@ date: 2023-07-26T11:37:50+08:00
#### 分类
![](../../images/《计网》网络层/分类编制的IPV4地址.jpg)
![](../../images/408/《计网》网络层/分类编制的IPV4地址.jpg)
* ABC类地址主要由网络号和主机号组成
* 网络号标志主机/路由器所连接到的网络
@ -142,15 +142,15 @@ date: 2023-07-26T11:37:50+08:00
* C类地址254个太少了B类地址65534个又太多了不能很好地与显示网络匹配
* 可用CIDR解决
* 例题
* ![](../../images/《计网》网络层/例题分类编制的IPV4地址.jpg)
* ![](../../images/408/《计网》网络层/例题分类编制的IPV4地址.jpg)
* 一般不适用的IP地址
* ![](../../images/《计网》网络层/一般不使用的IP地址.jpg)
* ![](../../images/408/《计网》网络层/一般不使用的IP地址.jpg)
### 划分子网的IP地址
![](../../images/《计网》网络层/划分子网的IPV4地址.jpg)
![](../../images/408/《计网》网络层/划分子网的IPV4地址.jpg)
![](../../images/《计网》网络层/划分子网的IPV4地址2.jpg)
![](../../images/408/《计网》网络层/划分子网的IPV4地址2.jpg)
* 划分子网原因
* 两级IP地址分类的地址空间流动率有时很低用子网划分的方法来改善这个问题
@ -174,7 +174,7 @@ date: 2023-07-26T11:37:50+08:00
* 根据子网掩码可知从8位主机号中借用2位作为子网号
* 由于子网网络地址被划分成2位那么子网地址就有4个分别是00、01、10、11
* 划分后的4个子网如下图
* ![](../../images/《计网》网络层/例题划分子网的IPV4地址.jpg)
* ![](../../images/408/《计网》网络层/例题划分子网的IPV4地址.jpg)
### 无分类编制的IPV4地址【CIDR】
@ -184,12 +184,12 @@ date: 2023-07-26T11:37:50+08:00
* 一种归并技术,可以把小的网络汇聚成大的超网
* 可以更加有效地分配IPV4的地址空间并且可以在新的IPV6使用之前允许因特网的规模继续增长
* 细节
* ![](../../images/《计网》网络层/无分类编制的IPV4地址.jpg)
* ![](../../images/408/《计网》网络层/无分类编制的IPV4地址.jpg)
* 路由聚合
* 为了减少路由表的消耗,用路由聚合来聚合网络地址
* 网络前缀越长,地址块越小,路由越具体
* 最长前缀匹配:有多条路由可选的时候,选择网络前缀最长的那条
* ![](../../images/《计网》网络层/路由聚合.jpg)
* ![](../../images/408/《计网》网络层/路由聚合.jpg)
* 例题
* ![](../..images/《计网》网络层/例题无分类编制的IPV4地址.jpg)
* 答案为C
@ -200,13 +200,13 @@ date: 2023-07-26T11:37:50+08:00
* 使用同一个子网掩码来划分子网
* 子网划分方式不灵活,只能划分出$2^n$个子网
* 每个子网所分配的IP地址数量相同容易造成IP地址浪费
* ![](../../images/《计网》网络层/定长的子网掩码.jpg)
* ![](../../images/408/《计网》网络层/定长的子网掩码.jpg)
* 变长的子网掩码
* 使用不同的子网掩码来划分子网
* 子网划分方式灵活,可以按需分配
* 每个子网所分配的IP地址数量可以不同尽可能减少对IP地址的浪费
* ![](../../images/《计网》网络层/变长的子网掩码1.jpg)
* ![](../../images/《计网》网络层/变长的子网掩码2.jpg)
* ![](../../images/408/《计网》网络层/变长的子网掩码1.jpg)
* ![](../../images/408/《计网》网络层/变长的子网掩码2.jpg)
### IP数据报的发送和转发过程
@ -219,36 +219,36 @@ date: 2023-07-26T11:37:50+08:00
* 出错直接丢弃该IP数据报并通告源主机
* 没有出错,直接进行转发
* 根据IP数据报的目的地址在路由表中查找匹配的条目
* ![](../../images/《计网》网络层/路由器转发IP数据报.jpg)
* ![](../../images/408/《计网》网络层/路由器转发IP数据报.jpg)
* 若找到匹配的条目,则转发给条目中指示的下一跳
* 若找不到则丢弃该IP数据报并通告源主机
### 静态路由配置及其可能产生的路由环路问题
* 静态路由配置
* ![](../../images/《计网》网络层/静态路由配置.jpg)
* ![](../../images/408/《计网》网络层/静态路由配置.jpg)
* 特定主机路由(默认路由)
* ![](../../images/《计网》网络层/特定主机路由.jpg)
* ![](../../images/408/《计网》网络层/特定主机路由.jpg)
* 静态路由配置错误导致路由环路
* ![](../../images/《计网》网络层/静态路由配置错误导致路由环路.jpg)
* ![](../../images/408/《计网》网络层/静态路由配置错误导致路由环路.jpg)
* 为了防止IP数据报在路由环路中永久兜圈在IP数据报首部设有生存时间TTL字段
* IP数据报进入路由器后TTL字段的值减1
* 若TTL的值不等于0则被路由器转发否则被丢弃
* 聚合不存在的网络而导致的路由环路
* ![](../../images/《计网》网络层/聚合不存在的网络而导致的路由环路.jpg)
* ![](../../images/408/《计网》网络层/聚合不存在的网络而导致的路由环路.jpg)
* 用黑洞路由条目配置解决
* 网络故障而导致的路由环路
* ![](../../images/《计网》网络层/网络故障而导致的路由环路.jpg)
* ![](../../images/408/《计网》网络层/网络故障而导致的路由环路.jpg)
* 用黑洞路由条目配置解决该问题
* 如果故障消失了,会暂时把黑洞路由条目设置为失效
### IPV6
![](../../images/《计网》网络层/IPV61.jpg)
![](../../images/408/《计网》网络层/IPV61.jpg)
![](../../images/《计网》网络层/IPV62.jpg)
![](../../images/408/《计网》网络层/IPV62.jpg)
![](../../images/《计网》网络层/IPV61.jpg)
![](../../images/408/《计网》网络层/IPV61.jpg)
* IPV6地址的标识方法
* IPV6地址长度是128位是以每16位作为一组
@ -276,34 +276,34 @@ date: 2023-07-26T11:37:50+08:00
### IPV4首部
![](../../images/《计网》网络层/IPV4首部.jpg)
![](../../images/408/《计网》网络层/IPV4首部.jpg)
* 首部内容
* 首部长度总长度片偏移的基本单位分别为4B,1B,8B
* ![](../../images/《计网》网络层/首部内容.jpg)
* ![](../../images/408/《计网》网络层/首部内容.jpg)
* IPV4分片
* 以太网MTU【最大传输单元】不超过1500
* DF=1时分组的长度又超过MTU时丢弃该分组并用ICMP差错报文向源主机报告
* MF = 1表示接受到的分片不是最后一个分片
* 所有片中的有效数据核载都是8的倍数【偏移值的单位是8B】
* 在目的主机中对分片后的数据报重组
* ![](../../images/《计网》网络层/IPV4分片1.jpg)
* ![](../../images/《计网》网络层/IPV4分片2.jpg)
* ![](../../images/408/《计网》网络层/IPV4分片1.jpg)
* ![](../../images/408/《计网》网络层/IPV4分片2.jpg)
* 例题
* ![](../../images/《计网》网络层/IPV4分片例题.jpg)
* ![](../../images/408/《计网》网络层/IPV4分片例题.jpg)
## 路由选择协议概述
* 静态路由选择/动态路由选择
* ![](../../images/《计网》网络层/路由选择.jpg)
* ![](../../images/408/《计网》网络层/路由选择.jpg)
* 路由协议的主要特点
* 自适应-动态路由选择,能较好地适应网络状态的变化
* 分布式-路由器之间交换路由信息
* 分层次-将整个因特网划分为许多较小的自治系统
* 分层次的路由选择协议
* ![](../../images/《计网》网络层/分层次的路由选择协议.jpg)
* ![](../../images/408/《计网》网络层/分层次的路由选择协议.jpg)
* 路由选择协议
* ![](../../images/《计网》网络层/路由选择协议汇总.jpg)
* ![](../../images/408/《计网》网络层/路由选择协议汇总.jpg)
### 三种路由协议比较
@ -319,45 +319,45 @@ date: 2023-07-26T11:37:50+08:00
### 路由信息协议RIP的工作原理
* RIP基本概念
* ![](../../images/《计网》网络层/RIP基本概念.jpg)
* ![](../../images/408/《计网》网络层/RIP基本概念.jpg)
* RIP工作原理
* ![](../../images/《计网》网络层/RIP工作原理.jpg)
* ![](../../images/408/《计网》网络层/RIP工作原理.jpg)
* RIP基本工作过程
* ![](../../images/《计网》网络层/RIP基本工作过程.jpg)
* ![](../../images/408/《计网》网络层/RIP基本工作过程.jpg)
* RIP路由条目更新规则
* ![](../../images/《计网》网络层/RIP路由条目更新规则.jpg)
* ![](../../images/408/《计网》网络层/RIP路由条目更新规则.jpg)
* RIP坏消息传播得慢
* ![](../../images/《计网》网络层/RIP坏消息传的慢的问题.jpg)
* ![](../../images/408/《计网》网络层/RIP坏消息传的慢的问题.jpg)
### 开放最短路径优先OSPF的基本工作原理
* OSPF基本概念
* ![](../../images/《计网》网络层/OSPF基本概念.jpg)
* ![](../../images/408/《计网》网络层/OSPF基本概念.jpg)
* 区域边界路由器:主干区域内,用于连接主干区域和其他下层区域的路由器
* 主要在主干区域中的路由器都叫做主干路由器
* 主干路由器可以兼做区域边界路由器
* 自治系统有4类路由器区域内部路由器主干路由器区域边界路由器自治域边界路由器
* 链路的代价
* ![](../../images/《计网》网络层/链路的代价.jpg)
* ![](../../images/408/《计网》网络层/链路的代价.jpg)
* 交互问候分组
* ![](../../images/《计网》网络层/交互问候分组.jpg)
* ![](../../images/408/《计网》网络层/交互问候分组.jpg)
* 计算最短路径的过程
* ![](../../images/《计网》网络层/计算最短路径的过程.jpg)
* ![](../../images/408/《计网》网络层/计算最短路径的过程.jpg)
* 五种分组类型
* ![](../../images/《计网》网络层/五种分组类型.jpg)
* ![](../../images/408/《计网》网络层/五种分组类型.jpg)
* OSPF的基本工作过程
* ![](../../images/《计网》网络层/OSPF的基本工作过程.jpg)
* ![](../../images/408/《计网》网络层/OSPF的基本工作过程.jpg)
* DR和BDR
* ![](../../images/《计网》网络层/DR和BDR.jpg)
* ![](../../images/408/《计网》网络层/DR和BDR.jpg)
* 区域
* ![](../../images/《计网》网络层/区域.jpg)
* ![](../../images/408/《计网》网络层/区域.jpg)
* 总结
* ![](../../images/《计网》网络层/内容总结.jpg)
* ![](../../images/408/《计网》网络层/内容总结.jpg)
### 边界网关协议BGP的工作原理
* BGP交换的网络可达性信息要到达某个网络所要结果的一系列自治系统/路径
* ![](../../images/《计网》网络层/边界网关协议BGP的工作原理.jpg)
* ![](../../images/408/《计网》网络层/边界网关协议BGP的工作原理.jpg)
## IP协议相关技术
@ -365,22 +365,22 @@ date: 2023-07-26T11:37:50+08:00
### ICMP【互联网控制报文协议】
* 概述
* ![](../../images/《计网》网络层/ICMP概述.jpg)
* ![](../../images/408/《计网》网络层/ICMP概述.jpg)
* 五种差错报文
* ![](../../images/《计网》网络层/五种差错报文1.jpg)
* ![](../../images/《计网》网络层/五种差错报文2.jpg)
* ![](../../images/《计网》网络层/五种差错报文3.jpg)
* ![](../../images/《计网》网络层/五种差错报文4.jpg)
* ![](../../images/《计网》网络层/五种差错报文5.jpg)
* ![](../../images/408/《计网》网络层/五种差错报文1.jpg)
* ![](../../images/408/《计网》网络层/五种差错报文2.jpg)
* ![](../../images/408/《计网》网络层/五种差错报文3.jpg)
* ![](../../images/408/《计网》网络层/五种差错报文4.jpg)
* ![](../../images/408/《计网》网络层/五种差错报文5.jpg)
* 不应该发送差错报文的情况
* ![](../../images/《计网》网络层/不应该发送差错报文的情况.jpg)
* ![](../../images/408/《计网》网络层/不应该发送差错报文的情况.jpg)
* ICMP询问方式
* ![](../../images/《计网》网络层/ICMP询问方式.jpg)
* ![](../../images/408/《计网》网络层/ICMP询问方式.jpg)
* ICMP应用
* ![](../../images/《计网》网络层/ICMP应用1.jpg)
* ![](../../images/《计网》网络层/ICMP应用2.jpg)
* ![](../../images/《计网》网络层/ICMP应用3.jpg)
* ![](../../images/《计网》网络层/ICMP应用4.jpg)
* ![](../../images/408/《计网》网络层/ICMP应用1.jpg)
* ![](../../images/408/《计网》网络层/ICMP应用2.jpg)
* ![](../../images/408/《计网》网络层/ICMP应用3.jpg)
* ![](../../images/408/《计网》网络层/ICMP应用4.jpg)
### ARP协议【IP地址到MAC地址的映射】
@ -401,22 +401,22 @@ date: 2023-07-26T11:37:50+08:00
### DHCP协议【动态主机配置协议】
* DHCP主要内容
* ![](../../images/《计网》网络层/DHCP主要内容.jpg)
* ![](../../images/408/《计网》网络层/DHCP主要内容.jpg)
* DHCP过程
* ![](../../images/《计网》网络层/DHCP过程.jpg)
* ![](../../images/《计网》网络层/DHCP过程1.jpg)
* ![](../../images/408/《计网》网络层/DHCP过程.jpg)
* ![](../../images/408/《计网》网络层/DHCP过程1.jpg)
### 虚拟专用网VPN和网络地址转换NAT
* 公有地址,私有地址
* ![](../../images/《计网》网络层/公有地址,私有地址.jpg)
* ![](../../images/408/《计网》网络层/公有地址,私有地址.jpg)
* 虚拟专用网VPN
* ![](../../images/《计网》网络层/虚拟专用网VPN.jpg)
* ![](../../images/408/《计网》网络层/虚拟专用网VPN.jpg)
* 网络地址转换NAT
* ![](../../images/《计网》网络层/网络地址转换NAT.jpg)
* ![](../../images/408/《计网》网络层/网络地址转换NAT.jpg)
* NAT的表项需要由管理员来添加
* NAT转换流程
* ![](../../images/《计网》网络层/NAT转换流程.jpg)
* ![](../../images/408/《计网》网络层/NAT转换流程.jpg)
* 上图有两个客户端192.168.1.10和192.168.1.11
* 与服务器183.232.231.172进行通信并且这两个客户端的本地端口都是1025
* 此时两个私有IP都转换IP为公有地址120.229.175.121,但以不同的端口号作为区分

View File

@ -145,7 +145,7 @@ date: 2023-07-24T13:31:22+08:00
* 相互通信的两个计算机系统必须高度协调工作,这种协调是相当复杂的
* 分层可以将庞大而复杂的问题转化为若干个较小的局部问题,而这些较小的局部问题就比较易于研究和处理
* 实体、协议、服务和服务访问点
* ![](../../images/《计网》计算机网络体系结构/实体协议图示.png)
* ![](../../images/408/《计网》计算机网络体系结构/实体协议图示.png)
* 实体
* 表示任何可以发送或接受信息的硬件或软件进程。同一层的实体称为对等实体
* 协议
@ -196,7 +196,7 @@ date: 2023-07-24T13:31:22+08:00
### 两个主机通信的过程
![](../../images/《计网》计算机网络体系结构/主机通信过程.png)
![](../../images/408/《计网》计算机网络体系结构/主机通信过程.png)
1. 主机A先将其数据交给本机的第7层应用层。第5层加上必要的控制信息H7就变成了下一层的数据单元
2. 第6层表示层收到数据单元后加上本层的控制信息H6就变成了下一层的控制信息依次类推
@ -211,18 +211,18 @@ date: 2023-07-24T13:31:22+08:00
### 三种网络模型
* OSI七层模型
* ![](../../images/《计网》计算机网络体系结构/OSI七层模型.png)
* ![](../../images/408/《计网》计算机网络体系结构/OSI七层模型.png)
* 表示层
* 数据压缩、加密及数据描述,使得应用程序不必关系再各台主机中数据内部格式不同的问题
* 会话层
* 建立及管理会话
* TCP/IP结构
* ![](../../images/《计网》计算机网络体系结构/TCPIP结构.png)
* ![](../../images/408/《计网》计算机网络体系结构/TCPIP结构.png)
* 只有四层,相当于五层协议中数据链路层和物理层合并为网络接口层
* TCP/IP体系结构不严格遵循OSI分层概念
* 应用层可能会直接使用IP层或网络接口层
* 五层协议结构
* ![](../../images/《计网》计算机网络体系结构/五层协议结构.png)
* ![](../../images/408/《计网》计算机网络体系结构/五层协议结构.png)
* 应用层
* 通过应用进程间的交互来完成特定网络应用,数据单位为报文
* 运输层
@ -238,4 +238,4 @@ date: 2023-07-24T13:31:22+08:00
* 物理层
* 主要负责在物理线路上传输原始的二进制数据
* 三个网络模型的对比
* ![](../../images/《计网》计算机网络体系结构/三者的对比.jpg)
* ![](../../images/408/《计网》计算机网络体系结构/三者的对比.jpg)

View File

@ -32,7 +32,7 @@ date: 2022-05-10T17:23:35+08:00
这里存放一些我在学习高数,线代,概率论的一些随笔,一方面是图形学的琢磨用的比较多,另一方面也是考研做题需求
线性代数部分基于[3Blue1Brown](https://space.bilibili.com/88461692)制作的[线性代数的本质](https://www.bilibili.com/video/BV1ys411472E/),如有错误欢迎页脚邮件指出
线性代数部分基于[3Blue1Brown](https://space.bilibili.com/88461692)制作的[线性代数的本质],如有错误欢迎页脚邮件指出
-------------------------------------

View File

@ -0,0 +1,80 @@
---
title: "《线性代数》点乘"
date: 2023-08-08T22:52:40+08:00
---
## 点乘的标准方法
### 两个相同维度的向量
![](../../images/%E6%95%B0%E5%AD%A6/%E3%80%8A%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0%E3%80%8B%E7%82%B9%E4%B9%98/%E7%9B%B8%E5%90%8C%E7%BB%B4%E5%BA%A6%E5%90%91%E9%87%8F%E7%82%B9%E4%B9%98%E6%A0%87%E5%87%86.gif)
对应的几何解释
![](../../images/%E6%95%B0%E5%AD%A6/%E3%80%8A%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0%E3%80%8B%E7%82%B9%E4%B9%98/%E7%82%B9%E4%B9%98%E7%9A%84%E5%87%A0%E4%BD%95%E8%A7%A3%E9%87%8A.gif)
线性变换下的解释
![](../../images/%E6%95%B0%E5%AD%A6/%E3%80%8A%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0%E3%80%8B%E7%82%B9%E4%B9%98/%E7%BA%BF%E6%80%A7%E5%8F%98%E6%8D%A2%E6%96%B9%E5%BC%8F%E8%A7%A3%E9%87%8A.png)
1$\times$2矩阵与向量相乘的这一计算过程正如两个向量的点乘一样1$\times$2矩阵可以近似看作倾倒的向量
点乘的方向性
![](../../images/%E6%95%B0%E5%AD%A6/%E3%80%8A%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0%E3%80%8B%E7%82%B9%E4%B9%98/%E7%82%B9%E4%B9%98%E7%9A%84%E6%96%B9%E5%90%91%E6%80%A7.gif)
点乘的计算与顺序无关
![](../../images/%E6%95%B0%E5%AD%A6/%E3%80%8A%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0%E3%80%8B%E7%82%B9%E4%B9%98/%E7%82%B9%E4%B9%98%E9%A1%BA%E5%BA%8F%E6%97%A0%E5%85%B3.gif)
对于对称性被破坏的情况下,无论哪一个向量投影到另一个向量,缩放向量对点积结果的影响都是相同的
![](../../images/%E6%95%B0%E5%AD%A6/%E3%80%8A%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0%E3%80%8B%E7%82%B9%E4%B9%98/%E6%97%A0%E5%AF%B9%E7%A7%B0%E4%B8%8B%E7%82%B9%E4%B9%98%E9%A1%BA%E5%BA%8F%E6%97%A0%E5%85%B3.gif)
## 对偶性
解释点乘的计算方式和投影之间的联系的最好方式是对偶性
前文中1$\times$2矩阵与向量相乘的这一计算过程为我们揭示某种几何关系
假设目前还不知道点乘与向量投影间的关系
![](../../images/%E6%95%B0%E5%AD%A6/%E3%80%8A%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0%E3%80%8B%E7%82%B9%E4%B9%98/%E5%AF%B9%E7%A7%B0%E6%80%A7%E6%8E%A8%E7%90%86.gif)
对于$\hat{j}$也遵循这样的推理原则
$\hat{u}$的y坐标给出了$\hat{j}$向斜着的数轴上投影所得到的数
因此描述投影变换的1$\times$2矩阵的两列就是$\hat{u}$的坐标
![](../../images/%E6%95%B0%E5%AD%A6/%E3%80%8A%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0%E3%80%8B%E7%82%B9%E4%B9%98/%E6%8A%95%E5%BD%B1%E7%9F%A9%E9%98%B5%E5%92%8C%E5%90%91%E9%87%8F%E7%9B%B8%E4%B9%98.png)
计算向量投影的过程就是投影矩阵与这个向量相乘,而这一过程就是点乘的计算方式
![](../../images/%E6%95%B0%E5%AD%A6/%E3%80%8A%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0%E3%80%8B%E7%82%B9%E4%B9%98/%E7%9F%A9%E9%98%B5%E4%B9%98%E6%B3%95%E4%B8%8E%E6%8A%95%E5%BD%B1%E5%AF%B9%E6%AF%94.png)
也是与单位向量的点乘可以被简单解读为将向量投影到单位向量上所得到的投影的长度
---
对于向量与给定非单位向量的点乘
![](../../images/%E6%95%B0%E5%AD%A6/%E3%80%8A%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0%E3%80%8B%E7%82%B9%E4%B9%98/%E5%90%91%E9%87%8F%E4%B8%8E%E9%9D%9E%E5%8D%95%E4%BD%8D%E5%90%91%E9%87%8F%E7%9A%84%E7%82%B9%E4%B9%98.gif)
任何时候看到一个输出空间是一维数轴的线性变换,无论定义是如何,都可以认为存在唯一向量$\vec{V}$与之相关
正是对偶性(两种数学事物自然而又出乎意料的对应关系)的体现
* 一个向量的对偶是由它定义的线性变换
* 一个多维空间到一维空间的线性变换的对偶是多维空间中的某个特定向量
## 点乘的用途
* 点乘是理解投影的几何工具
* 判断两个向量的指向是否相同
* 两个向量点乘即将其中一个向量转化为线性变换(数值上仅表现为相似的计算流程)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

View File

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 140 KiB

View File

Before

Width:  |  Height:  |  Size: 348 KiB

After

Width:  |  Height:  |  Size: 348 KiB

View File

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

View File

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 70 KiB

View File

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

View File

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 103 KiB

View File

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 75 KiB

View File

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

View File

Before

Width:  |  Height:  |  Size: 200 KiB

After

Width:  |  Height:  |  Size: 200 KiB

View File

Before

Width:  |  Height:  |  Size: 265 KiB

After

Width:  |  Height:  |  Size: 265 KiB

View File

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

View File

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 59 KiB

View File

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

View File

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 112 KiB

View File

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 53 KiB

View File

Before

Width:  |  Height:  |  Size: 188 KiB

After

Width:  |  Height:  |  Size: 188 KiB

View File

Before

Width:  |  Height:  |  Size: 283 KiB

After

Width:  |  Height:  |  Size: 283 KiB

View File

Before

Width:  |  Height:  |  Size: 226 KiB

After

Width:  |  Height:  |  Size: 226 KiB

View File

Before

Width:  |  Height:  |  Size: 192 KiB

After

Width:  |  Height:  |  Size: 192 KiB

View File

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 154 KiB

View File

Before

Width:  |  Height:  |  Size: 171 KiB

After

Width:  |  Height:  |  Size: 171 KiB

View File

Before

Width:  |  Height:  |  Size: 196 KiB

After

Width:  |  Height:  |  Size: 196 KiB

View File

Before

Width:  |  Height:  |  Size: 309 KiB

After

Width:  |  Height:  |  Size: 309 KiB

View File

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View File

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 141 KiB

View File

Before

Width:  |  Height:  |  Size: 212 KiB

After

Width:  |  Height:  |  Size: 212 KiB

View File

Before

Width:  |  Height:  |  Size: 1003 KiB

After

Width:  |  Height:  |  Size: 1003 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 1.0 MiB

View File

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 145 KiB

View File

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

View File

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

View File

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Some files were not shown because too many files have changed in this diff Show More