第一章:计算机网络概论

计算机网络概论

考点分析(上午题:占比8%,6分)

浮点数运算、溢出、算术、逻辑运算、计算机体系结构分类、指令系统基础、CISC与RISC、流水线、Cache存储器可靠性分析、校验方法

计算机系统基础知识

计算机系统硬件基本组成

image-20220303145717084

中央处理单元

CPU功能:
1)程序控制:CPU通过执行指令来控制程序的执行顺序,这是CPU的重要功能。
2)操作控制:一条指令功能的实现需要若干操作信号配合来完成,CPU产生每条指令的操作信号并将操作信号送往对应的部件,控制相应的部件按指令的功能要求进行操作。
3)时间控制:CPU对各种操作进行时间上的控制,即指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格控制。
4)数据处理:CPU通过对数据进行算术运算及逻辑运算等方式进行加工处理,数据加工处理的结果被人们所利用。所以,对数据的加工处理也是CPU最根本的任务。

数据表示

进制之间的转换

先回忆知识点:余数是指除数中未被整除的部分,余数的取值范围在0和除数之间(除数除外)。在数学运算中,商是除数除以余数的结果。商*除数+余数=被除数。

我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。比如二进制是逢2进一位,十进制也就是我们常用的0-9是逢10进一位。

1)十进制转二进制,方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。例如:把十进制数150转换为二进制数:

img

2)二进制转十进制,方法为:把二进制数按权展开、相加即得十进制数。例如:把二进制数10010110转换为十进制数(从第一个数乘以2的数量次方,数量从7到0):

img

3)八进制转二进制,方法为:八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。例如:把八进制数226转换为二进制数:

img

4)二进制转八进制,方法为:3位二进制数按权展开相加得到1位八进制数。注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0。例如:把二进制数10010110转换为八进制数:

img

5)十六进制转二进制,方法为:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。例如:把十六进制数12C转换为二进制数:

img

6)二转十六,方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0。例如:把二进制数100101100转换为十六进制数:

img

7)十转八或十六,把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。例如:把十进制数150转换为八、十六进制数:

img

8)八或十六转十,方法为:把八进制、十六进制数按权展开,相加即得十进制数。例如:把八进制数226、十六进制数96转换为十进制数:

img

9)八转十六,方法:将八进制转换为二进制,然后再将二进制转换为十六进制,小数点位置不变。

img

10)十六转八,方法:将十六进制转换为二进制,然后再将二进制转换为八进制,小数点位置不变。

img

数据表示方式

机器数

各种数值在计算机中表示的形式称为机器数,其特点是釆用二进制计数制,数的符号用0和1表示,小数点则隐含,表示不占位置。机器数对应的实际数值称为数的真值。机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0,负数为1。比如,十进制中的数+3,计算机字长为8位(就是指有多少位数),转换成二进制就是00000011。如果是-3,就是10000011。那么,这里的00000011和10000011就是机器数。

真值

因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数10000011,其最高位1代表负,其真正数值是-3而不是形式值131(10000011转换成十进制等于131)。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。例:
00000001的真值=+0000001=+1
10000001的真值=–0000001=–1

原码

原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值,比如如果是8位二进制。
[+1]原=00000001
[-1]原=10000001
第一位是符号位,因为第一位是符号位,所以8位二进制数的取值范围就是[11111111,01111111],即[-127,127],原码是人脑最容易理解和计算的表示方式。

反码

反码的表示方法是,正数的反码是其本身,负数的反码是在其原码的基础上,符号位不变,其余各个位取反。
[+1]=[00000001]原=[00000001]反
[-1]=[10000001]原=[11111110]反

补码

补码的表示方法是,正数的补码就是其本身,负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1,即在反码的基础上+1。
[+1]=[00000001]原=[00000001]反=[00000001]补
[-1]=[10000001]原=[11111110]反=[11111111]补

移码

移码最简单了,不管正负数,只要将其补码的符号位取反即可。
[+1]=[00000001]原=[00000001]反=[00000001]补=[10000001]移
[-1]=[10000001]原=[11111110]反=[11111111]补=[01111111]移

浮点数运算

IEEE754:在IEEE标准中,浮点数是将特定长度的连续字节的所有二进制位分割为特定宽度的符号域,指数域和尾数域三个域,其中保存的值分别用于表示给定二进制浮点数中的符号,指数和尾数。这样,通过尾数和可以调节的指数(所以称为"浮点")就可以表达给定的数值了。Java平台上的浮点数类型float和double采纳了IEEE754标准中所定义的单精度32位浮点数和双精度64位浮点数的格式。

