408笔记完
408笔记完整考点篇
数据结构
时间复杂度
线性表:
具有随机存储特性,查找时间复杂度为O(1)
单链表-尾插法⭐
栈及其应用
根据限定条件判断合法性;最小容量;表达式求值;中缀表达式转化为后缀表达式过程
应用:数制转换、括号匹配、表达式求值(中缀表达式、后缀表达式)、递归调用等
循环队列(两种情况
输入/输出受限的双端队列⭐
特殊矩阵的压缩存储*
树
树的高度:log2(n)+1
- 节点数等于所有节点度加一 >> 节点为n,度数和为n-1;
- 度为m的树中,第i层之多有m^(i-1)个节点
- 高度为h的m叉树至多有(m^h-1)(m-1)个节点
- 具有n个节点的m叉树最小高度为[logm( n(m-1)+1 )]上取整
二叉树特性
- n0=n2+1
- k层至多有2^(k-1)个结点
- 高度为h,至多有2^h - 1个结点
- 具有n个结点的完全二叉树高度为log2n + 1
二叉树的遍历、编码
先序、中序、后序遍历
层次遍历:利用队列实现
线索二叉树:若无左子树,令左孩子指向前驱节点;若无右子树,令右孩子指向后继节点
数的存储结构
双亲表示法:表格形式
孩子表示法:表格链表形式
孩子兄弟表示法:二叉链表进行存储
二叉排序树:从左到右大小排序
查找
插入(构造
平衡二叉树
树与森林
相互转换:根节点当做兄弟节点,再用孩子兄弟表示法
树的应用:并查集⭐
线索二叉树(空地放前后端点链接
哈夫曼树(带权路径长度最小
哈夫曼编码:使用不等长编码,减少信息存储量;0转向左孩子,1转向右孩子
图
( , )无向图,< , >有向图
图的存储
1.邻接矩阵法:适合稠密图
2.邻接表法
3.邻接多重表、十字链表
图的遍历
深度优先搜索
广度优先搜索
图的应用
最小(代价)生成树
最小生成树不唯一,最小生成树代价唯一
-
kruskal 算法
按照权值递增顺序依次构造边
- prim 算法(基于贪心算法
最短路径
迪杰斯特拉算法解决单元最短路径问题
创建定点的距离表,根据不同深度不断更新距离表
Floyd算法解决各顶点之间最短路径问题
拓扑排序
不存在回路就能构造
原理:找一个没有前驱的节点输出,并删去该节点
AOV网:数据在顶点(面向对象
关键路径
e(i)=max{}; l(i)=min{};
AOE网:数据在边上(面向过程
只有关键路径上的活动时间同时减少时,才能缩短工期
关键活动:最迟开始时间 l(i) - 最早开始时间 e(i) = 0
查找
顺序查找
分块查找(索引顺序查找
折半查找
high=mid-1; low=mid+1;仅适用于有序的顺序表
int Binary_Search(SeqList L,ElemType key,int n){
int low=0,high=n-1,mid;
while(low<=high){
mid=(low+high)/2;
if(L.elem[mid]==key)
return mid;
else if(L.elem[mid]>key)
high=mid-1;
else low=mid+1;
}
return -1;
}
二叉排序树
BiTNode *BST_Search(BiTNode *t,ElemType key){
if(t==NULL)return NULL;
else{
if(t->key=key)return t;
else if(key < t->key)return BST_Search(t->t->lchild,key);
else return BST_Search(t->rchild,key);
}
}
B树、B+树
B+树有两种查找方式,一种从上往下,一种从根节点开始的依次查找
B-树⭐
查找
插入
删除
散列表:散列函数是关键
除留余数法 、数字分析法、平方取中法
处理冲突:开放定址法、拉链法⭐
模式匹配⭐
KMP
next值计算
nextval计算
排序
对大多数内部排序仅适用于顺序存储结构
插入排序
直接插入排序
折半插入排序
希尔排序
切割子表,对每个子表进行插入排序;通过对原始数组预处理使得数组大体有序,使得最终的插入排序变得简单
交换排序
冒泡排序
快速排序:双指针(最好的内部排序
内部排序中平均性能最优
选择排序
选择最小的放前面、不稳定,可能会导致相同元素的相对位置发生变化
堆排序
删除节点时,将最后一个元素放在顶部,再逐步下沉
大根堆:从第一个非叶子节点开始构造
二路归并排序
基数排序
MSD: 最高为优先;LSD:最低位优先
内部排序比较
外部排序*(新增考点
归并排序
多路平衡树与败者树
胜者树与败者树:败者树可以加快合并序列,减小归并路数k增大的影响
置换-选择排序
生成初始归并段
最佳归并树
组织初始归并段:哈夫曼树的思想,得到好的归并顺序,使得 I/o 次数最少
当初始归并段不足以构成严格k叉树时,需添加长度为0的虚段
设度为0的个数有n0个:
https://www.cnblogs.com/jev-0987/p/13322232.html
、、、、、、、、
操作系统
概述
开机后操作系统加载到 RAM 中
批处理交互性差
现代OS两个最基本特征:并发与共享,互为存在的条件。(虚拟、异步)
不属于多道程序设计的基本特征:顺序性(为单道程序设计特征,多道竞争)
内核态用户态
管态与目态
中断、异常
主程序调用子程序完全是软件处理过程;PSW:程序状态字寄存器
访管中断:需要特权指令引起的中断(自愿中断事件),本身不是特权指令,使得用户程序能够访问管态
计算机通过硬件、中断机制完成用户态到核心态的转换,不是中断处理程序
用户态下常见指令:命令解释程序;访管指令
核心态下常见指令:进程切换;置时钟指令;广义指令(系统调用指令);输入输出;关中断指令
单道处理程序:缺点:缺少交互性
进程管理
进程线程
-
动态性是进程最基本特征
-
全局变量是对同一进程而言,不同进程是不同变量,无法利用其交换数据
进程状态和进程控制
- block阻塞原语是自主行为,自我阻塞
- weak-up唤醒原语是被其他进程进行唤醒
- 只有内核级线程才是处理机分配单位,用户级线程不是
处理机调度
- 调度算法
进程同步与互斥
经典同步问题
死锁
内存管理
连续分配管理方式:单一、固定分区、动态分区分配(首次适应、最佳适应、最坏适应
非连续分配
虚拟页式存储管理:基于局部性原理
- 虚拟内存实际容量=min
- 页面置换算法:LRU,CLOCK
抖动:刚换出又要换入内存
文件管理
逻辑结构:顺序文件、索引文件、索引顺序文件
目录结构
文件共享与文件保护:硬链接(基于索引节点)(直接在索引节点上计数)、软链接(基于符号链)(给个链接地址到索引节点)
磁盘组织与管理:磁盘调度算法:SSTF最短寻道时间优先;SCAN当前移动方向上最近的;C-SCAN单向后返回初始段;
设备管理
IO控制:DMA在IO设备与内存之间开辟直接的数据通路
IO软件的层次结构
IO调度与缓冲区
设备分配与回收
、、、、、、、、、
计算机组成原理
2.1 概述(组成原理+OS)
- 计算机发展历程(选)
\1. 硬件发展
硬件发展
\2. 元件更新换代:摩尔定律18个月翻倍
\3. 按指令和数据划分:不存在多指令单数据流系统
\4. 发展趋势:“两极”分化
- 计算机系统层次结构(选)
\1. 寄存器参与运算
寄存器参与运算存储的内容
\2. 计算机工作过程
计算机工作过程
- 计算机主要性能指标(选,计算)
\1. 性能
(1)区别机器字长、指令字长PC/MAR、存储字长MDR、操作系统位数(寻址能力相关)
(2)数据通路带宽:外部总线宽度
(3)主存容量:存储单元个数2^n X 存储字长位
(4)运算速度:吞吐量和响应时间、主频和CPU时钟周期、CPI、
CPU执行时间 = 指令条数 X CPI X cpu时钟周期、
MIPS MFLOPS GFLOPS TFLOPS
\2. 专业术语
(1)系列机:具有基本相同的体系结构
(2)兼容
(3)软件可移植性
(4)固件:将程序固定在ROM中组成的部件为固件
(5)基准测试程序一般能够反映机器性能的好坏
- 操作系统基本概念(选)
\1. 操作系统定义
\2. 操作系统特征:并发、共享、虚拟、异步
\3. 操作系统的目标和功能
(1)作为计算机系统资源的管理者
(2)作为用户与计算机硬件系统接口
(3)作为扩充机器
- 操作系统发展和分类(选)
操作系统发展和分类
- 操作系统的运行环境(选)
\1. 运行机制:时钟管理、中断机制(PC、PSW相关)、原语、系统控制的数据结构及处理(PCB、FCB、队列、作业控制块等)
2. 中断和异常*
中断
注意:
(1)浮点数上溢属于中断,浮点数下溢不属于中断
(2)软中断是中断指令
(3)trap指令是发起系统调用,请求操作系统提供服务
- 操作系统体系结构(选)
一般内核提供的服务越少内核越稳定
大内核:执行效率高;不稳定
微内核:为用户提供服务时,至少进行4次上下文切换;易于维护;比较可靠
- 总结:关于组成原理和OS的概述主要以识记为主,408考察中基本考察选择题为主
2.2 数的表示和运算(难点)
- 数制与编码(选,计算)
\1. 不同进制数之间的转换:二进制、八进制、十六进制、十进制之间的转换,其中十进制转n进制采用初基取余法(整数部分)和乘基取整法(小数部分)
\2. 真值与机器数
\3. BCD码:其中有权码有8421码和2421码;无权码有余3码。BCD码以理解为主,属于非重点。
\4. 字符与编码:ASCII码、汉字编码GBxx
\5. 字符串存放:大端模式、小端模式
6. 检验码*:奇偶校验、CRC码、海明码;这些编码可以结合计算机网络中的检验码一起来学习,需要掌握这些检验码的检错和纠错的过程
- 定点数运算(选,计算,应)
\1. 原码、反码、补码、移码
\2. 定点数移位运算:算术移位(有符号)、逻辑移位(无符号)、循环移位(大循环、小循环);注意负数补码左移补0,右移补1 -- 高位补1低位补0
\3. 符号扩展:正数、负数(根据机器数不同而不同,补码用1填充整数用0填充小数;反码用1填充)
4. 定点数加减运算*:主要掌握定点数补码加减运算
(1)[x+y]补 = [x]补 + [y]补;
(2)[x-y]补 = [x]补 + [-y]补;
\5. 定点数乘除法运算:主要掌握补码乘除原理和特点,对于运算过程不必要过分纠结
(1)定点数补码乘法运算:掌握Booth算法,可以按照溢出来理解,当出现01表示正溢出需要+[x]补,出现10表示负溢出需要+[-x]补;
定点数补码乘法
Booth算法
定点数乘法运算总结
(2)定点数补码除法运算:余数和除数同号,上商"1";余数和除数异号,上商"0";最后一步商恒置"1"
定点数补码除法运算
定点数除法运算总结
\6. 定点数强制类型转换
定点数强制类型转换
- 浮点数表示与运算(选,计算,应)
\1. 浮点数
(1)浮点数格式
浮点数格式
(2)浮点数规格化
浮点数规格化
(3)浮点数表示范围:负上溢和正上溢属于中断;负下溢和正下溢不属于中断
浮点数表示范围
\2. 浮点数补码加减运算:掌握1对阶(右移) -- 2尾数(0.1或1.0类型) -- 3规格化 -- 4舍入 -- 5溢出判断的过程
3. 浮点数强制类型转换(选,应)
浮点数强制类型转换
\4. IEEE754标准
IEEE754标准格式
IEEE754具体格式位数
- 算术逻辑单元(选)
\1. 电路符号
\2. 加法器
(1)一位全加器
一位加法器
(2)串行加法器:依次相加进位
(3)并行加法器:串行进位、并行进位(串行进位、同时进位)
串行进位
并行进位
\3. 算术逻辑单元的功能和结构
(1)ALU核心是一个并行加法器,还可以执行“与”、“或”、“非”等逻辑运算
(2)74181芯片:4位并行加法器ALU芯片,组内并行(片内),组间串行(片间)
(3)74182芯片:先行进位芯片,可以辅助74181芯片实现组间并行
- 总结:数的表示和运算是一个比较难的章节,但是408中基本考察定点数补码加减、浮点数补码加减和IEEE754标准,对于源码加减能看懂就可以,而对于定点数乘除运算以了解为主,如果实在是看不下去就先选择跳过,等第二轮复习再好好理解一下即可。同时这一章是应用大题和选择题的高频出题章节,选择题主要以二进制计算为主不过其他基本概念也要掌握;对于应用大题会出综合大题,也就是考察的知识点比较全面,比如408真题中出过阅读一段求n!C语言代码回答问题考察了大端小端模式、IEEE754标准、浮点数补码运算、存储相关知识等。所以一定要把知识点都记下来,408没有捷径,尤其是组成原理和操作系统一定要面面俱到。
2.3 存储系统与内存管理
- 存储器的层次结构(选)
\1. 分类
存储器分类
\2. 性能(计算):存储容量、单位成本、存储速度(存取时间、存取周期、主存带宽)
存取时间与存取周期关系
\3. 多层存储系统:Cache - 主存层次 和 主存 - 辅存层次
3级存储结构
注意:cache效率 = 访问Cache时间 / 平均时间
- RAM(选、计算)
\1. 74138译码器
\2. SRAM:双稳态触发器
\3. DRAM:电容、地址复用(1/2)、存储电路为三管式和单管式、最多2ms刷新周期
4. DRAM刷新方式*:DRAM刷新行不需要信息输出
(1)集中刷新:有固定死区
(2)分散刷新:无死区
(3)异步刷新:前两种的结合,刷新时间间隔 = 2ms / 行数
\5. RAM的读写周期:以了解为主
(1)读:Tco为片选保持时间,we为高电平有效
(2)写:cs、we为低电平有效,Twc = Taw + Tw + Twr
\6. SRAM与DRAM比较
SRAM与DRAM比较
\7. ROM:位密度高、可靠性高,有PROM、EPROM等。
\8. 闪存:由MOS管组成。
- 主存储器与CPU连接(选、应) -- 应用题可能会考察画图
\1. 主存容量扩展
(1)为扩展法:cs片选信号连接所有芯片
(2)字扩展法:译码器
(3)字位同时扩展法
\2. 地址分配与片选
(1)线选法:n --> n
(2)译码片选法:n-->2^n
\3. 存储器与CPU连接:了解处理方式,其中注意地址线选低位,片选信号有效的前提是MREQ访存控制信号
- 双端口RAM和多模块存储器(选、计算)
\1. 双端口:不能同时写入数据,不能一边写入一边读出;解决方法就是置BUSY信号为0
2. 多模块存储器*(计算)
多模块存储器
低位交叉编址
- 高速缓冲存储器(选、计算、应)
\1. 局部性原理:时间局部性、空间局部性
\2. Cache效率 = Cache时间 / 平均时间
3.Cache和主存的映射方式
(1)直接映射
直接映射
(2)全相联映射
全相联映射
(3)组相联映射
组相联映射
4. Cache容量*(计算,非常重要) = 标记项阵列容量 + 存储容量
5. Cache替换算法:RAND、FIFO、LRU、LFU
6. Cache写策略
Cache写策略
- 内存管理基本原理和要求(选)
\1. 内存管理的功能:内存空间分配和回收、地址转换、内存空间扩充、存储保护
\2. 程序装入和连接
\3. 逻辑地址与物理地址转换:地址重定位
\4. 内存保护:上下限寄存器(CPU内) -- “比”、重定位寄存器(映射成物理地址) -- “加”
- 覆盖与交换(选)
\1. 覆盖:将用户空间分为固定区和覆盖区
\2. 交换(中级调度):换入和换出
\3. 覆盖和交换的区别:交换不同进程间;覆盖是同意程序或进程中
- 连续分配管理方式(选、应)
\1. 单一连续分配
\2. 固定分区分配
\3. 动态分区分配:使用紧凑和动态重定位寄存器完成。分配策略有 - FF(最好)、BF、WF、NF(循环双向链表)
3钟连续分配方式的比较
- 非连续分配管理方式(选、应)
\1. 基本分页存储管理方式(一维) —— 产生内部碎片
(1)地址结构:将逻辑分页地址 转为 物理地址
页表
分页地址变换过程
(2)访存:注意有TLB(相联存储器)的情况下只需要访存一次就可获取到物理地址下的数据或指令;而慢表情况下需要访存2次才能获取到数据或指令
(3)多级页表
2级页表
\2. 基本分段存储方式(二维) —— 产生外部碎片
(1)段内连续,段间不要求连续
(2)逻辑地址 -- 物理地址
段表
分段地址变换过程
(3)访存:用到了段表寄存器,需要2次访存
\3. 段页式管理方式(二维) —— 产生内部碎片
(1)逻辑地址
段页表
(2)系统为每个进程建立一个段表 + 多个页表,用到了段表寄存器
(3)访存:需要3次访存
- 虚拟内存的基本概念(选、应)
\1. 特征:多次性、对换性、虚拟性 —— 时间局部性
\2. 虚拟内存的实际容量 = min(内存和外村总容量, 操作系统寻址范围);
\3. 实现3种方式:包含两个过程 -- 请求调页 + 页面置换
(1)请求分页
(2)请求分段
(3)请求段页式
注意:这3种方式跟普通的分页、分段、段页式大同小异,最重要的区别是在虚拟内存种要考虑缺页中断和页面置换的过程。
4. 请求分页*
(1)页表项:加入了额外的信息标志位来处理调入、置换问题
虚拟页表
(2)缺页中断机构:属于内中断 == 异常
(3)地址变换机构(硬件):先检索快表,若快表未检索到就检索页表
请求分页地址变换过程
- 页面置换算法(选、应)
\1. OPT算法:无法实现
\2. FIFO算法:会造成Belady异常
\3. LRU算法:跟Cache置换策略中的LRU一样
\4. LFU算法:同Cache
\5. CLOCK算法:又称为最近不用,有一个使用位
\6. 改进CLOCK算法:有一位使用位、一位修改位,最多进行4轮
改进CLOCK4种情况
- 页面分配策略(选)
\1. 驻留集:给一个进程分配的物理页框的集合
驻留集分配策略
\2. 调入页面的时机:预调页策略(进程的首次调入)、请求调页策略(每次只调入一页)
\3. 从何处调入页面:从对换区调入适合连续分配方式(快);从文件区调入适合非连续分配(慢)
- 抖动(选)
1.特点:分配页面不够,导致频繁的页面置换行为 == 换页时间 > 执行时间
\2. 工作集:某时间间隔内进程要访问的页面集合
工作集
\2. 防抖策略:保证驻留集 > 工作集;可以通过暂停部分进程来保证驻留集 > 工作集
- 地址翻译(应)
\1. 步骤
(1)分析虚拟地址、物理地址、页面、TLB映射、Cache映射
(2)划分逻辑地址
(3)定出物理地址
(4)查Cache / 查内存
\2. 查找顺序
查找顺序
- 总结:通过以上的知识点可以看出这一部分的内容联系非常紧密,往往题目给出的图会包含内存管理和存储管理两部分,所以一定要把这两块分散的知识点放在一起来记,构成一个完整的逻辑链。
内存管理+存储系统综合图
2.4 进程管理
- 进程与线程(选)
\1. 进程实体:程序段、相关数据段、PCB
\2. 进程控制:掌握进程的创建、进程终止、进程阻塞Block和唤醒Wakeup、进程切换的过程和特点
\3. 进程通信:共享存储、消息传递(直接通信和间接通信)、管道通信
\4. 线程概念
(1)TCB
(2)线程是独立调度的基本单位,进程是拥有资源的基本单位
(3)并发性
(4)线程间可以直接读/写进程数据段来进行通信
5. 用户级线程和内核级线程*
3种线程特点
6. 多线程模型:掌握一对一模型、多对一模型、多对多模型的特点
- 处理机调度(选,应)
\1. 调度层次:作业调度、中级调度(内存调度) -- 调至外存等待、进程调度
2. 调度时机*(选择)
(1)不能进行进程调度与切换的3种情况
(2)能进行进程调度与切换的2种情况
3. 调度的基本准则:掌握CPU利用率、系统吞吐量、周转时间 = 作业完成时间 - 作业提交时间、平均带权周转时间、等待时间、响应时间的概念和求解
4. 调度算法*(选,应):掌握FCFS、SJF、优先级调度算法、高响应比优先调度算法(响应比Rp = (等待时间 + 服务时间)/服务时间)、时间片轮转、多级反馈队列
- 进程同步(选,应)
\1. 基本概念
(1)临界资源:进入区、临界区、退出区、剩余区
(2)同步:直接制约关系
(3)互斥:间接制约关系(空闲让进、忙则等待、有限等待、让权等待)
2. 实现临界区互斥方法
(1)软件实现*:单标志法(违背空闲让进)、双标志法先检查(违背忙则等待)、双标志法后检查(违背有限等待)、Peterson's算法(违背让权等待)
(2)硬件实现(不会被中断):中断屏蔽方法(关中断、临界区、开中断);硬件指令方法(TestAndSet指令、Swap指令)
\3. 信号量:整型信号量、记录型信号量、利用信号量实现同步、利用信号量实现互斥、利用信号量实现前驱关系
\4. 管程:封装的思想;一个进程只能通过调用管程内过程才能进入管程访问共享数据;每次仅允许一个进程再管程内执行某个内部过程
5. 经典同步问题*(选,应)
(1)简单生产者 - 消费者
(2)复杂生产者 - 消费者
(3)读者 - 写者(计数器count,读写公平)
(4)哲学家进餐问题(多个互斥资源):掌握3种实现方式
注意:对这4种经典同步问题的PV操作代码要熟悉
- 死锁(选,应)
\1. 区别死锁和饥饿
\2. 死锁产生的原因
(1)系统资源竞争
(2)进程推进顺序非法
(3)信号量适用不当
(4)死锁必要条件:互斥条件、不剥夺条件、请求并保持条件、循环等待条件
\3. 死锁处理策略
死锁处理策略
4. 银行家算法*:会求安全序列
5. 死锁检测和解除
(1)会画资源分配图,通过死锁定理(消边)来检测是否死锁
(2)通过资源剥夺法、撤销进程法、进程回退法(资源释放,非剥夺)来解除死锁
- 总结:进程管理这一章,最重要的知识点是进程调度算法、经典同步问题的PV代码、银行家算法。
2.5 指令系统
- 指令格式(选,应)
\1. 指令:是计算机运行的最小功能单位
指令格式
\2. 指令基本格式
(1)零地址
零地址
(2)一地址
一地址
(3)二地址
二地址
(4)三地址
三地址
(5)四地址
四地址
\3. 定长操作码指令:2^n条指令
\4. 扩展操作码指令格式:不允许短码是长码的前缀
扩展操作码指令格式
- 指令寻址方式(选,应)
\1. 指令寻址:寻找下一条将要执行的指令地址 -- 顺序寻址、跳跃寻址
\2. 数据寻址:寻找操作数的地址
数据寻址
3. 常见数据寻址方式*(选,应)
(1)隐含寻址:另一个操作数隐含在ACC中
隐含寻址
(2)立即寻址
立即寻址
(3)直接寻址
直接寻址
(4)间接寻址
间接寻址
(5)寄存器寻址
寄存器寻址
(6)寄存器间接寻址
寄存器间接寻址
(7)相对寻址
相对寻址
(8)基址寻址
基址寻址
(9)变址寻址
变址寻址
(10)堆栈寻址:分为硬堆栈(寄存器)和软堆栈(主存),隐含用SP
\4. 常见汇编指令:简单了解,能做到看到汇编指令可以知道大致的作用就可以
- CISC和RISC(选)
\1. CISC: Complex Instruction Set Computer
(1)指令长度不固定
(2)访存指令不受限
(3)大多数指令需要多个时钟周期
(4)采用微程序控制
\2. RISC: Reduced Instruction Set Computer
(1)尽量适用寄存器--寄存器操作指令
(2)指令长度固定
(3)只有Load/Store指令访存,其余指令操作都在寄存器进行
(4)流水线技术,大部分指令在一个时钟周期内完成
(5)硬布线控制为主,少用微程序控制
\3. CISC和RISC对比
CISC和RISC对比
- 总结:指令系统最重要的是数据寻址方式,一定要把这10种寻址方式理解清楚,能分析出访存次数和标志EA。这一章比较喜欢考察寻址过程的综合大题,所以一定要熟悉各种寄存器的作用并且掌握一定汇编指令的基本语法。其他知识点主要进是选择题。
2.6 中央处理系统(内容难)
- CPU的功能和基本结构
\1. CPU功能:指令控制、操作控制、时间控制、数据加工、中断处理
\2. CPU基本结构
(1)运算器:ALU、T、ACC、AX、BX、CX、DX、SP、PSW、SR、计数器
(2)控制器:PC、IR、ID、MDR、MAR、时序系统
- 指令执行过程
\1. 四个周期
指令周期
\2. 指令周期的数据流
(1)取指
取指
(2)间指
间指
(3)执行:OP(IR) --> CU
(4)中断
中断
\3. 指令执行方案
(1)单指令周期 --- 串行执行
(2)多指令周期 --- 串行执行
(3)流水线方案 --- 并行执行
- 数据通路的功能和基本结构
\1. 数据通路的功能:实现CPU内部的运算器与寄存器及寄存器之间的数据交换
\2. 基本结构
(1)CPU内部单总线方式:使用ALU + T
(2)CPU内部多总线方式
(3)专用数据通路方式:MUX、三态门
\3. 数据传送
(1)寄存器之间
寄存器之间
(2)主存与CPU之间
主存与CPU之间
(3)执行算术或逻辑运算
执行算术或逻辑运算
- 控制器的功能和工作原理
\1. 控制器的功能
(1)从主存中取出一条指令,并指出下一条指令在主存中的位置
(2)对指令进行译码测试,产生相应的操作控制信号
(3)指挥并控制CPU、主存、输入、输出设备之间的数据流动方向
\2. 硬布线控制器(由复杂的组合逻辑门电路和一些触发器构成)
(1)微操作命令分析:要把取指、间指、执行、中断过程弄清楚
(2)CPU控制方式:同步控制(统一时钟)、异步控制(应答方式)、联合控制(大部分同步、小部分异步)
(3)注意:硬布线控制单元设计的题目出出来一定是难题,但是幸运的没出过,所以如果看这个设计步骤比较困难可以直接跳过,之后如果有时间再来慢慢理解(选择性放弃)
\3. 微程序控制器
(1)微程序控制基本概念
(2)微程序控制器组成和工作过程
微程序控制器的基本结构
(3)微程序的编码方式(形成控制信号)
直接编码方式
字段直接编码方式
(4)微指令地址形成
微指令地址形成
(5)微指令格式
微指令格式
(6)设计步骤:了解
(7)动态和豪微程序设计:动态程序设计根据用户要求改变微程序;豪微程序设计第二级控制存储器是豪微存储器,直接控制硬件是豪微微指令
(8)硬布线和豪微控制器的比较
硬布线和豪微控制器的比较
- 指令流水线(选,计算)
\1. 定义(取指、分析、执行)
(1)顺序执行:T = 3nt
(2)一次重叠执行:T = (1+2n)t
(3)二次重叠执行:T = (2+n)t
3种流水线
\2. 特点
流水线特点
\3. 流水线的分类:了解
\4. 影响因素
流水线影响因素
5. 性能*(计算)
(1)吞吐率:TP = n / {(k + n - 1)t}
(2)加速比:S = kn / (k + n - 1)
(3)效率:E = kn / (k^2 + kn - k)
\6. 超标量流水线
(1)超标量流水线
超标量流水线
(2)超流水线
超流水线
(3)超长指令字:具有并行性
- 总结:中央处理系统的设计部分是最难,但是我们只需要知道基本概念就可以了,真题里面很少出考察设计的题目,基本都是在现有设计的情况下进行考察。
2.7 文件与磁盘管理
- 文件概念(选)
\1. 文件的结构
文件的结构
\2. 文件属性:所有文件的信息保存在目录结构中,目录结构保存在外存上。
目录条目包括文件名称及其唯一的标识符
文件属性
\3. 文件基本操作
文件的基本操作
\4. 文件的逻辑
文件的逻辑
\5. 目录结构
目录结构
6. 文件共享
文件共享
\7. 文件保护
文件保护
- 文件系统实现(选,计算,应)
\1. 文件系统层次结构
文件系统层次结构
\2. 目录实现
目录实现
\3. 文件分配方式
文件分配方式
4. 文件存储空间(计算,应)
文件存储空间管理
- 磁盘组织与管理(计算)
\1. 磁盘地址 = 柱面号 * 盘面号 * 扇区号(块号)
\2. 磁盘分类:固定头磁盘、活动头磁盘、固定盘磁盘、可换盘磁盘
3. 时间(计算)
(1)寻道时间Ts = m*n + s
(2)延迟时间Tr = 1/(2r)
(3)传输时间Tt = b/(rN)
(4)平均存取时间Ta = Ts + Tr + Tt
\4. 磁盘调度算法
磁盘调度算法
\5. 编号
编号
\6. 磁盘的管理
磁盘的管理
- 总结:文件与磁盘管理最重要的是文件存储空间的计算和磁盘存取时间的计算,其他的知识点需要多积累,这一章也是OS的大题出题点。
2.8 总线
- 总线概述(选)
\1. 基本概念
基本概念
\2. 总线分类:片内总线、系统总线(数据总线、地址总线、控制总线)、通信总线(外部总线)
\3. 系统总线结构
系统总线结构
4. 总线性能(计算)
总线性能
- 总线仲裁(2021年从408考纲移除)
\1. 仲裁方式:集中仲裁、分布仲裁
\2. 集中仲裁
集中仲裁
- 总线操作和定时(选)
\1. 总线4个阶段:申请分配阶段、寻址阶段、传输阶段、结束阶段
\2. 定时
定时
- 总线标准(选)
常见总线标准
- 总结:总线这一章以选择题为主来考察。
2.9 I/O系统
- I/O概念
\1. 组成
(1)I/O软件:驱动程序、用户程序、管理程序、升级补丁等
(2)I/O硬件:外部设备、设备控制器和接口、I/O总线等
\2. 实现
(1)I/O软件:采用I/O指令和通道指令实现CPU与I/O设备信息交换
(2)I/O硬件:通过设备控制器来控制I/O设备的具体工作;通过I/O接口与主机相连
\3. I/O指令
I/O指令
\4. I/O控制方式
I/O控制方式
- 外部设备
\1. 输入设备
\2. 输出设备
(1)VRAM带宽 = 分辨率 * 灰度级位数 * 帧频
(2)VRAM容量 = 分辨率 * 灰度级位数(2^n种不同亮度)
\3. 外存储器
外存储器
\4. 磁盘地址
磁盘地址
\5. 磁盘阵列
磁盘阵列
\6. 光盘存储器:CD-ROM、 CD-R、 CD-RW、 DVD-ROM
\7. 固态硬盘:由E2PEOM发展而来,由Flash Memory + 硬件 + 软件组成
- I/O接口
\1. 功能:设备选址、传送命令、传送数据+格式转换、反映I/O设备的工作状态
\2. 组成
(1)I/O端口:数据端口、状态编号、控制端口
(2)控制逻辑电路
\3. 编址方式
编址方式
- I/O方式
\1. 程序查询方式
\2. 程序中断方式
\3. DMA方式
程序查询、程序中断、DMA方式
注意:以上3种I/O方式需要重点理解
\4. 通道方式:是DMA方式的发展,是“弱鸡版的CPU”
\5. I/O处理机
\6. 区分通道、DMA和I/O处理机
区分
- I/O核心子系统
\1. I/O子系统的层次结构
I/O子系统的层次结构
\2. I/O核心子系统提供服务
I/O核心子系统提供服务
(1)单缓冲
单缓冲
(2)双缓冲
双缓冲
(3)缓冲池
缓冲池
\3. 设备分配与回收
(1)流程:LUT——>SDT——>DCT——>COCT<——>CHCT——>通道分配给进程
(2)方法:静态分配 - 无死锁,效率低;动态分配 - 效率高,有死锁
(3)算法:先请求先分配、优先级高者优先(一般采用动态分配)
(4)安全性
安全性
\4. SPOOLing技术(虚拟设备):独占式 --> 共享式
SPOOLing技术
- 总结:I/O系统中要重点掌握程序查询、程序中断(中断处理的过程)、DMA这3种I/O方式,其他的内容简单识记,这一章同样也是以选择题为主。
、、、、、、、、、、
计算机网络
1.基本概念(分层结构)
逻辑功能上可划分为:资源子网和通信子网;其中通信子网对应物理层、数据链路层、网络层
物理组成上:硬件、软件、协议
广域网、局域网区别:覆盖范围不同;协议和网络技术不同,广~采用点对点技术,局域网采用广播技术
-
MTU:最大传输单元,物理接口提供给上层最大传输数据大小
-
MSS:TCP给IP层最大分段的大小
2.物理层传输介质
双绞线:胶合目的:减少两根导线的电磁 干扰
IEEE802.3 规定采用同轴电缆作为介质,无中继情况下,介质最大传输长度不能超过500m。
3.ISO与TCP/IP模型区别
ISO:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
TCP/IP: 应用层、传输层、网际层、网络接口层
- 网际层仅支持无连接,网络层支持无连接和面向连接
- 传输层支持无连接,ISO传输层仅支持面向连接
4.曼彻斯特编码:跃变为1
4B/5B Encoding
目标:如何在解决基线漂移和时钟漂移的同时,使编码效率尽量高一些
思想:在比特流中插入额外的比特而打破一连串的 0 或 1 方法:用 5 个比特来编码 4 个比特的数据,然后再传给接收方
5 比特代码由以下方式选定:每个代码最多有一个前导 0,并且末尾最多有 2 个 0 这样在连续传送时,在传输过程中任何一段 5 比特代码,连续的 0 最多有 3 个. 最后使用 NRZI 编码进行传输,就解决了问题
4B/5B 编码的效率为 80%
5.奈奎斯特定理、香农定理:
有关传输速率上限的两个定理(注:带宽——频率范围)
Nyquist 定理: D(比特率) = 2 f(带宽) log2 N(电压种数) 无噪音情况下的最大传输速率
Shannon 定理: C(比特率) = B log2 (1 + S(信号) / N(噪声)) 引入信噪比 = 10 * lg (S/N)
- 码元传输速率 (波特率):每秒硬件产生的电信号变化次数;
- 信息传输速率 (比特率):每秒传送的二进制位数,也叫“位速率”
- 比特率 = 波特率 * [log2 电平数]
6.电路交换、报文交换、分组交换
7.物理层接口与物理层设备
(每块网卡出厂就有全球唯一的MAC地址)
路由器可以隔离广播域(网络层设备)
交换器、网桥(链路层设备),路由器可以隔离冲突域
集线器(Hub)、中继器都不能隔离 (中继器放大数字信号,放大器放大模拟信号)
网卡实现主要功能在物理层、数据链路层
数据链路层
8.HDLC的零比特填充法:5个0加个1
高级数据链路控制协议
9.纠错检错
循环冗余码:亦或运算
海明码:位数:2^r > k+r+1;
海明距离:检错:d+1; 纠错:2d+1;
10.流量控制、可靠传输与滑动窗口机制
滑动窗口协议:停等协议、
GBN:采用累积确认,发送端收到1、3、5确认说明前5帧都已经收到
发送窗口 <= 2^n-1;
SR: 通常发送窗口与接受窗口大小相同,为2^(n-1)
令牌桶
静态信道划分:不存在碰撞
动态随机访问:CSMA/CD、CSMA/CA
CD:载波侦听、碰撞检测;争议期:信号在最远两个端点往返传输时间
CA改成碰撞避免:
方式:预约信道,发送数据同时通知所需要的时间长度
ACK帧; RTS/CTS帧,解决隐蔽站问题
12.MAC帧⭐
主机与主机的交互只认识MAC帧编号,不认识IP
同一局域网中,两个设备具有相同的静态 MAC 地址时,在网络上的两个设备都不能正确通信
14.广域网、PPP协议、HDLC协议
HDLC: 面向比特位;包含信息帧、监督帧、无编号帧
PPP: 面向字节;仅支持全双工;提供差错检测不提供纠错功能;
采用7E作为边界符进行符号填充
网络层
16.网络层功能:异构互联、路由转发、拥塞控制
17.路由算法:
静态路由与动态路由、距离-向量路由算法、链路状态路由算法、层次路由
18.IP子网划分⭐、CIDR
原因:两级地址不够灵活,每个物理网络分配一个网络号会使得路由表变得太大。划分为{<网络号>,<子网号>,<主机号>}
主机号全为0是网络本身,如202.98.174.0;全为1是网络的广播地址,如202.98.174.255
CIDR:无分类域间路由选择;
19.Ipv4数据报头文、NAT
20.ARP、ICMP、DHCP⭐
ARP地址解析协议
21.IPV6
22.路由协议:RIP、OSPF、BGP
RIP: 基于距离向量算法的路由选择协议;30秒才广播一次路由信息;
OSPF: 基于链路状态路由算法的开放最短路径协议;网络层协议,直接IP传消息,RIP是应用层协议,用UDP传消息
传输层
23.传输层功能
24.UDP
25.TCP流量控制与拥塞控制
应用层
26.客户服务器模型、p2p模型
27.DNS系统
客户服务器模型,采用UDP无连接服务
根域名服务器 > 顶级域名服务器 (.com)> 权限域名服务器(xyz.com) > 本地域名服务器(abc.xyz.com);依次发送DNS查询请求
28.FTP
采用C/S工作方式;使用两个并行的TCP连接来传输文件:持续的控制连接 (端口21)+非持续的数据连接 (端口20)
29.电子邮件
SMTP采用TCP,端口25,简单邮件传输协议:TCP持续连接,要求7比特的ASCII码进行编码
POP3采用TCP,端口110;明文传输密码,不加密
MIME进行数据格式转换
30.WWW、HTTP
http采用TCP,但是其本身,是无连接的
http1.0中,每次处理都要建立一次TCP连接,80端口
- GET :从指定的资源请求数据。
- POST :向指定的资源提交要被处理的数据
- HEAD:与GET类似,但只返回页面首部,不反回请求对象,常用于调试