408部分知识点总结

前言

这是我参加2023年考研时总结的知识点,里面包含了我当时认为比较晦涩难懂的知识点和题型,仅供大家参考,祝大家取得好成绩!

数据结构

平衡二叉树

高度为h的平衡二叉树使得节点最少,Nh=1+Nh-2+Nh-1

红黑树

点击查看【bilibili】

简单路径:路径上的顶点都不相同的路径称为 简单路径

查找

B树与B+树

在B+树中,具有n个关键字的节点只包含有n棵子树,每个关键字对应一棵子树。
在B+树中,叶节点包含了全部关键字,非叶节点中出现的关键字也会出现在叶节点中。
在B树中,关键字是不重复的。
B+树的应用:是索引。

散列表查找

散列函数+线性探测再散列的方法
装填因子=数据总数/表格总长度
【例1】2010年41题
image.png
查找成功:就是每个数据所要查找到的次数总和除以数据个数
查找不成功:查找失败的位置计算平均次数,(例如本题,是对7进行取余,所以只能落在0-6上,而不能超过6)
image.png

计算机组成原理

缓冲存储器用来存放最近使用的数据,其内容和调度是由硬件或操作系统完成的
功能特性和总线相关,总线的宽度、位数等

关于浮点数

最简单的浮点数舍入处理方法是截断法
IEEE754标准的浮点数的尾数都是大于等于1的,做乘法运算的结果也是大于等于1,不需要“左规”,但是有可能需要“右规”
浮点数运算,尾数溢出不是真正的溢出,阶码溢出才能叫做溢出

关于最小地址的问题

image.png
如此题,nm存储器的意思是按m编址,一共有n个地址,由此可以看出8K有13位地址,按8位编址,每两个芯片组成一组,2K4组成2K8,其中4不用管它,就看他最后的2K8就行,2K说明一块芯片内,有11个地址,故高2位代表芯片号

关于DRAM和SRAM

DRAM和SRAM都是易失性存储器
SRAM集成度低速度快、用于高速缓存
DRAM集成度高、成本低、功耗低、需要刷新、用于内存

关于地址复用的坑

image.png
DRAM采用地址线复用,途中的DRAM地址有22位,采用复用技术,所以是需要11根

Cache-主存的计算

命中率: N e N e + N m 命中率:\frac {{N}_{e}} {{N}_{e}+{N}_{m}} 命中率:Ne+NmNe
平均访问时间
有两种情况:
Cache主存同时查询
Cache主存不能同时访问
效率:访问Cache的时间/平均的时间
存储性能提升倍数:主存的访问时间/平均访问时间

软硬件实现

纯软件实现:程序查询
纯硬件实现:DMA、Cache
软硬件结合:通道、程序中断
虚拟存储器由硬件和操作系统共同完成
在程序执行系统调用的过程中,保存通用寄存器的内容,执行系统调用服务例程由操作系统来完成

关于CISC和RISC的相关区别

复杂指令系统CISC主要特点:
关于矩阵的加减乘除指令都由一个专门的电路来完成
可以访存的指令不受限制
因为太复杂,所以不能用硬布线完成,只能用微程序
难以优化编译
精简指令系统RISC主要特点:
指令格式一致
指令长度固定、种类少
只有取数/存数的指令访存
寄存器的数量多
一定采用流水线技术,大部分指令在一个周期内完成
硬布线,不用或少用微程序控制,不代表不用微程序!!!

机器零指机器数所表示的零的形式

机器零与真值零的区别是:机器零在数轴上表示为0点及其附近的一段区域,即在计算机中小到机器数的精度达不到的数均视为“机器零”,而真值零则表示0这一个点。
若要求全零表示机器零,则阶码应用移码表示、尾数用补码表示(此时阶码为最小阶,尾数为零,移码最小阶为全“0”,补码零的形式也为“0”)
计算机中机器零是指:
1、如果一个浮点数的尾数全为0,则不论其阶码为何值,计算机在处理时都把这种浮点数当作零看待;
2、如果一个浮点数的阶码小于它所表示范围的最小值,则不论其尾数为何值,计算机在处理时都把这种浮点数当作零看待。