浮点数表达方式,这种表达方式利用科学计数法来表达实数,即用一个尾数(Mantissa),一个基数(Base),一个指数(Exponent)以及一个表示正负的符号来表达实数。比如123.45用十进制科学计数法可以表达为1.2345×10的2此方,其中1.2345为尾数,10为基数,2为指数。浮点数利用指数达到了浮动小数点的效果,从而可以灵活地表达更大范围的实数。提示:尾数有时也称为有效数字(Significand),尾数实际上是有效数字的非正式说法。浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度则由尾数决定。

校验码

计算机系统运行时,各个部件之间要进行数据交换。交换的过程中,会有发生误码的可能(即0变成1或1变成0),由于计算机的储存是通过二进制代码来实现的,误码会导致储存的内容发生改变。为确保数据在传送过程正确无误,常使用检验码。我们常使用的检验码有三种,分别是奇偶校验码、海明校验码和循环冗余校验码。

奇偶校验码(只能检错)

奇偶校验是一种简单有效的校验方法。这种方法通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2。对于奇校验,它可以检测代码中奇数位出错的编码,但不能发现偶数位出错的情况,即当合法编码中的奇数位发生了错误时,即编码中的1变成0或0变成1,则该编码中1的个数的奇偶性就发生了变化,从而可以发现错误。常用的奇偶校验码有3种:水平奇偶校验码、垂直奇偶校验码和水平垂直校验码。

码距:是指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。例如,4位8421码的码距为1。

海明码(纠错加检错)

海明码是由贝尔实验室的RichardHamming设计的,是一种利用奇偶性来检错和纠错的校验方法。海明码的构成方法是在数据位之间的特定位置上插入k个校验位,通过扩大码距来实现检错和纠错。海明码,小名汉明码,以发明者理查德·卫斯里·汉明的名字命名。海明码具有检错和纠错双功能,它基于奇偶校验原理,只能检查出某一位错码的位置。当有多位错码时,它就不适用了。

循环冗余校验码(CRC)

循环冗余校验码广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式为k个数据位产生r个校验位来进行编码,其编码长度为k+r。对通信的可靠性检查就需要校验,校验是从数据本身进行检查,它依靠某种数学上约定的形式进行检查,校验的结果是可靠或不可靠,如果可靠就对数据进行处理,如果不可靠,就丢弃重发或者进行修复。

计算机体系结构

计算机体系结构的发展

体系结构分类

单处理系统(Uni-processingSystem):利用一个处理单元与其他外部设备结合起来,实现存储、计算、通信、输入与输出等功能的系统。

并行处理与多处理系统(ParallelProcessingandMultiprocessingSystem):为了充分发挥问题求解过程中处理的并行性,将两个以上的处理机互连起来,彼此进行通信协调,以便共同求解一个大问题的计算机系统。

分布式处理系统(DistributedProcessingSystem):指物理上远距离而松偶合的多计算机系统。其中,物理上的远距离意味着通信时间与处理时间相比己不可忽略,在通信线路上的数据传输速率要比在处理机内部总线上传输慢得多,这也正是松耦合的含义。

指令集发展(CISC、RISC)

CISC(ComplexInstructionSetComputer,复杂指令集计算机)的基本思想是进一步增强原有指令的功能,用更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬化,导致机器的指令系统越来越庞大、复杂。事实上,目前使用的绝大多数计算机都属于CISC类型。

RISC(ReducedInstructionSetComputer,精简指令集计算机)的基本思想是通过减少指令总数和简化指令功能降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译提高指令的执行速度,采用硬布线控制逻辑优化编译程序。RISC在20世纪70年代末开始兴起,导致机器的指令系统进一步精炼而简单。

指令控制方式

顺序方式:顺序方式是指各条机器指令之间顺序串行地执行,执行完一条指令后才取下一条指令,而且每条机器指令内部的各个微操作也是顺序串行地执行。这种方式的优点是控制简单。缺点是速度慢,机器各部件的利用率低。

重叠方式:重叠方式是指在解释第k条指令的操作完成之前就可以开始解释第k+1条指令。通常采用的是一次重叠,即在任何时候,指令分析部件和指令执行部件都只有相邻两条指令在重叠解释。这种方式的优点是速度有所提高,控制也不太复杂。缺点是会出现冲突、转移和相关等问题,在设计时必须想办法解决。

