一.CPU结构
1.1 运算器
ALU:进行算数运算和逻辑运算
累加器(AC):暂时存放ALU运算出来的结果
数据缓冲寄存器:用来存放由内存读出的一条
指令或数字,反之存入亦然
状态条件寄存器(PWD):保存算数指令和逻辑指令运算的状态和程序的工作方式
1.2控制器
程序计数器(PC):存放下一条指令的地址
指令寄存器(IR):用来保存当前正在执行的一条指令
指令译码器:指令中的操作码经过指令译码器编译
后,即可向控制器发出具体操作的特定信号
时序部件:为指令产生时序信号
1.3总线
数据总线(DB):用于传输数据信息
地址总线(AB):用于传输地址
控制总线(CB):用来传输控制信号和时序信号
二.指令系统
2.1寻址方式
指令
操作码:确定指令的操作类型
地址码:确定指令所要处理的地址
2.2寻找方式
立即寻址:通常直接在指令的地址码部分给出操作数
变址寻址:变址寄存器中的内容
加地址码中的内容即可完成寻址
直接寻址:在指令中直接给出参
加运算的操作数或运算结果所存
放的主存地址
间接寻址:在指令中给出操作数
地址的地址
2.3寄存器寻址
寄存器直接寻址:指令在执行过
程中所需要的操作数来源于寄存
寄存器间接寻址:寄存器存放的
是操作数在主存的地址
三.RISC和CISC
指令系统 | 指令 | 寻址 | 实现 |
RISC | 指令种类少频率接近定长编码 | 只支持少量寻址方式控制了访问内存的指令数量增加了通用寄存器 | 硬布线逻辑控制 |
CISC | 指令种类多频率相差较大变长编码 | 支持多种寻址访问主存较多 | 微程序控制 |
四.流水线
流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术,即可以同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。
流水线指令执行时间:流水线周期取时间最长的一条指令,标准算法:T=第一条指令执行所需时间+(指令条数-1)×流水线周期。
流水线的技术指标:吞吐率,计算机中的流水线在特定的时间可以处理的任务数量,TP=n/TK(n为指令条数,TK为流水线方式时间)
加速比:完成一批任务,不使用流水线所用的时间和使用流水线所用的时间之比,S=TK/TK(TS为顺序执行效率,TK为流水线方式时间)
五.存储系统
离CPU越近的存储器:速度越快,每个字节成本越高,同时容量越小
根据速度来排首先是寄存器,其次是高速缓存,再其次是主存,最后是本地磁盘
5.1存储方式
顺序存储:存储器中的数以记录的形式进行组织,对数据的访问必须是线性的,例如磁带存储器的存取方式。
直接存取:共享读写装置,但是每个记录都有一个唯一地址,共享的读写装置可以直接移动到目的数据块所在的位置进行访问,访问时间与数据位置有关。例如磁盘存储器的存取方式。
随机存取:存储器的每一个可寻址单元都具有唯一的地址和读写装置,系统可以在相同的时间对任意一个可寻址单元的数据进行访问,与先前的访问序列无关,例如主存采用随机存储方式
相连存储:是随机存取的一种,但选择哪个单元进行读写取决于其内容而不取决于其地址,例如高速缓存(cache)的存取方式
5.2.存储设备
RAM:随机存储器,数据可读可写,掉电丢失
静态:上电后信息就不会丢失,无需刷新,常用于cache
动态:需要刷新电路保存,常用于内存
ROM:只读存储器掉电后保存
高速缓存(cache):依靠程序的局部性原理,尽可能减少快设备对慢设备的约束
磁盘
萨塔:串行接口磁盘
SCS 1:专门为小型计算机系统设计的存储单元接口协议
Sas:串行连接scsi磁盘的一种磁盘
5.3.存储计算
实际的存储器是由一片或多片存储芯片及控制电路构成的,芯片数量>=存储容量/存储芯片的容量(取整,不满补1)
5.4.系统可靠性
计算机是一个复杂的系统,我们通过建立适当的数学模型把大系统分割成若干个子系统,可以简化分析过程
5.5.串联系统
假设一个系统由n个子系统组成,当且仅当所有的子系统都正常工作,系统才能正常工作,若每个子系统的可靠性都分别用R1,R2,R3表示,则系统可靠性为:R=R1×R2×R3….×Rn
六.操作系统
6.1.进程管理
一个进程对应多个线程,一个线程只能对应一个进程,影响关系:一个进程崩溃了,根据保护机制,其他进程不会崩溃,但当一个线程崩溃了,将会出现多个线程被杀死的情况,得出结论:多进程要比多线程更健壮
6.1.1.进程三态
- 运行态:进程占有处理器正在运行
- 就绪态:进程具备运行条件,等待系统分配处理器以便运行
- 等待态(阻塞态):进程不具备运行条件,正在等待某个事件的完成
6.1.2.进程锁死
死锁发生的四种条件(同时满足):互斥、占有和等待、非抢占、循环等待,想要防止死锁的产生,根本方法就是使得上述的必要条件之一不存在。
死锁避免:死锁避免是指在进程在每次申请资源时判断这些操作是否安全,典型算法:银行家算法,若系统中有N个并发进程,若规定每个进程需要申请R个某类资源,则当系统提供K=N*(R-1)+1个同类资源时,无论怎样申请,都不会死锁。
6.2.储存管理
存储管理是指对存储器资源的管理,主要是对内存和外存的管理
6.2.1页式存储与页面置换算法
页式存储是指通过引入进程的逻辑地址,把进程的逻辑地址空间与物理地址空间分离,从而增强存储管理的灵活性。在页式存储系统中,指令给出的逻辑地址分为两部分:逻辑页号和页内地址。
页面置换算法分为:先进先出置换法、最佳置换法、最近最少使用置换法
- 先进先出置换法:最早调入内存的页不再被使用的可能性要大于刚调入内存的页,因此先入先出总是淘汰在内存中停留时间最长的一页,即先入内存的页,先被换出。
- 最佳置换法:调入新页时,所选的老页应该以后都不被使用,或者在最长的时间后被使用使用这种算法,能最少保证缺页率。
- 最近最少使用置换法:最近一段时间内最久没有使用过的页进行淘汰。
6.3.文件管理
分为:相对路径与绝对路径,仅需记住linux下目录从 /
开始即可
6.4.设备管理
设备管理是对I/O设备的管理,主要任务:
- 选择和分配I/O设备,以便进行数据的传输操作
- 控制I/O设备和CPU之间的数据传输
- 是为用户提供一个友好的透明接口,将用户和设备硬件特性分开,使用户在编制程序的时候,不用考虑具体设备
6.4.1传输控制方式
- 程序查询方式:要求CPU不断使用指令检测方法来获取I/O设备的工作状态
- 程序中断方式:某些I/O设备的数据准备就绪后,主动向CPU发送中断请求信号,请求CPU暂时中断目前正在执行的程序转而进行数据传输
- DMA:一种完全由硬件执行I/O数据传输的工作方式
既要考虑中断的响应,又要节约中断开销。DMA控制器代替了CPU完全接管对总线的控制,数据传输不通过CPU,直接在内存和I/O中成批进行,优点:速度快,省去很多操作,缺点:批量数据传输的准备工作以及结束之后的处理工作,仍需要CPU来承担,难以发挥高速运算的能力。
单片机、微型机多采用程序查询方式、程序中断方式和DMA方式,I/O通道控制方式和I/O处理机方式一般用于中大型计算机。
七.项目管理
阶段 | 对应材料 |
规划阶段 | 可行性报告书、系统设计任务书 |
分析阶段 | 系统说明书 |
设计阶段 | 系统设计说明书 |
实施阶段 | 实施进展报告、系统测试分析报告 |
运行和维护阶段 | 系统运行情况说明 |
7.1软件开发模型
瀑布形
7.2软件测试
- 单元测试:针对模块内的测试,通常在软件详细设计阶段完成
- 集成测试:针对模块间的测试,又称组装测试,通常在软件总统设计阶段完成
- 确认测试:又被称为有效性测试,主要验证软件功能、性能、及其他特性是否与用户要求一致
- 系统测试:在实际运行环境下的测试
- 验收测试:检验软件产品的最后一关,这个环节主要从用户的角度入手
- 回归测试:修复bug之后进行测试
7.3项目管理
计划评审图,完成项目的最短时间是从开始到结束顶点的最长路径长度。关键路径法(CPM):可以借助PERT图和各项任务所需时间,计算每一个任务最早或最迟开始、结束时间。松弛时间:是指在不影响完工的前提下可能被推迟完成的最长时间。
松弛时间 = 关键路径时间 – 包含某任务最长路径所需要的时间
五、数据通信技术
5.1 信道技术
带宽的概念:发送器和传输介质的特性限制下的带宽,通常来说信道电路制成后带宽就决定了,因此信道电路是影响信道传输速率的客观性因素,计算公式:信道带宽W=最高频率f1-最低频率f2
5.1.1 奈奎斯特定理
奈奎斯特定理是在理想情况下(无噪声干扰)的情况下最高码元的传输速率的公式 B=2W,传输速率如果超出上限,将会出现严重的码间串扰问题。
比特是信息量的单位,具体换算公式如下:R=B log2 N (R为比特率,B为波特率,N为码元种类)
通常B有两种求解方式B=1/T或B=2W,一般选取求得的较小的为平均传输速率,较大的为极限(仅做题时使用)
5.1.2 香农定理
香农用信息论的理论推导出带宽受限且有噪声干扰的信道的极限信息传输速率,计算公式:C=W log2 (1+S/N)
由于使用香农定理时S/N(噪声比)的比值通常很大,因此,通常使用分贝数(dB)进行表示:X(dB)=10 ln S/ N
5.2 信道延迟
信道延迟:与源端和宿端的距离有关,也与信道中的信号传播速率有关,相关计算公式:
- 总延迟=线路延迟 + 发送延迟
- 线路延迟=传输距离/传输速度(路上跑的时间),比如1000m的电缆,延时为5us
- 发送延迟=数据帧大小/速率(排队上车的时间)比如100m线路,发送1000字节数据,时延为1000*8(1000 * 10^6)=80us
一个以太帧为1500个字节,光速300000km/s = 300m/us,电缆一般是光速67% 200000km/s = 200m/us,卫星信道的时延大约270ms(来回延迟540ms)
5.3 传输介质
有线传输介质:同轴电缆、双绞线和光纤,无线传输介质:无线电波、微波、红外线、激光,无线电波:500khz-1000mhz,是能量最小、波长最高、频率最低的电磁波,微波:300mhz-300ghz,波长较低频率较高的电磁波,用于雷达、飞机导航。WIFI频段:2.4G/5G。
5.3.1 双绞线
多对绝缘铜导线两两相互缠绕,数据传输100M网线线芯用到4根(2对),数据传输1000M网线线芯用8根(全部使用)。网口使用RJ45水晶头,电话口使用RJ11水晶头。网线传输距离100m,网线分为:
- 非屏蔽双绞线(UTP),价格低廉,适合企业、教育。
- 屏蔽双绞线(STP),价格高,军队政府、医疗航天。
5.3.2 光纤
利用光在玻璃或者塑料纤维中的全反射原理而达成的光传导工具,损耗很低,适用于长距离信息传输,光纤分为:
- 单模光纤(直线传播):只允许一种模式在其中传播,适用于大容量,长距离的光纤通信
- 多模光纤(突变、渐变反射):允许多种模式光信号传播(便宜)
光纤与光纤/光源之间的连接有两种方式:
- 用专用设备熔接起来(用于光纤长度的延长)
- 用光纤连接器(用于管线跳线或是不同光纤连接器的转换)
八 信号技术
8.4.1 调制技术
用数字数据调制模拟信号叫做数字调制
- 幅度键控(ASK)高低:用载波的两个不同振幅表示0和1
- 频移键控(FSK)快慢:用在波的两个不同频率表示0和1
- 相移键控(PSK)形状:用载波其实相位变化表示0和1
DPSK差分相移键控,正交幅度调制(QAM):把两个幅度相同但是相位差90°的模拟信号合成一个模拟信号
8.4.2 脉冲编码调制技术
- 取样:按照一定时间间隔对模拟信号进行取样,把模拟信号的当前值作为样本
- 奈奎斯特采样定理:如果模拟信号的最高频率为fmax,若以大于等于2fmax的采样频率进行采用,则采样得到的离散信号就能完整地会付出原始信号
- 计算公式:f=1/T>=2fmax
- 量化:把取样后得到的样本由连续值转换为离散值,离散值的个数决定了量化的精度
- 编码:把量化后的样本变成相应的编码
8.4.3 编码
曼彻斯特编码与差分曼彻斯特编码的小区别
- 曼彻斯特编码1为由高到低,0为由低到高
- 差分曼彻斯特编码遇0不变,遇1翻转
曼彻斯特编码与差分曼彻斯特编码都是双向码,要求每一位都有一个电平转换,必须翻转,都具有自定时和检测错误的功能,两种慢车斯特编码有点:将时钟和数据包含在信号数据流里面,也称同步码。编码效率低,都是百分之五十,传输速率是码元速率的一半,当传输速率为100Mbps时,码元速率为200Mbaud。
8.5 数据通信方式
按通信方向分:
- 单工通信:信息只能在一个方向传送,发送方不能接收,接收方不能发送(电视/广播)
- 半双工通信:通信的双方可以交替发送和接收信息,但不能同时接收或发送(对讲机、wifi、hub)
- 全双工通信:通信双方可同时进行双向的信息传送(电话/交换机)
按同步方式分:
- 异步传输:把各个字符分开传输,在字符之间插入同步信息,典型的时插入起始位和停止位
- 同步传输:发送方在传输数据之前,线发送遗传同步字符SYNC,接收方检测到两个以上SYNC字符就确认已经进入同步状态,开始准备接收数据。
- 同步传输效率更高,在短距离高速数据传输中,大多采用同步传输方式
数据交换方式分:
- 电路交换:将数据传输分为电路建立、数据传输、电路拆除3个过程,传输之前需要线建立一条物理通路,在被释放之前,改通路会一直被用户完全占有(早期电话)
- 报文交换:报文从发送方传送到接收方采用存储转发方式,报文中含有每一个下一跳节点,完整的报文在一个个节点间传输(数据不拆分)(早期电报)
- 分组交换:将数据拆分成很小的分组进行传送,包括数据包和虚电路(现代互联网)
- 数据报:每个分组被单独处理,每个几点根据路由选择算法,被独立送到目的地
- 虚电路:在数据传送之前,线建立起一条逻辑上的连接,每个分组都沿着一条路径传输,不会乱序
- 分组交换优势:减小延迟,提高吞吐,可以按组纠错,发现错误只需重发出错的分组,通信效率提高
8.5.1 信道复用
多路复用技术多个低速信道组合成一个高速信道,可以有效提高数据链路的利用率,分为:频分复用、时分复用、波分复用
8.6 差错控制
数据传输中出现错误不可避免,因此需要采用差错控制方法,数据通信中常用的办法时检错和纠错
8.6.1 奇偶校验
最常用的检错方法,能检测出一位错位,原理:在7位的ASCII码后增加一位,使码字中的1个数成奇数或者偶数,为奇奇校验,为偶偶校验
8.6.2 海明码纠错码
通过冗余数据位来检测和纠正差错的编码方式
海明距离(码距):一个码字要并称另一个码字时必须改变的最小位数,两个码字之间不同的比特数
海明码原理:在数据中间键入几个校验码,码距均匀拉大,当某一位出错,会引起几个校验位的值发生变化
海明不等式:校验码个数为k,可以表示2^k个距离,1个信息用来表示没有错误,其2^k-1个表示数据中存在错误,如果满足2^k-1>=m+k
(m为信息位,m+k位编码后的数总长度),则在理论上k个校验码就可以判断是哪一位出现了问题。
海明码编码
第2^k
位是校验位,其余位存放数据,比如100101
,把数据存放在3,5,6,7,9,10位上,1,2,4,8留作校验位
1 | 0 | 0 | 1 | 0 | 1 | ||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
校验位和数据位的关系
3 = 2+1 5 = 4 +1 6 = 4+2
7 = 4+2+1 9 = 8+1 10 = 8+2
看分解是否有1,若有1,则参加第一位的校验码生成,3,5,7,9号位参加第1位校验,若按偶校验计算,1号位为0
0 | 1 | 0 | 0 | 1 | 0 | 1 | |||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 20 |
看分解是否有2,若有2,则参加第二位的校验码生成,3,6,7,10号位参加第1位校验,若按偶校验计算,2号位为1
0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | ||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
之后以此类推
8.6.3 CRC循环冗余校验码
例题:采用CRC进行差错校验,生成多项式为G(X)=x^4 + x +1,信息码字为10111,则计算出CRC校验码是()
第一步:判断校验位数,生成多项式最高次方是几位,校验位就是几位 4位校验位
第二步:补齐数据位后面的0 校验位几位补几位
第三步:提取生成多项式系数 G(X)= 1 * x^4 + 0 * x^3 + 0 * x^2 + 1 * x^1 + 1* x^0
第四步:用第二步除以第三步(异或运算)
求得余数就是CRC校验码,余数不够,前面补0
原作者系北(sibei)getshell
暂无评论内容