可见和不可见的结论

对所有人可见:PSW、PC
对所有人透明:MAR、MDR、IR、Cache
对应用程序员透明:暂存、虚拟存储器
对汇编程序员可见:PC、ACC、基地址、状态寄存器、通用寄存器
对系统程序员可见:虚拟存储器

设备驱动程序和设备独立性软件

设备驱动程序与硬件相关,向上层用户程序提供一组标准的接口
设备驱动程序的主要功能有:
1、将收到的抽象转换为具体要求
2、检查用户IO的合法性,了解IO设备的状态,传递相关参数
3、发出IO指令、启动IO设备
4、响应通道请求、根据终端类型调用响应的中断处理程序
5、构造通道程序

设备独立性软件,引入逻辑设备和物理设备两个概念
设备独立软件的主要功能有:
1、执行设备公有操作(对设备的分配回收)
2、逻辑映射物理设备名
3、保护设备,禁止用户直接访问
4、缓冲管理、差错控制

总线的定时

1、同步方式:
采用同一的时钟,一个周期传输一次数据
优点:传送数据快、传输速率高、逻辑简单
缺点:主从设备强制性同步,不能及时检验数据通信,可靠性差
适用:总线长度较短、存取时间比较接近
2、异步方式:
优点:能保证速度差别很大的设备时间可靠地进行信息交换
缺点:复杂,慢
image.png

多处理器的概念

  1. SISD、SIMD、MIMD的概念

首先,多指令流单数据流(MISD)的结构是不存在的

  • 单指令单数据流(SISD)
    • 串行计算机结构,包含一个处理器和一个存储器,处理器一段时间内仅仅处理一条指令,有些SISD会采用流水线的方式,因此会设置多个功能部件
  • 单指令多数据流(SIMD)
    • 称为数据并行技术,包含一个指令控制部件、多个处理单元,不同处理单元执行的同一条指令所处理的数据是不同的
    • 在处理for循环时,SIMD最为有效,在使用case或switch语句时,SIMD效率最低
  • 多指令多数据流(MIMD)
    • MIMD分为多计算机系统和多处理器系统
      • 多计算机系统(消息传递MIMD)
        • 各自具有私有存储器,独立的主存地址空间,通过消息传递系统进行数据传输
      • 多处理器系统(SMP、共享存储MIMD)
        • 具有共享的单一地址空间,通过存取指令来访问系统中的所有处理器

注意:SIMD是数据级并行模式,MIMD是线程级及以上的并行模式

  1. 硬件多线程的概念
  • 细粒度多线程
    • 每个时钟切换进程,指令级并行,线程级不并行
  • 粗粒度多线程
    • 只有流水线阻塞时切换进程,指令级并行,线程级不并行
  • 同时多线程
    • 实现线程级并行

微控制程序

  1. 微命令与微操作

微命令是微操作的控制信号,微操作是微命令的执行过程。

  1. 微指令与微周期

两大部分信息:
①操作控制字段,产生某一步操作所需的各种操作信号
②顺序控制字段,用于控制产生下一条要执行的微指令地址

  1. 主存储器在CPU外部,用RAM实现;控制存储器CM在CPU内部,用ROM实现。
  2. 微程序控制器的组成
    1. 控制存储器:就是CM,用于存放微指令,用ROM实现
    2. 微指令寄存器
    3. 微地址形成部件
    4. 微地址寄存器

