我总结的这些都是每年的考点,必须要记下来的。
1. 计算机系统基础
1.1 码
- 符号位0表示正数,符号位1表示负数。
- 补码:简化运算部件的设计,最适合进行数字加减运算。
- 移码:与前几种不同,1表示+,0表示-。用于浮点运算和表示浮点数阶码。
数据表示如下:
1.2 浮点数
- 定点表示法中小数点不占存储位。
- 表示方法为N=M×R^E,其中E称为阶码,M称为尾数。
数值范围由阶码E确定,数值精度由尾数M确定 - 运算时候,小阶向大阶看齐,小阶增加几位,尾数右移几位。
- 定点小数表示中,只有补码能表示 -1。
- 当浮点数的尾数用补码表示时,规格化数的判断标准是:数符(符号位)与尾数小数点后第一位数值必须相异。而阶码与数符和规格化与否无关。
1.3 校验码
- 循环冗余校验码:模二运算。
- 海明码:可校验可纠错。
- 海明码计算:2^k>=n+k+1(n为数据位,k为校验位)
1.4 计算机硬件组成
- 输入设备和输出设备合称为外部设备(外设)。
- 中央处理单元CPU:由运算器、控制器、寄存器组和内部总线组成。
- CPU的主要功能:实现程序控制、操作控制、时间控制、数据处理功能。
- 单核 CPU 和多核CPU都支持多任务操作系统。
1.5 运算器
算术逻辑单元(ALU):负责处理数据,实现对数据的算数运算和逻辑运算。
累加寄存器(AC):运算器执行运算时,暂存计算结果数据。
数据缓冲寄存器(DR):对内存储器进行读写操作时,数据中转站(注意和AC区别)。
1.6 控制器
程序计数器(PC):存储下一条要执行指令的地址。
指令寄存器(IR):用来存放当前正在执行的指令。
地址寄存器(AR):用来保存当前CPU所访问的内存单元的地址。
注意:
- 程序员可见:通用寄存器(ALU、AC、DR、PSW)、程序计数器(PC)
- 程序员不可见:指令寄存器(IR)、存储器数据寄存器(MDR)、存储器地址寄存器(MAR)、ID、地址寄存器、时序部件。
1.7 Cache(高速缓存)
- 内容是主存内存的副本拷贝,对于程序员来说是透明的。
- 缓和CPU与主存之间的速度矛盾。
- 地址映射:Cache与主存的映射有专门硬件自动实现。
- 映射分为:全相联映射(空间利用充分,命中率高,查找慢);直接映射(速度最快,空间利用不充分,命中率低);组相联映射。
- Cache命中率:随着Cache容量增加,命中率也会增加,但效率降低了。
- 平均存取时间=h×T+(1-h)×t
- 访问效率=Cache存取时间/平均存取时间。
1.8 存储器的分类
- 分类:
DRAM(动态随机存储器):是主存的主要构成。特点是:只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新一次,如果存储单元没有被刷新,存储的信息就会丢失。
SRAM(静态随机存储器):用来作为高速缓存存储器(Cache)。特点是:不需要刷新电路即能保存它内部存储的数据。因此SRAM具有较高的性能,但是集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,且功耗较大。 - 虚拟存储器:由主存和辅存构成。
- 几种常见存储器
- 随机存储器:可以按地址访问存储器的任一单元。
- 顺序存储器:访问时按顺序查找目标地址,它访问数据所需时间与数据存储位置相关。
- 直接存储器:按照数据块所在位置访问。
- 相联存储器:按内容访问的存储器。
- 磁盘是一种直接存储器。
1.9 输入/输出技术
CPU与外设之间的数据传送方式
在计算机中,I/O系统可以有5种不同的工作方式,分别是程序控制方式、程序中断方式、DMA工作方式、通道方式、I/O处理机。
-
程序控制方式
分为无条件查询和程序查询方式。- 无条件传送方式
I/O端口总是准备好接受主机的输出数据,或是总是准备好向主机输入数据,而cpu在需要时,随时直接利用I/O指令访问相应的I/O端口,实现与外设的数据交换。优点是软、硬件结构简单,缺点是对时序要求高,只适用于简单的I/O控制。 - 程序查询方式(需要CPU,顺序工作)
程序查询方式也称为程序轮询方式,该方式采用用户程序直接控制主机与外部设备之间输入/输出操作。CPU必须不停地循环测试I/O设备的状态端口,当发现设备处于准备好(Ready)状态时,CPU就可以与I/O设备进行数据存取操作。这种方式下的CPU与I/O设备是串行工作的。
- 无条件传送方式
-
中断方式(需要CPU,并行工作)
当I/O接口准备好就接收数据或向CPU传送数据就会发出中断信号通知CPU。(CPU无需等待,提高利用率)- 为了方便实现多级中断镶套,使用堆栈来保护最有效。
- 中断向量:提供中断服务程序的入口地址。
- 中断响应时间:发出中断请求开始到进入中断服务程序。
- 保存现场:返回来执行源程序。
-
DMA方式(工作不需要CPU)
DMA方式(直接主存存取方式),其思想是:允许主存储器和I/O设备之间通过“DMA控制器(DMAC)”直接进行批量数据交换,除了在数据传输开始和结束时,整个过程无须CPU的干预,并行工作,完全由硬件完成交换数据。 -
通道控制方式
在一定的硬件基础上利用软件手段实现对I/O的控制和传送,更多地免去了cpu的接入,使主机和外设并行工作程度更高。 -
I/O处理机
指专门负责输入/输出的处理机。可以有独立的存储器、运算部件和指令控制部件。
DMA
DMA控制器在需要的时候代替CPU作为总线主设备,在不受CPU干预的情况下,控制I/O设备与系统主存之间的直接数据传输。DMA操作占用的资源是系统总线,CPU是在一个总线周期结束时响应DMA请求的。
零碎知识点
- 计算机类与鼠标类的关系是聚合关系。
- CPU利用较高的主频、高速缓存(Cache)和通用函数库等技术来执行指令 。
- GPU使用SIMD/SIMT架构,MISD纯粹是一种理论模型,并没有实际意义
1.10 总线结构
- 总线结构:一组能为多个部件分时共享的公共信息传送线路。
- 三总线结构:数据总线、地址总线、控制总线。
- 时钟周期=1/时钟频率。
- 最短传输周期=n×时钟周期。
- 总线最大数据传输率(总线带宽)=(总线宽度/8)/最短传输周期
- CPU查询数据: CPU在内存里寻找数据时,先通过地址线找到地址,再通过数据线将数据取出来。
- 计算机在执行指令的过程中,需要直接寻址,首先要将内存单元所在地址的值送到地址总线上。
- 指令周期>CPU周期>时钟周期(计算机操作的最小单元时间)。
1.11 寻址方式
- 立即寻址方式:操作数就包含在指令中(直接给出操作数本身)
- 直接寻址方式:操作数存放在内存单元中(直接给出操作数所在内存的地址)
- 寄存器寻址方式:操作数存放在某一寄存器中(指令中给出存放操作数的寄存器地址)
- 间接寻址方式:指令中给出的是操作数地址的地址。
- 寄存器间接寻址:操作是存放在内存单元中,操作数所在存储单元的地址在某一寄存器中。
- 隐含寻址:不是明显的给出操作数地址,而是在指令中隐含着地址。
- 获取操作数的速度:立即寻址>寄存器寻址>直接寻址>寄存器间接寻址>间接寻址。
Flynn分类
Flynn的分类依据是指令流和数据流。
1.12 CISC和RISC
1.13 指令的流水线处理
- 流水周期(△t)为执行时间最长的一段(△t)
- 流水执行时间
理论:1条指令的执行时间+(指令数-1)×流水周期(公式=(t1+t2+t3…+tn)+(n-1)×△t)
实践:(公式=(k+n-1)×△t,k为工序数) - 流水吞吐率(tp)=指令条数 / 指令流水时间
- 流水最大吞吐率=1 / 流水时间
- 流水加速比=不使用流水执行时间 / 使用流水线的执行时间
2. 操作系统
2.1 线程与进程
- 进程状态
①阻塞:进程因发生某件事而暂停执行
②就绪:进程具备运行条件,但尚未运行
③运行:进程在处理机上运行
④创建:为新进程创建PCB,并填写必要信息,并把进程插入到就绪队列中
⑤终止:资源释放回收。
- 线程:进程的轻型实体,是一系列指令的集合。(提高OS的并发性)(OS运算调度的最小单位)。
- 共享进程资源:线程基本不拥有自己的资源,只拥有运行中必不可少的资源(如:PC、寄存器、栈,但可共享进程全部资源)。
- 调度方式:
可剥夺式调度:立即暂停当前进程,分配处理机给高优先级进程(原则:优先权、短进程优先、时间片原则)
不可剥夺式调度:必须等待进程运行完方可释放占用CPU(缺点:适用于批处理系统,不适用分时/实时系统)。 - 临界资源不能采用时间片轮转分配算法。
2.2 分区存储管理
- 固定分区:(一种静态分区方式)在系统生成时已将主存划分成若干个分区,每个分区的大小可不等;(OS通过主存分配情况表管理主存)。
- 可变分区:(一种动态分区方式)存储空间的划分是在作业装入时进行的,故分区的个数可变,分区的大小刚好等于作业的大小。(OS通过已分配表、未分配表管理主存)。
2.3 分页存储管理
- 高级程序语言使用逻辑地址,运行状态内存使用物理地址。
- 地址结构:(组成:页号+页内地址(页内偏移量)=偏移量)。
- 快表是将页表存于Cache中;慢表是将页表存于内存上。
2.4 虚拟存储管理
- 虚拟存储器的实现(特性:离散性、多次性、对换性、虚拟性)。
- 虚拟存储器利用了局部性原理。
- 在虚拟存储器中,页面如果很小,虚拟存储器中包含的页面个数就会过多,使得页表的体积过大,页表本身占据的存储空间过大,操作速度将变慢。
- 当页面很大时,虚拟存储器中的页面个数会变少,另外,主存的容量比虚拟存储器的容量更少,主存中的页面个数就会更少,缺页率自然很大,就会不断的调入/调出页面,降低操作速度。
- 段式虚拟存储器是按照程序的逻辑性来设计的,具有易于实现程序的编译、管理和保护,也便于多到程序共享的优点。
2.5 设备管理
- I/O设备管理软件一般分为4层(由下至上):中断处理程序、设备驱动程序、设备无关系统软件、用户级软件。
- Spooling技术: 缓和CPU高速性与I/O设备低速性的矛盾。
2.6 嵌入式操作系统
嵌入式系统:自底向上由三个主要环节组成(片级初始化—板级初始化—系统级初始化)
片级初始化:完成嵌入式微机处理器的初始化
板级初始化:完成嵌入式微机处理器以外的其他硬件设备初始化
系统级初始化:以软件初始化为主,主要进行操作系统的初始化。
2.7 零碎知识点
- 在UNIX操作系统中,把输入/输出设备看作是特殊文件。在UNIX系统中包括两类设备:块设备和字符设备。
- 传统机器级的机器语言是该机的指令集,程序员用机器指令编写的程序可以由微程序进行解释。
3. 数据库技术
3.1 数据库设计
分为四个阶段:
- 用户需求分析:收集用户需求,确定系统边界。(产物包括:数据流图、数据字典、需求说明)。
- 概念设计:设计E-R图(实体-属性图)。(存在属性冲突、命名冲突、结构冲突)。
- 逻辑设计:将E-R转换成关系模式。(需要考虑:关系规范化,确定完整性约束)。
- 物理设计:根据生成的表等概念,生成物理数据库。
3.2 三级模式结构
三级模式分为:
- 外模式(也称用户模式或子模式):对应→视图
- 概念模式(也称模式):对应→基本表
- 内模式(也称存储模式):对应→存储文件。(索引→物理层(对应内模式)看到索引就选物理层/内模式即可)。
两级映射分为:
- 模式/内模式映像:实现概念模式到内模式之间的相互转换(物理独立性)
- 外模式/模式映像:实现了外模式到概念模式之间的相互转换(逻辑独立性)(创建视图构建的是外模式和外模式/模式之间的映射)。
3.3 数据模型三要素
- 数据结构:是所研究的对象类型的集合(系统静态特性)。
- 数据操作:是对数据库中各种对象(型)的实例(值)允许执行的操作集合(系统动态特性)。
- 数据的约束条件:是一组完整性规则的集合。
3.4 关系代数运算
- 自然连接:特殊的等值连接,相同属性对应的值必须相同才能进行连接。(去除重复列)
3.5 数据库SQL语句
- 索引的创建和删除(采用三级模式的数据库系统中如果对一个表创建聚簇索引,那么改变的是数据库的内模式)。
- 视图的创建删除和修改(WITH CHECK OPTION )。
- 视图是从一个表或多个表或视图中导出的,是一个虚拟表。
- WITH CHECK OPTION 表示对 UPDATE、INSERT、DELETE 操作时要保证更新、插入或删除的行满足视图定义中的谓词条件。
- 授予、撤销权限的操作——[WITH GRANT OPTION]。
3.6 函数依赖
- 部分函数依赖:A可确定C, (A,B)也可以确定C,(A,B)中的一部分(即A)可以确定C,称为部分函数依赖。
- 完全函数依赖:在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’不能决定Y,则称Y对X完全函数依赖。
- 传递函数依赖:当A和B不等价时, A可确定B,B可确定C,则A可确定C,是传递函数依赖。
3.7 函数依赖公理
- 传递律:如果X→Y且Y→Z,则X→Z成立。
- 合并规则:{X→Y,X→Z}X → YZ 。
- 分解规则:如果X→Y且Z⊆Y,则X→Z成立。
- 伪传递规则:{X→Y,WY→Z}XW→Z 。
3.8 范式
-
第一范式(1NF)
存在数据冗余、修改异常、插入异常、删除异常(部分函数依赖造成的)。
进行模式分解,消除非主属性的部分函数依赖的问题,就会变成第二范式。 -
第二范式(2NF)
虽然不存在部分函数依赖,但仍存在传递依赖。
进行模式分解,消除非主属性的传递依赖的问题,就会变成第三范式。 -
第三范式(3NF)
仍存在主属性的部分函数依赖和传递依赖。
进行模式分解,消除主属性的传递依赖的问题,就会变成BCNF。 -
巴克斯范式(BCNF)
完全消除了插入、修改、删除的异常。
BCNF不是第四范式 。
3.9 模式分解
- 分解具有无损连接性【如果R的分解为p={R1,R2},R1∩R2->(R1-R2)或者R1∩R2->(R2-R1)】。
- 分解要保持函数依赖。
- 分解既要无损连接性,又要保持函数依赖。
3.10 事务管理与并发控制
- 排它锁(X):若事务T对A加上X锁,则只允许T读取和修改A,其他事务都不能再对A加任何类型的锁,直达T释放A上的锁。
- 共享锁(S):若事务T对A加上S锁,则只允许T读取A,但不能修改A,其他事务只能在对A加S锁,直到T释放A上的S锁。
3.11 数据库的备份与恢复
日志文件:进入事务处理先写入日志文件,当系统正常运行时,将缓冲区内容写入数据文件。
3.12 关系模式
- 由数据结构、关系操作集合、关系完整性约束三部分组成。
- 用二维表结构表示实体。
3.13 透明性
- 分片透明性:用户或应用程序不需要知道逻辑上访问的表具体是如何分块存储的。
- 位置透明性:应用程序不关心数据存储物理位置的改变。
- 逻辑透明性:用户或应用程序无需知道局部使用的是哪种数据模型。
- 复制透明性:用户或应用程序不关心复制的数据从何而来。
3.14 分布数据库
- 共线性:存储在不同节点的数据共享。
- 自治性:每个结点对本地数据能独立管理。
- 可用性:某一场地故障时,可以用其他场地副本从而不至于瘫痪。
- 分布性:数据在不同场地上的存储。
3.15 存储过程
存储过程:供第三方开发人员调用进行数据更新,从而保证数据库的关系模式不会被第三方获取(数据安全)。
4. 计算机网络
1. OSI七层协议参考模型
记忆谐音:物联网传话试用。
2. TCP/IP协议簇
基于TCP(可靠传输):POP3(邮件接收110),FTP(传输20,控制21),HTTP,Telnet(远程登录),SMTP(邮件发送25)。
基于UDP(不可靠传输):DHCP(动态主机配置),TFTP,SNMP,DNS(域名解析53)。
物理层(比特):中继器,集线器。
数据链路层(帧):网桥,交换机。
网络层(IP数据报):路由器。
应用层(报文段):网关。
3. URL格式
域名 = 主机名.组名.最高层域名(https://www.csdn.net)
4. 冲突域和广播域
一个VLAN就是一个广播域,VLAN之间的通信是通过第3层的路由器来完成的。
路由器可以阻断广播域和冲突域,交换机只能阻断冲突域。
5. 零碎知识点
- 地址解析
- DNS服务配置中的A记录用于解析主机到IPV4地址;
- MX记录指明邮件交换服务器的地址;
- CNAME记录指明域名的别名;
- AAAA记录将主机解析到IPV6地址。
5. 信息安全和网络安全
5.1 安全协议的用途
5.2 防火墙技术
作用:包过滤,代理网关,状态监测,入侵检测。
在出口防火墙设置ACL防止外部未授权用户登录。
5.3 网络攻击
- 为了防止电子邮件中的恶意代码,应该用纯文本方式阅读电子邮件。
5.4 加密技术
非对称加密(针对于接收方):公钥(接收方)加密,私钥(接收方用自己的)解密。
数字签名(针对于发送方):私钥(发送方)签名,公钥(发送方的)验证。
对称加密算法:DES,AES,RC-5、RC-4,IDEA,(注意:MD5和SHA-1是哈希算法,不是加密算法)。
非对称加密算法:RSA,ECC,DSA。
数字签名算法:RSA、DSA。
5.5 信息的安全特性
- 数据的机密性(保密性):是指数据在传输过程中不能被非授权者偷看;
- 数据的完整性:是指数据在传输过程中不能被非法篡改;
- 数据的真实性(不可抵赖性):是指信息的发送者身份的确认或系统中有关主体的身份确认,这样可以保证信息的可信度;
- 可用性:指的是发送者和接受者双方的通信方式正常。
5.6 零碎知识点
- 计算机获取模拟视频信息的过程中首先要进行A/D变换 。视频数字化的目的是将模拟信号经A/D转换和彩色空间变换等过程,转换成计算机可以显示和处理的数字信号。
- MP3就是使用MPEG-1 Audio Layer 3的声音编码。
- 在YUV彩色空间中对YUV分量进行数字化,对应的数字化位数通常采用Y:U:V=8:4:4 。
- 异地数据备份可以保证数据的可靠性,数据加密只能增强数据的安全性。
- DMZ是指非军事化区,非军事化区一般用来放置提供公共网络服务的设备。比如Web服务器。注意的是,网络管理服务器和入侵检测服务器是企业内网的设备。
- SQL注入是常见的web攻击,防御手段:对用户输入做关键字过滤、Web应用防火墙、定期扫描系统漏洞并及时修复。注意的是,不包含部署Web应用防火墙进行防护。
- 典型的安全测试方法:安全性功能验证、漏洞扫描、模拟攻击试验以及网络侦听等。注意的是,通信加密是安全防护手段,不属于安全性测试方法。