流水方式:流水方式是模仿工业生产过程的流水线(如汽车装配线)而提出的一种指令控制方式。流水技术是把并行性或并发性嵌入到计算机系统里的一种形式,它把重复的顺序处理过程分解为若干子过程,每个子过程能在专用的独立模块上有效地并发工作。

RISC中的流水线技术

超流水线(SuperPipeLine)技术:它通过细化流水、增加级数和提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作。其实质是以时间换取空间。超流水机器的特征是在所有的功能单元都采用流水,并有更高的时钟频率和更深的流水深度。由于它只限于指令级的并行,所以超流水机器的CPI(ClockCyclesPerInstruction,每个指令需要的机器周期数)值稍高。

超标量(SuperScalar)技术:它通过内装多条流水线来同时执行多个处理,其时钟频率虽然与一般流水接近,却有更小的CPI。其实质是以空间换取时间。

超长指令字(VeryLongInstructionWord,VLIW)技术:VLIW和超标量都是20世纪80年代出现的概念,其共同点是要同时执行多条指令,其不同在于超标量依靠硬件来实现并行处理的调度,VLIW则充分发挥软件的作用,而使硬件简化,性能提高。VLIW有更小的CPI值,但需要有足够高的时钟频率。

并发性的解决

阵列处理机:阵列处理机将重复设置的多个处理单元按一定方式连成阵列,在单个控制部件控制下,对分配给自己的数据进行处理,并行地完成一条指令所规定的操作。这是一种单指令流多数据流计算机,通过资源重复实现并行性。

并行处理机:略

多处理机:多处理机系统是由多台处理机组成的系统,每台处理机有属于自己的控制部件,可以执行独立的程序,共享一个主存储器和所有的外部设备。它是多指令流多数据流计算机。在多处理机系统中,机间的互连技术决定了多处理机的性能。多处理机之间的互连要满足高频带、低成本、连接方式的多样性以及在不规则通信情况下连接的无冲突性。

存储系统

主存与cache地址映射方式

内存:也称为主存,设在主机内或主机板上,用来存放机器当前运行所需要的程序和数据,以便向CPU提供信息。相对于外存,其特点是容量小、速度快。

外存:也称为辅存,如磁盘、磁带和光盘等,用来存放当前不参加运行的大量信息,而在需要时调入内存。

地址映像:在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换成Cache存储器的地址,这种地址的转换称为地址映像。

直接映像:直接映像是指主存的块与Cache块的对应关系是固定的,一个主存块只能拷贝到cache的特定行上去,硬件简单成本低但是容易冲突效率下降。

全相联映像:主存与Cache存储器均分成大小相同的块。这种映像方式允许主存的任一块可以调入Cache存储器的任何一个块的空间中。将主存一个块的地址与内容一起存入cache中,拷贝灵活但是比较器电路难设计实现。

组相联映像:这种方式是前面两种方式的折中。具体方法是将Cache中的块再分成组。主存块放到哪个组是固定的,但是放到哪一行是灵活的,折中办法广泛采用。

虚拟存储器

虚拟存储器实际上是一种逻辑存储器,实质是对物理存储设备进行逻辑化的处理,并将统一的逻辑视图呈现给用户。因此,用户在使用时,操作的是虚拟设备,无需关心底层的物理环境,从而可以充分利用基于异构平台的存储空间,达到最优化的使用效率。

页式:页表硬件小,查表速度快但不利于存储保护;
段式:界限分明便于程序的模块化设计,易于编译修改和保护,但主存利用率低,产生大量碎片,查表速度慢;
段页式:折中办法,广泛采用,但地址变换速度比较慢。

输入/输出技术

计算机与外设数据交换

无条件传送:在此情况下,外设总是准备好的,它可以无条件地随时接收CPU发来的输出数据,也能够无条件地随时向CPU提供需要输入的数据。

程序查询方式:在这种方式下,利用查询方式进行输入/输出,就是通过CPU执行程序来查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。根据这种状态,CPU有针对性地为外设的输入/输出服务。

中断方式:当I/O系统与外设交换数据时,CPU无须等待也不必去查询I/O的状态,而可以抽身出来处理其他任务。当I/O系统准备好以后,则发出中断请求信号通知CPU,CPU接到中断请求信号后,保存正在执行程序的现场,转入I/O中断服务程序的执行,完成与I/O系统的数据交换,然后再返回被打断的程序继续执行。与程序控制方式相比,中断方式因为CPU无须等待而提高了效率。