系统中有n条机器指令,则控制存储器中微程序数至少是n+1(因为有公共的微程序!!!)

  1. 微程序的编码方式
    1. 直接编码方式,一个字段对应一条指令,有点浪费
    2. 字段编码方式:每个小段要留出一个状态,通常用000表示不操作
    3. 字段间编码:微命令的产生并不是直接从一个字段译码得到,而是需要另一个字段的编码加以解释 。image.png
  2. 微指令的地址形成
    1. 直接由下一段地址指出,又称断定方式
    2. 操作码形成
  3. 微指令的格式(和编码方式进行区分)
    1. 水平型微指令,直接编码,字段编码都属于水平型
    2. 垂直型微指令,就一个字段,和机器指令类似,操作码,源地址,目的地址
  4. 微指令的数据通路重点,容易忘记的内容,有可能会考
    1. 在一个完整的微指令后,要加上Ad(CMDR)→CMAR
    2. 在一个阶段的末尾(比如说取数),要加Op(IR)→微地址形成部件→CMAR
  5. 动态微程序和毫微程序
    1. 一般来说微程序是固定的,如果要根据用户需求修改内容,则需要引入动态微程序,实现这个功能要使用EPROM

流水线的性能指标

  1. 流水线的吞吐率

T P = n ( 任务数 ) T k ( 时间 ) TP=\frac {n(任务数)} {{T}_{k}(时间)} TP=Tk(时间)n(任务数)

  1. 流水线的加速比

S = T 0 ( 不用流水线 ) T k ( 用了流水线 ) S=\frac {{T}_{0}(不用流水线)} {{T}_{k}(用了流水线)} S=Tk(用了流水线)T0(不用流水线)

  1. 流水线的效率(占面积之比!!与吞吐率区别开来s)

高级流水线技术

  1. 超标量流水线

也称动态多发射技术,每个时钟周期内可以并发多条独立指令,并配置多个功能部件。但是超标量技术不能调整指令的执行顺序

  1. 超长指令字技术

也称静态多发射技术,挖掘出指令间的潜在并行性,组成超长指令字,采用多个处理部件

  1. 超流水线技术

流水线划分的越多,时钟周期就越短,吞吐量就越大

中断处理的两个重要阶段

Step1. 中断响应阶段
经过中断判优,中断处理就进入中断响应阶段。中断响应时,CPU向中断源发出中断响应信号,同时:
① 保护硬件现场;
② 关中断;
③ 保护断点;
④ 获得中断服务程序的入口地址。
Step2. 中断服务阶段
中断服务程序的一般结构为:
① 保护现场。 在中断服务程序的起始部分安排若干条入栈指令,将各寄存器的内容压入堆栈保存。
② 开中断。 在中断服务程序执行期间允许级别更高的中断请求中断现 行的中断服务程序,实现中断嵌套。③ ③ 执行终端服务程序。 完成中断源的具体要求。
④ 恢复现场。 中断服务程序结束前,必须恢复主程序的中断现场。通常是将保存在堆栈中的现场信息弹出到原来的寄存器中。
⑤ 中断返回。 返回到原程序的断点处,继续执行原程序。
注意:现场信息因为可以用指令直接访问,所以通过指令把他们保存到栈中,软件实现,断点信息自动保存到栈中,硬件实现

操作系统

响应比 =(等待时间+要求服务时间)/ 要求服务时间,即RR=(w+s)/s=1+w/s 头重脚轻
子程序调用只需要保存程序端点;中断调用子程序不仅要保护端点,而且要保护程序状态字寄存器里的内容

进程控制

1、进程的创建
终端系统用户登录、作业调度、系统提供服务、用户程序的应用请求都会引起进程的创建
若PCB申请失败,则进程创建失败
资源不足不是创建失败,而是处于创建态,等待资源
2、进程的终止
引起终止的事件:正常结束、异常结束(越界、保护错、非法指令)、父进程请求和父进程终止

管道

管道单独构成一种文件系统,并且只存在于内存中,它类似于通信中半双工信道的进程通信机制,一个管道可以实现双向的数据传输,而同一时刻最多只能最多有一个方向的传输。一个管道允许多个写进程,一个读进程。

进程和线程的比较

线程是一个轻实体,不拥有系统资源
同一进程中的所有线程都可以共享进程的地址空间和全局变量,线程可以访问进程地址空间的每个单元,甚至可以读写清除另一个线程的堆栈

进程控制块

进程控制块是进程存在的唯一标志
进程转换过程中,就绪->阻塞,阻塞->运行是不可能发生的

进程的通信方式

