计算机系统知识
计算机硬件组成
计算机的硬件基本系统由五部分组成:运算器、控制器、存储器、输入设备、输出设备。
中央处理单元 (cpu)
组成:运算器、控制器、寄存器组和内部总线。
功能:实现程序控制、操作控制、时间控制、数据处理等功能
运算器组成
算术逻辑单元ALU:实现对数据的算术和逻辑运算
累加寄存器AC:运算结果或源操作数的存放区
数据缓冲寄存器DR:暂时存放内存的指令或数据
状态条件寄存器PSW:保存指令运行结果的条件码内容,如溢出标志等
运算器功能
执行所有的算术运算,如加减乘除等,执行所有的逻辑运算并进行逻辑测试,如与、或、非、比较等。
控制器组成
指令寄存器IR:暂存CPU执行指令
程序计数器PC:存放指令执行地址
地址寄存器AR:保存当前cpu所访问的内存地址
指令译码器ID:分析指令操作码
控制器功能:控制整个CPU的工作,包括程序控制、时序控制。
数据的进制转换
十六进制符号为0x或H,例:0x18F 或 18FH
数的表示
定点表示法分为纯小数和纯整数两种,其中小数点不占存储位。
数的编码方式:
原码:一个数的正常二进制表示,最高位表示符号位,因此0有两种表示方式 0000 0000 和 1000 0000
反码:正数的反码即原码,负数的反码是在原码的基础上,除符号位外,其他各位按位取反。 0也有两种方式 0000 0000 和 1111 1111.
补码:正数的反码即原码,负数的反码是在原码的基础上,除符号位外,其他各位按位取反,而后末位+1 ,若有进位则产生进位。0只有一种表示方式 0000 0000.
移码:用作浮点运算的阶码,无论正数负数,都是将该原码的补码的首位(符号位)取反得到移码。
浮点数
表示方法:N=F*2^E,其中E称为阶码,F称为尾数。例如:101.011 = 0.101011 * 2^3.
阶码为带符号的纯整数,尾数为带符号的纯小数。
阶符 | 阶码 | 数符 | 尾数 |
数值范围由阶码确定,数值精度由尾数确定。
浮点数的运算
对阶:使两个数的阶码相同,小阶向大阶看齐,较小阶码增加几位,尾数就右移几位。
尾数计算:相加
结果规格化:尾数表示规则化
校验码
码距:从A码到B码转换所需要改变的位数称为码距。
奇偶校验码:在编码中增加一位校验位,来使编码中1的个数为奇数(奇校验)或者偶数(偶校验),只能检一位错,不能纠错。
循环冗余校验码CRC:与一个多项式,进行模二运算 ,获得校验码。原始报文 + 校验位
海明校验码:本质也是利用奇偶性来检错和纠错的检验方法,构成方法是在数据位之间的确定位置上插入k个校验位,通过扩大码距实现检错和纠错。(需要再了解)
计算机体系结构
Flynn分类法
SISD:单指令单数据
SIMD:单指令多数据
MISD:多指令单数据,不合理
MIMD:多指令多数据
计算机指令
一条指令由操作码和操作数两部分组成,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。
操作要求和操作地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中。
计算机指令执行过程:取指令--分析指令--执行指令。
指令的寻址方式
顺序寻址方式:当执行一段程序的时,是一条指令接着一条指令地顺序执行。
跳跃寻址方式:指下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出。程序跳跃后按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应该变,以便及时跟踪新的地址指令。
指令操作的寻址方式
立即寻址方式:指令的地址码字段指出的不是地址,而是操作数本身。
直接寻址方式:在指令的地址字段中直接指出操作数在主存中的地址。
间接寻址方式:指令地址码字段所指向的存储单元中存的是操作数的地址。
寄存器寻址方式:指令中的地址码是寄存器的编号。
指令系统
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其它 |
CISC | 数量多,使用频率差别大,可变长格式 | 支持多种 | 微程序控制技术(微码) | 研制周期长 |
RISC | 数量少,使用频率接近,定长格式,大部分为单周期指令,只有Load/Store操作内存 | 支持方式少 | 增加了通用寄存器;硬布线逻辑控制为主;适合采用流水线 | 优化编译,有效支持高级语言 |
指令流水线
原理:将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加的效果,所有的部件去处理指令的不同段。
存储系统
两级存储:Cache-主存、主存-辅存(虚拟存储体系)
局部性原理:总的来说,在CPU运行时,所访问的数据会趋向于一个较小的局部空间地址内,包括下面两个方面:
时间局部性原理:如果一个数据项正在被访问,那么在近期它很可能会被再次访问,即在相邻的时间里会访问同一个数据项。
空间局部性原理:在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能是相近的,即相邻的空间地址会被连续访问。
高速缓存Cache
用来存储当前最活跃的程序和数据。
由控制部分和存储器组成,存储器存储数据,控制部分判断CPU要访问的数据是否在Cache中,在则命中,不在则依据一定的算法从主存中替换。
地址映射:在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息,需要将主存地址转换为Cache存储器的地址,由硬件自动完成映射。
直接映射:将Cache存储器等分成块,主存也等分成块并编号。根据编号一一对应。缺点,浪费资源。
全相联映射:同样等分成块并编号,主存中任意一块都与Cache中的任意一块对应,因此可以随意调入Cache任意位置。缺点,太复杂。
组组相连映射:前面两种方式的结合,将Cache存储器先分块再分组,主存也同样先分块再分组,组间采用直接映射,组内全相联映射。
总线结构
内部总线:内部芯片级别的总线,芯片与处理器之间通信的总线。
系统总线:板级总线,用于计算机内各部分之间的连接,具体分为数据总线(并行数据传输位数)、地址总线(并行数据传输位数)、地址总线(系统可管理的内存空间的大小)、控制总线(传送控制命令)。代表的有ISA总线、EISA总线、PCI总线。
外部总线:设备一级的总线,微机和外部设备的总线。
系统可靠性分析
平均无故障时间 MTTF = 1/失效率
平均故障修复时间 MTTR = 1/修复率
平均故障间隔时间 MTBF = MTTF + MTTR
系统可用性 MTTF/(MTTF+MTTR)*100%
网络安全
网络安全五大基本要素
保密性:确保信息不暴露给未授权的实体。包括最小授权原则、防暴露、信息加密、物理保密。
完整性:保证数据传输过程中是正确无误的,接收和发送的数据相同,包括安全协议、校验码、密码校验、数字签名、公证等手段。
可用性:保证合法的用户以合法的手段来访问数据 ,包括综合障碍(IP过滤、业务流控制、路由选择控制、审计跟踪)。
可控性:控制授权范围内的信息流向及行为方式,整个网络处于可控的状态下
不可抵赖性:信息数据参与者不能否认自己发送的数据,参与者身份真实有效。
安全威胁分类
重放攻击(ARP):所截获的某次合法的通信数据拷贝,出于非法的目的而重新被发送。
拒绝服务(DOS):对信息或其他资源的合法访问被无条件地阻止。
窃听:用各种可能的合法或非法的手段窃取系统中的信息资源和敏感信息。
加密技术--保密性
明文:实际传输的真正数据
密文:经过加密之后的数据
加密:将明文转换为密文的过程
解密:将密文转换为明文的过程
加密算法:一般是公开的,包括两大规则,代换(转换成完全不同的其他数据)和置换(打乱明文顺序,进行重新置换)
密钥:加密和解密过程中使用的密码等,是隐藏的。
对称加密技术:对数据的加密和解密的密钥是相同的。一般只有56位,适合加密大数据,常见算法 DES 、AES、RC-5、IDEA算法。
非对称加密技术:公开密钥加密技术,各个用户分别有一对公钥和私钥。公钥是公开的,私钥是保密的。
常见算法:RSA(512位或1024位密钥)、 Elgamal、ECC、背包算法、Rabin、D-H
信息摘要--完整性
信息摘要:就是一段数据的特征信息,当数据发生了改变,信息摘要也会发生改变,发送方会将信息摘要和数据一起传给接收方,接收方会根据接收到的数据重新生成一个信息摘要,若此信息摘要和接收到的信息摘要相同,说明数据正确。信息摘要是由哈希函数生成的。
特点:不管数据多长都会产生固定的信息摘要;不同的输入数据,产生不同的信息摘要;单向性,只能根据数据生成信息摘要,不能根据信息摘要还原数据。
算法:MD5(128位输出)、SHA(安全散列算法,产生160位的输出、安全性更高)
数字签名-不可抵赖性
数字签名:非对称加密体制,主要功能有:不可否认、报文鉴别、报文的完整性。
原理:发送方发送的数据,使用发送方的私钥进行数字签名,由于公钥是共享的,任何接收方都可以拿来解密,因此接收方使用了发送方的公钥来解密,那么必然此数据是由发送方的私钥加密的,数据的私钥只属于发送方,唯一标识了数据是由谁发送的,这就是数字签名的原理。
数字证书
又称为数字标识,由用户申请,证书签证机关CA对其核实签发的,对用户的公钥的认证。
原理:每一个发送方都要向CA申请数字证书,数字证书是经过CA数字签名了的,也即CA使用私钥加密,当发送方发送数据是,接收方首先下载CA的公钥,去验证数字证书的真伪,如果是真的,就能保证发送方是真的,因为CA是官方权威的机构,其合法性毋庸置疑。
格式:序列号、版本号、签名算法、发行者ID、发行者、主题ID、有效期、公钥。