认真审题,必能上岸!
数据结构
1. 题干
- 看清楚题干问的是符合/不符合
- 看清楚题目要求数据存储在寄存器还是寄存器指明的内存地址
- 看清楚给定的图是不是连通图
- 看清所给的栈顶指针是不是初始状态
- 看清楚题目所问的指针,切勿搞混
- 主对角线以下元素均为0不代表主对角线以上元素全为1
- 千万注意数组从0开始
- 图论题要求给出边,按 (A,B) 的形式给出
2. 树
- 特别注意n-1层也有叶节点
- 树的高度就是有x层
- B树除根外每个节点最少需要 ⌈ n 2 ⌉ − 1 \left \lceil \frac{n}{2} \right \rceil-1 ⌈2n⌉−1个结点
3. 编程题
注意写清楚数据结构
4. 排序
- 增加虚拟归并段实际上就是构成m阶哈夫曼树
- 快排第二趟注意每个分区都有一个确定的结果
5. 图
- 注意区别简单路径和简单回路的差别
- 高阶邻接矩阵A[i,i]为计算值,不为0
- 无向图任何情况都连通指的是保证n个结点连通的最小边数
- 关键路径是从原点到汇点路径长度最长的路径
6. 复杂度计算
O ( m + n ) = O ( m a x ( m , n ) ) O(m+n)=O(max(m,n)) O(m+n)=O(max(m,n))
7. 栈与队列
循环队列队空时头尾指针相同
8. 查找
- 二分查找路径判断:先画出查找树,再判断是不是二叉排序树
- 二分查找画出判定树
- 二分查找不成功的情况为某层: ( h − 1 ) ∗ ( 个 数 ) (h-1)*(个数) (h−1)∗(个数)
- 散列表失败的情况按照 n − 1 n-1 n−1的位置进行查找,并且只查找 0 − − − n − 1 0---n-1 0−−−n−1个位置的情况
计算机组成原理
1. 题干及重要概念
- 注意按字节编址还是字
- TLB存取时间隐含了一次访存的时间
- 回答文字问题时注意题目所问是带符号还是不带符号
- 注意题目所给字长
- TB别当GB算
- 指令流水线数据相关只需回答被阻塞的指令,不需写出前一条;控制冒险只需写出控制指令。
- 注意PC增加的值为指令字长度
- 计算带宽注意审题,有时需要乘倍数
- 问时钟周期看清楚是指令还是执行阶段
- 程序题 注意访存次数:取数一次,存数一次
- 控制信号指PC中的内容,PC可自增,因此单周期处理器控制信号不变
- 单一的CPU指标不能说明机器的速度
- 对于描述操作、寻址、指令等过程,注意写清楚有关标志位的变化
2. 周期及计算相关
- 指令周期>机器周期>时钟周期
- 计算带宽记得除以给定周期的时钟周期个数
- 注意通信领域 k 、 m 、 g k、m、g k、m、g的单位与计算机领域的差别, b p s bps bps是通信领域的单位
- 总线时钟周期就是总线周期,不是时钟周期
3. 数值部分
- 精度由低到高:int->float->double
- 对阶可能导致尾数丢失精度
- 位数的基表示 log 2 n \log_2n log2n位不能同时为零
- 特别注意浮点数表示范围及最大最小值
- 海明码: n + k < = 2 k − 1 n+k<=2^k-1 n+k<=2k−1
- IEEE计算题丢失精度的情况要写明得分点:舍入
- IEEE浮点数中,阶码全1表示INF,阶码全0表示非规格数
- 尾数舍入时注意舍入规则,通常舍入1时尾数部分要加1(同四舍五入)
- 符号位进位与最高位进位相异表示溢出
4. 存储器与寄存器
- 只有PC与PSWR对程序员可见
- RAM分很多种,不同的RAM性质也不同,例如SRAM、DRAM
- 控制存储器:指ROM,存放微程序
- 缓冲存储器:Cache
-
有效位 脏位 替换控制位 标记 Cache行号 数据 1 1 1 高位 行数 低位 - Cache容量计算题目给定的行空间均为数据部分,其他部分另算
- 计算Cache结构时特别注意内存块大小与页大小可能不同,因此页内空间发生改变
- n路组相邻映射指的是每组内有n个块
- ROM系存储器读写速度一定有差异
- Cache映射注意内存块从0号开始
- 虚拟存储只能基于非连续分配技术
- 多体存储器只需考虑最后一次存储的时长
- Cache命中时的存取时间一般为一个CPI
- 2013年43题第四问王道答案中计算Cache命中的时间没有按95%计算,存疑
- PC跳转的偏移量有符号
- PC可跳转的最大指令个数不用考虑自动加一机制
- 形式地址需要运算,特别注意负数的情况
- 两数相加(特别是补码形式的偏移量)注意符号扩展
- 寄存器均为补码形式,不需要多此一举的真值转换
- Cache采用块编址,但内存通常按字节编号
- 开机后操作系统被加载到RAM
- DAM地址线复用,分两次传送地址
- Cache实际存储容量为标记阵列+数据,标记阵列分为有效位、标记字段、(一致性维护位)、(替换控制位)
- 大小端存储以字节为单位
- 直写法与写回法的应用场景分层次,例如Cache-主存层次采用直写法(既写Cache又写主存),主存-外存层次采用回写法
- 计算PC时注意指令操作码长度
- 磁盘存储器的最小读写单位是扇区
5. 磁盘
- 扇区耗时=寻扇区时间+读扇区时间
- 注意调度策略与存储管理策略的区别
6. 微程序
- 微程序的入口地址是由机器指令的操作码字段给出的
- 微指令不存在操作码和地址码字段,只存在控制字段、判别测试字段和下地址字段
7. 中断
- 注意中断的流程以及每一步的发生位置
- CPU通过I/O指令控制通道,而不是中断
- 中断I/O方式下的数据传送是通过软件完成的
- 外中断中通用寄存器由操作系统保存,PC由中断隐指令保存
- 中断隐指令属于硬件,中断服务程序属于操作系统内核
8. 指令相关
- 考虑转移条件,分析标志的值
- 相对寻址:形式地址跟内存大小有关
- 指令流水线不包括控制部件
9. 总线
- CPU到I/O接口有三条线传输数据
- I/O接口到CPU只有一条数据线传输数据
- 周期挪用是一种单字形式的工作模式,即以单字占用总线
操作系统
1. 题干与计算
- 询问表达式指的是机器的表达式,不是数学表达式(虽然也给分)
- 除法可用右移表示,取余可用左移表示
- 工作集不用在过程中去重,只需对结果去重
- 分清变量的作用域
2. 文件相关
- 复制:符号链接直接复制计数值,硬链接先加一再复制
- 删除:符号链接直接删除,硬链接先减一再判断是否为0
- 注意FAT、超级快、文件控制信息的区别
- 对文件的访问通常由用户访问权限与文件属性共同限制
- 存取控制矩阵方法通常用于多个用户的存取权限保护
- read不需要文件名,使用open返回的文件描述符
- 链式存储的文件最大长度需要减去指针所占空间
- 用户权限是一个矩阵表,行为用户,列为权限
3. 段表、页表
- 寻地址时间与访存时间有区别,后者比前者多一次访存
- 缺页中断后,系统调页,然后重新寻址(重复TLB、内存的流程)
- 页式管理系统对用户、程序员透明
- 页式管理系统不支持静态重定位,要求动态重定位
- 简单页/段指的是内存中的页,虚拟页/段指的是磁盘中的页
- 数组题切记考虑分页情况,切勿按连续存储直接计算,容易算错
- 页表一定要注意逻辑地址跟物理地址的差别,页表不像Cache可以直接拼接物理地址,需要进行计算
- 分为三个组成部分:①未缺页、②缺页未修改、③缺页修改
- 缺页中断执行后会再访问一次TLB
4. 信号量
计算等待进程只需考虑末状态的信号量,不需讨论之前的PV状态
5. 进程状态
等待状态就是阻塞状态,不是就绪状态
6. 存储管理
- 注意区分紧凑、抖动的区别
- 只有FIFO会导致Belady异常
- 磁盘通常以簇为单位分配存储空间
- 低级格式化:为扇区采用特殊的数据结构,包括校验码;操作系统将低级格式化数据结构记录分为两步,第一步分区,第二步逻辑格式化。逻辑格式化:数据结构初始化、建立空目录
7. IO软件分层
用户层、与设备无关的软件层、设备驱动程序、中断处理程序
8. 程序相关
- 预处理器:修改源程序
- 编译器:生成汇编程序
- 汇编器:生成可重定位的目标程序
- 链接器:生成可执行目标程序(即开始形成逻辑地址)
- 装入:此阶段已完成逻辑地址的变换,形成物理地址
- 编译是一次性生成目标程序,解释是一步一步翻译
- 系统调用过程:传参->陷入->执行->返回
- 自陷是一种内部异常
计算机网络
1. 题干
- 注意协议中所给字段的位数
- 有空看一下OSI参考模型
- 交换机的题别忽略转发表,眼瞎就去治
- “传输”二字是专有名词,别理解成传播
- 问源/目的IP地址或MAC地址用点分十进制的形式写出,不要写全0或全1
2. 常见概念
- TTL:生存时间值
- 零比特填充为每5个1填充一个0
- NRZ:简单串行编码技术,即高1低0
- NRZI:电瓶一次翻转的编码技术,相同则0翻转则1
- 域名服务器:本地、根、顶级、权限共四个
- 给出发送/接受序号字段时,务必考虑:
2 n ≥ 发 送 窗 口 + 接 收 窗 口 2^n\ge发送窗口+接收窗口 2n≥发送窗口+接收窗口
3. 信道相关
- 切记使用奈氏准则和香农定理
奈 氏 准 则 : v = 2 W log 2 V , ( V 表 示 码 元 个 数 ) 奈氏准则:v=2W\log_2V,(V表示码元个数) 奈氏准则:v=2Wlog2V,(V表示码元个数)
香 农 定 理 : v = W log 2 ( 1 + S / N ) 香农定理:v=W\log_2{(1+S/N)} 香农定理:v=Wlog2(1+S/N)
D B = 10 log 10 S / N DB=10\log_{10}S/N DB=10log10S/N - 信道带宽为发送数据的速率
- 信道利用率:
发 送 时 间 / ( 发 送 时 间 + R T T ) 发送时间/(发送时间+RTT) 发送时间/(发送时间+RTT) - 最大信道利用率:
发 送 窗 口 最 大 值 ∗ 发 送 一 帧 的 时 间 / ( 发 送 时 间 + 发 送 a c k 时 间 + R T T ) 发送窗口最大值*发送一帧的时间/(发送时间+发送ack时间+RTT) 发送窗口最大值∗发送一帧的时间/(发送时间+发送ack时间+RTT) - 波特率 B B B: C = B log 2 N C=B\log_2N C=Blog2N,特别注意与求解数据传输速率题目的差别
4. PDU地址
看具体是哪一层的设备,然后讨论目的地址形式
5. TCP、IP、UDP
- 子网只需考虑子网的部分,主机号部分写0
- 题目问路由就写出路由表条目
- IP分组传输过程中总长度(分片)和首部校验和(每一跳改变)会改变
- 计算已收到TCP数据长度应考虑seq、ack
- 判断TCP建立、释放状态应考虑ACK、SYW、ack、seq
- IP有效载荷为46B,总长度少于此长度需填充
- 路由聚合只需考虑子网的IP,不必考虑路由器的IP
- UDP具有复用、分用服务
- SYN=1的报文段不能携带数据,但要消耗一个序号
- 拥塞窗口是根据接收到的确认段递增的,每接受一个确认段拥塞窗口加一,因此慢开始算法宏观上表现为2的指数级递增
- 发送窗口=min(接收窗口,拥塞窗口)
- 0.0.0.0可以表示本网络上的本主机
- 子网不用考虑全0或全1的情况
- 分配IP地址时注意有没有给路由器已经分配了的地址
- 分片时注意有效载荷长度为8B的倍数
- 注意变长子网划分方法
6. HTTP
DNS查询需要一次RTT,HTTP报文请求也需要一次HTTP
7. 以太网
- CSMA/CA增加了ACK特性
- 以太网的MAC协议不等同于数据链路层的协议,是不可靠的
- 以太网目的地址、源地址均为6B
- 以太网直通交换只需要检查目的地址,因此转发延迟为发送6B的时间
- 主机发送数据包首先查看目的网络与自己是不是在同一网段,若是则广播,若不是则发给默认网关
- CSMA/CD用于有线网、CSMA/CA用于无线网
- 以太网最短帧长64B
- xBase-T表示xMbps
8. NAT、RIP
- 私有地址转换需要用到NAT转换IP
- RIP协议注意相邻所有路由器的可达信息
9. ARP
- 寻找MAC地址时目的MAC地址为全1
10. 帧序号
- 发送方收到接收方确认帧这段时间内最大能发送的帧数的位数
- 考虑帧序号所用时间包括传输时延
- 帧序号大小: 2 k ≥ n + 1 2^k\ge n+1 2k≥n+1
易忘知识点
计算机组成原理
- 流水线吞吐率、加速比、效率(P245)
- 显示存储器容量、带宽(P286)
操作系统
- 进程调度的各类时间(P57)
- 高响应比优先调度算法响应比(P59)
- 读者写者问题、哲学家进餐问题(P91)
- 死锁的四个条件、四种解决方案(P130)
- 链接和装入(P158)
- 文件系统的层次结构(P251)
- I/O子系统的层次结构(P294)
- 设备分配的数据结构(P308)
计算机网络
- 采样定理(P35)
- 组播及IGMP(P194)
- 移动IP(P197)
数据结构
- 十字链表、邻接多重表(P218)
- m阶B树结点个数与高度的关系:
2 ⌈ m 2 ⌉ h − 1 ≤ n ≤ m h − 1 2\left \lceil \frac{m}{2} \right \rceil ^{h-1} \le n \le m^{h-1} 2⌈2m⌉h−1≤n≤mh−1