1.共享存储
低级方式 :基于数据结构的共享
高级方式:基于存储区
操作系统只为通信进程提供可共享使用的存储空间和同步的互斥工具,而数据交换则由用户自己安排读写指令
2.消息传递
直接通信:直接给接收进程
间接通信:使用信箱
管道通信:

死锁

死锁产生的原因

  • 系统资源的竞争
  • 进程推进顺序非法

死锁产生的必要条件

  • 互斥条件
  • 不剥夺条件
  • 请求保持条件
  • 循环等待条件

死锁的处理策略

  • 死锁预防:设置限制条件,破坏4个条件之一或几个
    • 破环互斥条件:不太可行,有些资源只能互斥访问
    • 破坏不剥夺条件:比较复杂,反复申请资源会造成系统开销,常用于状态易保存和易恢复的情况,有可能导致饥饿的现象
    • 破坏请求与保持:一次性申请所有资源,缺点是资源会被浪费,有可能导致饥饿的现象
    • 破坏循环等待:顺序资源分配法,问题是编号必须相对稳定,限制了新型设备的增加,给用户编程带来麻烦,作业使用资源的顺序与系统不一致导致浪费
  • 避免死锁:银行家算法
  • 检测和接触

内存的重定位

注意:在虚拟内存管理中,形成逻辑地址的阶段是链接,而**!!完成该变换的过程阶段是装载!!**
image.png
image.png
image.png

连续分配方式和非连续分配方式

连续分配方式:动态分区和固定分配
非连续分配方式:分页分配、分段分配、段页式分配

磁盘旋转的问题

由下列方面组成

  • 平均旋转延迟:1/旋转速度*0.5
  • 寻道时间
  • 读取时间:针头转过扇区的时间

通道

image.png
通道和处理机的区别:通道的指令类型单一、没有自己的内存、通道所执行的程序放在主机内存中,与CPU共享内存
流程:CPU向IO通道发送一条IO指令,通道收到指令,执行通道程序完成CPU的IO任务,数据传输结束向CPU发送中断请求。(编址通道程序、启动IO通道、组织IO操作、发出中断请求)

设备分配

通道和设备的关系
image.png
设备分配步骤

  1. 根据进程请求的物理设备名查找SDT(注: 物理设备名是进程请求分配设备时提供的参数)
  2. 根据SDT找到DCT,若设备忙碌则将进程PCB挂到设备等待队列中,不忙碌则将设备分配给进程。
  3. 根据DCT找到COCT,若控制器忙碌则将进程PCB挂到控制器等待队列中,不忙碌则将控制器分配给进程。
  4. 根据COCT找到CHCT,若通道忙碌则将进程PCB挂到通道等待队列中,不忙碌则将通道分配给进程。

静态分配:对于独占设备的分配,用户作业开始前,将系统一次性分配该作业所要求的全部设备、控制器。设备使用效率低。
动态分配:执行某种策略,但有可能造成死锁。
安全的分配方式:进程发出IO请求后阻塞,直到IO完成时才被唤醒,CPU和IO是并行工作的。一个进程只能使用一个设备
不安全的分配方式:进程发出I/O请求后,系统为其分配IO设备新的I/O请求。只有某个IO请求得不到满足时才将进程阻塞。一个进程可以使用多个设备
进程可继续执行,之后还可以发出

索引顺序文件并不能像RAM一样随机访问任意一个存储单元,有不是完全顺序存取的,而是介于两者之间,先随机访问找到某个小区域,再顺序查找。这种结构放在顺序存储器上毫无意义。既能顺序存储又能随机存储

计算机网络

电路交换方式需要的时间:建立+链路上的时间+发送时延
TCP协议采用的是可变大小的滑动窗口协议机制
在OSI参考模型中,网络层支持无连接和面向连接的两种方式,传输层仅支持面向连接的方式
在OSI参考模型中,实现两个相邻节点的流量控制功能在数据链路层
TCP/IP模型中网络层为无连接,传输层支持无连接和有连接

海明码

