计算机网络概论
计算机系统基础知识
- 基本概念:
- 计算机系统是由硬件和软件组成的。按照功能划分的多级层次结构:
- 硬联逻辑级
- 微程序级:一般由硬件执行
- 传统机器级
- 操作系统级
- 汇编语言级
- 高级语言级
- 应用语言级
- 计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备5大部件组成。
- 字长 是计算机进行运算和数据处理的基本信息单位
- 计算机中普遍采用的字符编码是美国标准信息交换码,即ASCII码,包括256个常用字符
- CPU(中央处理单元):
- CPU的功能:
- 程序控制
- 操作控制
- 时间控制
- 数据处理
- CPU的组成:运算器(算术逻辑单元ALU、累加寄存器AC(通用寄存器,为ALU提供一个工作区,用来暂存数据)、数据缓冲寄存器DR、状态条件寄存器PSW)、控制器(指令控制逻辑、时序控制逻辑、总线控制逻辑和中断控制逻辑等)、寄存器和内部总线等部件组成
- CPU的主要厂商AMD(“双核”)和Intel(“双芯”)
- 单核CPU通过分时方式可实现对多任务操作系统的支持,CPU中的运算单元、控制单元和寄存器通过内部总线连接起来
- CPU强调通用性,适合于需要处理各种不同的数据类型、大量的分支跳转及中断场合‘
- GPU面对的是类型高度统一、相互无依赖的大规模数据和不需要被打断的纯净计算环境。GPU是一种单指令多数据流架构,特点是比CPU包含更多的计算单元和更简单的控制单元;采用MISD并行计算架构
- 进制转换
- 16进制转2进制
如果“2X”的补码是“90H”,那么X的真值是( )
A.72 B.-56 C.56 D.111
答案解析:
90H是16进制,转换为2进制为[1001 0000]补 = [1000 1111]反 = [1111 0000]原
其中真值为[-111 0000] = -(十六进制70H )= -(十进制 16*7 +0 )= -112
2X = -112 —> X= -56
- 校验码
- 海明码
假设 数据位为 n 位,校验位有 k 位,则海明码有 n + k 位,且 n 和 k 需满足 2𝑘 − 1 ≥ n + k 等式( 可以用 2k − 1 > n 简化计算 )
海明码是利用奇偶性来检错和纠错的校验方法,码距最小为2n+1 - CRC循环冗余校验码
采用模2运算,例如数据信息为1100,使用模2除法,生成多项式为X^3+X+1即1011,则CRC编码是:
信息码1100低位补0:1100 000,1100000与1011进行模2除法,余数为010,所以CRC为1100010
- 名词概念
- 超大规模集成电路(Very Large Scale Integration Circuit,VLSI)是一种将大量晶体管组合到单一芯片的集成电路,其集成度大于大规模集成电路。
- VLIW (Very Long Instruction Word – 超长指令字) 一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度。
- 浮点数
- 浮点数所表示的数值范围主要由阶码决定,所表示的数值精度由尾数决定
- 2^e*F e为阶码 F为尾数
- 如果浮点数的阶码(包括1位阶符)用R位的移码表示,尾数(包括1为数符)用M位的补码标识,则这种浮点数所能表示的数值范围如下:
- 两个浮点数对阶的时候要把阶码小的数的尾数右移n位,与阶码大的对齐
- 在计算机中,最适合进行数字加减运算的数字编码是 补码(在CPU中,通常只设置硬件加法器,只有补码能够将减法转化为假发),最适合标识浮点数阶码的数字编码是 移码(由于正数的移码大于负数的移码),±0编码相同的是补码和移码
- 数据表示
- 程序运行时,对函数的调用一般有两种形式:传值调用(形参取得是实参的值,形参的改变不会导致调用点所传的实参的值发生改变)和引用调用(形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值)
- 编译:将某高级语言程序翻译为汇编语言形式的目标程序
编译过程划分为词法分析、语法分析(程序语句的结构是否合法)、语义分析、中间代码生成、代码优化和目标代码生成6个阶段。
- 目标程序可以独立于源程序运行。解释程序是一种语言处理程序,在词法、语法和语义分析方面于编译程序的工作原理基本相同,但在运行用户程序时,它是直接执行源程序或源程序的内部形式(中间代码)。因此,解释程序并不产生目标程序,这是它和编译程序的主要区别。
- 解释器参与运行控制,程序执行的速度慢
- 词法分析时编译或解释用户源程序过程中唯一与源程序打交道的阶段,主要功能是按顺序分析出源程序的记号,例如删除无用的空白字符,回车字符,删除注释等
- 语义分析主要检查源程序是否存在语义错误,并收集类型信息供后面的代码生成阶段使用,如表达式的除数是0
- 先分析词、即语法分析;而分析词的组合即语法分析,移进规约是自上而下的预发分析方法
- 编译正确的程序可以消除词法及语法错误,但不能完全消除语义错误,语义分为静态语义和动态语义,静态语义错误可以通过编译程序检测发现、而动态语义错误需要到运行时才能被发现
- 其中静态语义分析方法是语法制导翻译,其基本思想是将语言结构的语义以属性的形式赋予代表此结构的文法符号,而属性的计算以语义规则的形式赋予文法的产生式
- 常用的中间代码的表达形式有语法树、后缀式、三地址代码
- 语言
- 脚本语言是为了缩短传统的编写-编译-链接-运行过程而创建的计算机编程语言。主要采用解释方式实现,通常以文本(如ASCII)保存,只有在调用时进行解释或编译。(Python PHP Ruby)
- 标记语言常用于描述格式化和链接,编程效率不如编译型语言
计算机体系结构
- 计算机体系结构
- 组成:计算机体系结构由 结构(计算机系统各种硬件的互联)、组织(各种部件的动态联系与管理)、实现(各模块设计的组装完成)、性能(计算机系统的行为表现)4个基本方面组成
- 计算机体系结构是指计算机的概念性结构和功能属性
- 计算机组织是指计算机体系结构的逻辑实现,包括机器内的数据流和控制流的组成以及逻辑设计等(长成为计算机组成原理)
- 计算机实现是指计算机组织的物理实现
- 结构分类
(1)从宏观上按处理机的数量进行分类,分为单处理系统(利用一个处理单元与其他外部设备结合起来,实现存储、计算、通信、输入与输出等功能的系统)、并行处理与多处理系统和分布式处理系统
(2)从微观上按并行程度分类,有Flynn分类法,冯泽云分类法、Handler分类法和Kuck分类法 - 有Flynn分类法:提出计算机平台分类主要根据指令流(机器执行的指令序列)和数据流(由指令调用的数据序列)来分类,分为四类:(此分类常考)
- 单指令流单数据流机器(SISD)
- 单指令流多数据流机器(SIMD)并行计算机,有共享存储器和分布存储器两种形式
- 多指令流单数据流机器(MISD)理论上的不实际
- 多指令流多数据流机器(MIMD)并行计算机,多处理机系统多计算机
- 冯泽云分类法:按照并行度对各种计算机系统进行结构分类,将计算机系统分成串行位串行计算机、字并行位串行计算机、字串行位并行计算机和字并行位并行计算机4类
- Handler分类法:一个基于硬件并行程度计算并行度的方法,把计算机硬件结构分为:处理机级、每个处理机中的算逻单元级、每个算逻单元中逻辑门电路级
- Kuck分类法:用指令流和执行流及其多重性来描述计算机系统控制结构的特征,Kuck把系统结构分为单指令流单执行流、单指令流多执行流、多指令流单执行流、多指令流多执行流
- 指令系统
一个处理器支持的指令和指令的字节级编码称为其指令集体系结构
- 分类:
- 从体系结构的观点对指令集进行分类:操作数在CPU中的存储方式、显示操作数的数量、操作数的位置、指令的操作、操作数的类型与大小
- 按暂存机制分类:堆、栈、累加器和寄存器组
- 通用寄存器(GPR)优点:编译程序能有效的使用寄存器来保存变量的值
- CISC和RISC
- 复杂指令集计算机,Complex Instruction Set Computer。简称CISC
- 精简指令集计算机(RISC:Reduced Instruction Set Computer RISC)是一种执行较少类型计算机指令的微处理器,起源于80年代的MIPS主机(即RISC机),RISC机中采用的微处理器统称RISC处理器。这样一来,它能够以更快的速度执行操作(每秒执行更多百万条指令,即MIPS)
- 指令控制方式,有顺序方式、重叠方式和流水方式3种
- 吞吐率:单位时间内执行的指令数
- 例如指令流水线由5段组成,分别所需时间为△t,3△t,△t,2△t,△t,连续输入n条指令时的吞吐率为 n/(3+3+2)△t+3(n-1)△t
- 流水线的操作周期,其平均时间取决于流水线中最慢的操作
- 区别
- 从计算机信息处理的步骤和阶段的调度看,并行处理可以分为一下几类
- 存储器操作并行
- 处理器操作步骤并行(流水线处理机)
- 处理器操作并行(阵列处理机)
- 指令、任务、作业并行(多处理机、分布处理系统、计算机网络)
- 存储器
- 存储系统的层次结构:CPU内部通用寄存器、Cache、主存储器、联机磁盘存储器、脱机光盘、磁盘存储器
- 分类:
- 按照存储器所处的位置可分为内存和外存
- 按照构成材料分类:磁存储器、半导体存储器、光存储器
- 按照存储器的工作方式分为:读/写存储器和只读存储器
- 按访问方式分为:按地址访问的存储器和按内容访问的存储器
- 按寻址方式分为:随机存储器、顺序存储器和直接存储器。
- 立即寻址:操作数就包含在指令中,在形成指令的机器代码形式时,立即数就跟在指令操作的后面,去除指令时间即可得到操作数(速度最慢)
- 直接寻址:操作数存放在内存单元中,指令中直接给出的操作数所在存储单元的地址(速度最快)
- 寄存器寻址:操作数存放在某一寄存器中,指令中给出存放操作数的寄存器名(速度次之)
- 高速缓冲存储器是存在于主存与CPU之间的以及存储器,由静态存储芯片(SRAM)组成,容量比较小但速度比主存高的多,接近于CPU的速度。Cache通常保存着一份内存存储器中部分内容的副本(拷贝),该内容副本是最近曾被CPU使用过的数据和程序代码
- 静态存储芯片(SRAM),是一种具有静止存取功能的内存。特点是:不需要刷新电路即能保存它内部存储的数据
- DRAM(动态随机存取内存)特点:只能将数据保持很短的时间,需要通过周期性刷新来保持数据信息。
- 高速缓存中的地址映像方法
- 全相联地址映射: 主存的任意一块可以映像到cacha中的任意一块
- 直接相联映射:主存中一块只能映像到cache的一个特定的块中
- 组相联映射:各区中的某一块只能存入缓存的同组号的空间内,但组内各块地址之间则可以任意存放。
- 即从主存的组到Cache的组之间采用直接映像方式,在两个对应的组内部采用全相联映像方式,按照cache地址映像的块冲突概率从高到底排序:直接映像-> 组相联映像-> 全相联映像
- Cache的写操作常用的有以下几种方式:
- 写直达。当要写Cache时,数据同时写回主存储器,有时也称为写通
- 写回。CPU修改cache的某一行后,响应的数据并不立即写入主存储器单元,而是当该行从cache中被淘汰时,才把数据写回到主存储器中
- 标记法。
- 虚拟存储体系统由 主存-辅存量级存储器构成,实际上是一种逻辑存储器,实质是对物理存储设备进行逻辑化的处理,并将统一的逻辑视图呈现给用户。该系统的基础是程序的局部性理论
- 相联存储器是一种按存储内容来存储和访问的存储器
- 外存储器用来存放暂时不用的程序和数据,并且以文件的形式存储。外存储器主要由磁表面存储器(如磁盘、磁带)、光盘存储器及固态硬盘构成
- 磁盘容量:非格式化容量、格式化容量,指各扇区中数据区容量的总和,计算公式为:
- 分级存储体系中,目的是为了解决存储的容量、价格和速度之间的矛盾
- 在多级存储体系中,Cache-主存的结构的作用主要是解决主存与CPU速度不匹配
- 主存容量或是芯片的规格求地址的位数或是数据线的数量
- 例如主存容量为16M字节,且按字节编址,表示该主存地址至少应需要多少位
16M = 2^24B,所以主存地址至少需要24位(1M=1024K 1K=1024B)
- 例如主存容量为16M字节,且按字节编址,表示该主存地址至少应需要多少位
- BIOS(基本输入输出系统)是一个程序,是固化在主板的BIOS ROM芯片里面的,相当于硬件底层的一个操作系统,控制和保存着硬件的输入输出工作
- 计算机系统的性能一般包括两个大的方面:
- 可靠性或可用性
- 处理能力或效率(吞吐量、响应时间、资源利用率)
计算机网络系统常用的性能评估指标为信道传输速率、信道吞吐量和容量、信道利用率、传输延迟、响应时间和负载能力等
- 文件
- 文件路径:
- 文件的全文件名应保罗盘符及从根目录开始的路径名
- 文件的相对路劲是从当前工作目录下的路径名
- 文件的绝对路径名是指目录下的绝对位置,直接到达目标位置
- 文件格式
- WAV 微软公司开发的一种声音文件格式,用于保存windows平台的音频信息资源
- BMP 是windows操作系统重的标准图像文件格式
- MP3 是一种音频压缩技术,其全称是动态影像专家压缩标准音频层面
- MOV 即QuickTime影片格式,是Apple公司开发的一种音频、视频文件格式,用于存储常用数字媒体模型
- RTF多信息文本格式,是一种方便于不用的设备、系统查看的文本和图形的文档格式
- JPG全名是JPEG,JPEG图片以24位颜色存储单个位图,是与平台无关的格式,支持最高级别的压缩。渐近式JPEG文件支持交错
- MPEG(Moving Picture Expert Group),MPEG-1、MPEG-2、MPEG-4、MPEG-7和MPEG-21标准。其中MPEG-1、MPEG-2、MPEG-4主要针对音、视频编码技术,而MPEG-7是多媒体内容描述接口标准,MPEG-21是多媒体应用框架标准
VCD使用了MPEG-1标准作为其音视频信息压缩编码方案、而MPEG-2标准中的音视频压缩编码技术被应用DVD中- DVD-RAM和DVD-RW是DVD技术所支持的两种不同的可多次擦除重写的DVD光盘格式
- CD-R指一次可写(刻录)CD光盘,而CD-RW指可多次擦除,重写的CD光盘
- 例题:
某文件采用多级索引结构,若磁盘块的大小为512字节,每个块号需占3字节,那么跟索引采用一级索引时的文件最大长度为:一个物理块可放512/3=170个目录项,一级索引可放170512=87040B = 85K,二级索引可放文件的大小为为170170512=148105B=14450K
- 硬盘
- 固态硬盘存储介质是闪存芯片,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成,比机械硬盘功耗低,读写速度快,防震抗摔性、无噪音、工作湿度范围大、轻便等特点
- 输入输出技术
- I/O系统有五种工作方式
- 程序控制方式
- 无条件传输方式:i/o端口总是准备好接受主机的输出数据,或是总是准备好项主机输入数据,而cpu在需要时,随时直接利用i/o指令访问响应的I/O端口,实现与外设的数据交换。优点是软、硬件结构简单,缺点是对时序要求高,只适用于简单的I/O控制
- 程序查询方式:也称为程序轮询方式。该方式采用用户程序直接控制主机与外部设备之间输入/输出操作。CPU必须不停地循环测试I/O设备的状态端口,当发现设备处于准备好ready状态时,CPU就可以与I/O设备进行数据存储操作。这种方式下的CPU与I/O设备是串行工作的
- 中断方式:当I/O设备结束(完成、特殊或异常)时,就会向CPU发出中断请求信号,CPU收到信号就可以采取相应措施。当某个进程要启动某个设备时,CPU就向相应的设备控制器发出一条设备I/O启动指令,然后CPU有返回原来的工作。CPU与I/O设备可以并行工作,与程序查询方式相比,大大提高了CPU的利用率
- DMA工作方式:直接主存存取方式。思想是:允许主存储器和I/O设备之间通过DMA控制器直接进行批量数据交换,除了在数据传输开始和结束时,整个过程无需CPU的干预;工作方式是在主存和外设之间建立起直接的数据通路
- 通道方式:在一定的硬件基础上利用软件手段实现对I/O的控制和传送,更多的免去了cpu的接入,使主机对外设并行工作程度更高
- I/O处理机:指专门负责输入/输出的处理机,可以有独立的存储器、运算部件和指令控制部件
- 程序控制方式
- 总线结构
- 定义:是指计算机设备和设备之间传输信息的公共数据通道。
- 特征:总线上的所有设备共享
- 分类:
- 数据总线DB:用来传送数据信息,是双向的
- 地址总线AB:用于传送CPU发出的地址信息。目的:指明与CPU交换信息的内存单元或I/O设备。地址总线的宽度决定了CPU的最大寻址能力
- 控制总线CB:用来传送控制信号、时序信号和状态信息等。CB中每条线传输方向是单方向且确定的,整体是双向的
- 常见总线:
- ISA总线(工业标准总线,只能支持16位的I/O设备)
- EISA总线(在ISA基础上发展起来的32位总线)
- PCI总线(微型机上广泛采用的内总线,并行传输方式)
- PCI Express总线(点对点串行连接)
- 前端总线(将CPU连接到北桥芯片的总线)
- RS-232C(串行外总线)
- SCSI总线(并行外总线)
- SATA总线(主要用作主板和大量存储设备之间的数据传输,如硬盘及光盘驱动器)
- USB(通用串行总线)
- IEEE-1394(高速串行外总线)
- IEEE-488总线(并行总线接口标准)