直接内存存取:指数据在内存与I/O设备间的直接成块传送,即在内存与I/O设备间传送一个数据块的过程中,不需要CPU的任何干涉,只需要CPU在过程开始启动(即向设备发出“传送一块数据”的命令)与过程结束(CPU通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时的处理,实际操作由DMA硬件直接执行完成,CPU在此传送过程中可做别的事情。

多中断处理办法

多中断信号线法:每个中断源都有属于自己的一根中断请求信号线向CPU提出中断请求。

中断软件查询法:当CPU检测到一个中断请求信号以后,即转入到中断服务程序去轮询每个中断源以确定是谁发出了中断请求信号。对各个设备的响应优先级由软件设定。

菊花链法:软件查询的缺陷在于花费的时间太多。菊花链法实际上是一种硬件查询法。所有的I/O模块共享一根共同的中断请求线,而中断确认信号则以链式在各模块间相连。当CPU检测到中断请求信号时,则发出中断确认信号。中断确认信号依次在I/O模块间传递,直到发出请求的模块,该模块则把它的ID送往数据线由CPU读取。

总线仲裁法:一个I/O设备在发出中断请求之前,必须先获得总线控制权,所以可由总线仲裁机制来裁定谁可以发出中断请求信号。当CPU发出中断响应信号后,该设备即把自己的ID发往数据线。

中断向量表法:中断向量表用来保存各个中断源的中断服务程序的入口地址。当外设发出中断请求信号INTR以后,由中断控制器INTC确定其中断号,并根据中断号查找中断向量表来取得其中断服务程序的入口地址,同时INTC把中断请求信号提交给CPU。

总线结构

所谓总线,是指计算机设备和设备之间传输信息的公共数据通道。总线是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,因此可以将计算机系统内的多种设备连接到总线上。

内部总线,芯片的互连。
系统总线,CPU,内存,接口等的连接。
外部总线,数据交换。

安全性、可靠性与系统性能评测基础知识

计算机安全概述

信息安全5要素:机密性,完整性,可用性,可控性,可审查性。

加密技术和认证技术

加密技术

对称加密(私人密钥加密):对称加密采用了对称密码编码技术,其特点是文件加密和解密使用相同的密钥,这种方法在密码学中称为对称加密算法,数据加密标准(DES)+三重DES+RC-5+国际数据加密算法(IDEA)+高级加密标准(AES)。

非对称加密(公开密钥加密,比如RSA算法):与对称加密算法不同,非对称加密算法需要两个密钥,公开密钥(Publickey)和私有密钥(Privatekey),加密模型+认证模型。

PKI:一种遵循既定标准的密钥管理平台,能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系,必须具有权威认证机构、数字证书库、密钥备份和恢复系统、证书作废系统、应用接口。

计算机可靠性

可靠性:
1)串联系统:假设一个系统由N个子系统组成,当且仅当所有的子系统都能正常工作时系统才能正常工作,这种系统称为串联系统。R=R1*R2
2)并联系统:假如一个系统由N个子系统组成,只要有一个子系统正常工作,系统就能正常工作,这样的系统称为并联系统。R=1-(1-R1)(1-R2)

平均无故障时间:串联系统K=K1+K2,并联系统K=1/K*(1+1/2)。

计算机系统的性能评价

计算机系统性能评测常用方法

时钟频率:计算机的时钟频率在一定程度上反映了机器速度,一般来讲,主频越高,速度越快。但是,相同频率、不同体系结构的机器,其速度可能会相差很多,因此还需要用其他方法来测定机器性能。

指令执行速度:在计算机发展初期,曾用加法指令的运算速度来衡量计算机的速度,速度是计算机的主要性能指标之一。

等效指令速度法:随着计算机指令系统的发展,指令的种类大大增加,用单种指令的MIPS值来表征机器的运算速度的局限性日益暴露,因此出现了吉普森(Gibson)混合法或等效指令速度法等改进的办法。

数据处理速率法(ProcessingDataRate,PDR):PDR法采用计算PDR值的方法来衡量机器性能,PDR值越大,机器性能越好。PDR与每条指令和每个操作数的平均位数以及每条指令的平均运算速度有关。

核心程序法:核心程序法是研究较多的一种方法,它把应用程序中用得最频繁的那部分核心程序作为评价计算机性能的标准程序,在不同的机器上运行,测得其执行时间,作为各类机器性能评价的依据。
posted @ 2018-08-13 11:36  肖德子裕  阅读(323)  评论(0编辑  收藏  举报