设: 数据有m (message) 位,校验码有p (parity) 位则:
校验码一共有 2 p 2^p 2p种取值;若想通过校验码指出任一位上发生的错误必须满足
2 p − 1 ≥ m + p 2^p-1\geq m+p 2p1m+p
https://player.bilibili.com/player.html?bvid=BV1Wd4y1z7ck

PPP协议

通过拨号和专线方式建立点对点连接发送数据
是一种串行线链路、面向字节的协议(HDLC面向比特
三个组成部分:
链路控制协议(LCP),扩展链路控制协议,用于建立、配置、测试和管理数据链路
网络控制协议(NCP),PPP协议允许同时采用多种网络层协议
一个将IP数据报封装到串行链路的方法,最大长度受MTU限制
PPP提供差错不提供纠错功能,只保证无差错接收,仅支持点对点

电路交换、报文交换、分组交换特点


1、电路交换
建立路径,独占
优点:延时小、有序、无冲突、适用范围广(模拟、数字)、实时性、控制简单
缺点:建立时间长、独占、灵活性差、难以规格化
2、报文交换
被分组交换代替
优点:无需建立连接、动态分配线路、提高线路可靠、利用率高、提供多目标服务
缺点:大小没限制、需要有较大的缓存空间、转发时延
3、分组交换
优点:使用流水线的方式加速了传输的时间、减少出错率和重发数量

信道利用率

【例题】
image.png

ICMP差错报文

五种类型的差错报文

  • 终点不可达:原因可能有网络不可达,主机不可达,端口不可达,协议不可达,有些是路由器发出,有些是目的主机发出,但即使源点没有收到终点不可达ICMP
  • 源站抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源站发送源站抑制报文,使源站知道应当将数据报的发送速率放慢。
  • 时间超过:当路由器收到**生存时间为零(TTL)**的数据报时,除丢弃该数据报外,还要向源站发送时间超过报文。当目的站在预先规定的时间内不能收到一个数据报的全部数据报片时,就将已收到的数据报片都丢弃,并向源站发送时间超过报文。
  • 参数问题:当路由器或目的主机收到的数据报的首部中的字段的值不正确时,就丢弃该数据报,并向源站发送参数问题报文。
  • 改变路由(重定向):路由器将改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器。

不发送ICMP报文

  • ICMP差错报文(但是,ICMP查询报文可能会产生ICMP差错报文)
  • 目的地址是广播地址或多播地址的IP数据报
  • 作为链路层广播的数据报
  • 不是IP分片的第一片
  • 源地址不是单个主机的数据报。即源地址不能为零地址、环回地址、广播地址或多播地址。

组播

组播一定应用与UDP
组播地址属于D类地址

这里补充一下A、B、C类地址
A类地址:“0”开头
B类地址:“10”开头
C类地址:“110”开头
D类地址:“1110”开头
E类(对没错,还有E类):“1111”开头,E类作为保留

主机发送时,只发送一次数据,因此组播需要路由器来实现其功能
IGMP与组播路由算法
第一阶段:主机向组播地址发送IGMP报文,组播路由器收到后,将组成员关系转发给其他组播路由器
第二阶段:动态,路由器探询本地局域网的主机,有响应就认为是活跃的,若无响应则不再将该组的成员关系转发给其他组播路由器。
多播和IP的映射关系
image.png
image.png

DNS域名解析

建立连接和传输web页各需要一个RTT
image.png
image.png

HTTP协议

HTTP的连接方式分为非持久性连接和持久性连接
非持久性连接
非持久性连接首先要两个往返时延RTT,再加上响应报文的传输时间,每个对象引用都导致2*RTT
image.png
持久连接
image.png

17年真题错题整理

17年错得比较多,尤其是计组部分
image.png
double类型8个字节,一次读4个字节,然后画出流水线的图
image.png可以看到,当两个周期过去以后,还有一下剩下的时间要等待,所以至少要读3个周期。

数据通路上包括如程序计数器、ALU、通用寄存器、状态寄存器、异常和中断处理逻辑等,数据通路由控制部件控制,因此数据通路不包括控制部件。

系统调用过程:传递相关参数、执行trap指令、返回用户态、执行相应的服务程序

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值