进制
正 | 负 | +0 -0 | |
---|---|---|---|
原 | 0001 | 1001 | 0000 1000 |
反 | 0001 | 1110 | 0000 1111 |
补 | 0001 | 1111 | 0000 0000 |
取值范围
原 -(2n-1)-1~(2n-1)-1 数量 [(2n-1)-1]-[-(2n-1)-1] +1(1代表0)=(2*2n-1)-1=**2n-1**
反 -(2n-1)-1~(2n-1)-1 数量 [(2n-1)-1]-[-(2n-1)-1] +1(1代表0)=(2*2n-1)-1=**2n-1**
补 -(2n-1)~(2n-1)-1 数量 [(2n-1)-1]-[(-2n-1)]+1(1代表0)=2*2n-1=**2n**
浮点数,小阶对大阶,尾数右移
计算机结构:
cpu
运算器:
1、算术逻辑单元ALU:进行逻辑运算
2、累加寄存器AC:暂时存放参与逻辑运算的逻辑上也可以存放中间结果
3、数据缓冲寄存器:存放从主存中读取到的指令和数据
4、状态条件寄存器:存放运算过程中产生的条件和信息
控制器:
对指令进行分析(指令包括操作码和地址码)
首先将指令放到指令计算器进来获取这一条指令(解析分为操作码和地址码,地址码放到主存储器),再将指令放到指令寄存器IR中,然后指令译码器进行译码后在由时许部件进行操作控制
1、指令计数器PC:存放的是下一个指令的地址
2、指令寄存器IR:存在正在运行的指令
3、指令译码器:将操作码放入进行分析
4、时序部件:控制操作
主存储器
存放指令和数据
总线:
包括数据总线、地址总线,控制总线
数据总线:传输数据(宽度:一次可以传输多少个二进制)
地址总线:传输地址信息,位数决定寻址的空间大小
指令(有意义二进制代码):
操作码:这条指令要完成的操作的性质
地址码:对应操作数,寻址:操作数所在的地址
寻找:
立即寻址:地址码直接指向操作数本身(操作数长度受到限制,不需要额外的空间)
变址寻址:指出地址码的值,指向变址寄存器,地址码加上变址寄存器中的值(不需要额外的寻址空间)
直接寻址:直接指向操作数所对应的地址池
间接寻址:指向的地址中仍存在一个地址,指向下一个地址中存在的操作数,多一次访存
寄存器寻址:直接指向寄存器中所对应的操作数
寄存器间接寻址:指向的寄存器中仍存在一个寄存器地址,操作数在下一个寄存器中
CISC和RICS
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其他 |
---|---|---|---|---|
CISC(复杂,对使用者友好) | 数量多,使用频率差别大,可变长格式 | 支持多种 | 微程序控制技术 | |
RISC(精简,效率高) | 数量少,使用频率接近,定长格式,大部分为单周期指令操作寄存器,只有load/Store操作内存 | 支持方式少 | 增加了通用寄存器;硬布线逻辑控制为;适合采用流水线 | 优化编译,有效支持高级语言 |
Flynn
结构体系 | 结构 | 关键特性 | 代表 |
---|---|---|---|
单指令流单数据流:SISD | 控制部分:一个 处理器:一个 主存模块:一个 | 单处理器系统 | |
单指令流多数据流:SIMD | 控制部分:一个 处理器:多个 主存模块:多个 | 各处理以异步的形式执行同一条指令 | 并行处理机 阵列处理器 超级向量处理机 |
多指令流单数据流:MISD | 控制部分:多个 处理器:一个 主存模块:多个 | 被证明不可能,至少不实际 | 目前没有,由文献称流水线计算机为此类 |
多指令流多数据流:MIMD | 控制部分:多个 处理器:多个 主存模块:多个 | 能够实现作业、任务、指令等各级全灭并行 | 多处理机系统 多计算机 |
流水线:
指令:取 分 执
t 2t t
未采用
1 | 2 | 3 | |||||||
---|---|---|---|---|---|---|---|---|---|
1 | 1 | 2 | 2 | 3 | |||||
1 | 2 |
2个进程==8t
采用
1 | 2 | 3 | |||||||
---|---|---|---|---|---|---|---|---|---|
1 | 1 | 2 | 2 | 3 | 3 | ||||
1 | 2 | 3 |
2个进程==6t
执行时间:
(t1+t2+t3)+(n-1)t1
流水线建立时间
流水线技术指标:
吞吐率:
Tp=n(指令数)/Tk(不采用流水线所用时间)
加速比:
S=Ts(采用流水线所用时间)/Tk
效率
存储系统结构:
主存:随机存储器RAM(掉电丢失)和只读存储器ROM(掉电不丢失)
缓存:cache高速缓冲存储器,实现缓和CPU和主存之间的速率矛盾
存储器存储方式:
顺序存取(磁带):依次存放
直接存取(硬盘):共享读写装置
随机存取(内存):随机存放,根据地址读取,拥有唯一性
相连存取(cache):按内容进行存取,提高命中率
主存储器基础-组成(DRAM):
实际的存储器总容量,是由一片或多片存储芯片配以控制电路构成的。其容量为W×B,w是存储单元(word即字)的数量,B表示每个word由多少位bit(位)组成。
如:某一芯片规格为w×b,则组成W×B的存储器需要(W/w)×(B/b)个芯片
列:2w×4b组成4W×16B
4/2×16/4=8
主存储器(内存)采用:随机存取方式存储,需对每个存储单元进行编制。而在主存储器中,通常以word为单位进行标识,即每个字一个地址,通常采用16进制表示。
列:
按字节编址,地址从A4000H-CBFFFH,则表示有(CBFFF-A4000)+1个字节,即28000H字节,也就是163840个字节,等于160KB
表示存储容量的相关术语:
位:用bit表示,一个二进制表示1bit
字节:用B表示,1B=8bit
字:实际表示CPU一次处理的二进制位数,通常为字节的整数倍。对应的字长有:8/16/32/64bit
Cache
如果Cache的访问命中率为h,而Cache的访问周期时间是t1,主存储器的访问周期是t2,则整个系统的平均访存时间就应该是:
t3=h×t1+(1-h)×t2
Cache的淘汰算法:
先进先出算法:先来的先淘汰
最近最少使用算法:最近最少使用的先淘汰
随机算法:随意随机无规律
RAID:
raid–Redundant Array of Independence Disks,独立磁盘冗余阵列RAID是将同一个阵列中的多个磁盘为单一的虚拟磁盘,数据是以分段的方式顺序存放于磁盘阵列中。
三大特点:
1、通过对硬盘上的数据进行条带化,实现对数据成块存取,减少硬盘的机械寻道时间,提高数据存取速度
2、通过对一阵列中的几块硬盘同时读取,减少硬盘的精选寻道时间,提高数据存取速度
3、通过镜像或者存储奇偶校验信息的方式,实现对数据的冗余保护
RAID0技术:
1、应用Data Striping (数据分段)技术,将所有硬盘构成一个磁盘阵列,可以同时对多个硬盘进行读写动作,但是不具备备份及容错能力,他价格便宜,硬盘使用效果最佳,写入速度快,但是可靠性是最差的
2、磁盘利用率100%
RAID1技术:
1、使用的是Disk Mirror(硬盘镜像)技术,就是把一个硬盘的内容同步备份复制到另一个硬盘里,所有具备了备份和容错能力,这样做的使用效率不高,但是可靠性高
2、利用率为50%
RAID3技术:
1、采用特定奇偶校验盘的数据分段技术,将用于奇偶校验的数据存放到特定磁盘中,具有数据容错能力,可靠性较好
2、当单个磁盘失效时,会产生奇偶盘I/O瓶颈效应
3、硬盘利用率=(n-1)/n(有一个盘做校验盘)
RAID5技术:
1、采用分布式奇偶校验的数据分段技术,将用于奇偶校验的数据存放到各个硬盘中,具有数据容错能力,可靠性好
2、校验值分散在各个盘的不同位置,相当程度的分散了负载,故有较好的性能,硬盘利用率=(n-1)/n(校验数据仍然会占用一个盘)
RAID6技术:
1、时由一些大型企业提出来的私有RAID级别标准,它的全称交“带有两个独立分布式校验方案的独立数据磁盘”。
2、从功能上讲,能实现两个磁盘掉线容错的,都叫RAID6
3、磁盘利用率=(n-2)n
RAID技术:
1、RAID10结合RAID1和RAID0,先镜像,再条带化
RAID2.0优势:虚拟化
1、快速重构(所有备份均匀分布在各个磁盘)
2、自动负载均衡(读写速度快)
3、系统性能提升
4、自愈合(自动校验,恢复)
系统可靠性:
1、失效率·
2、平均无故障时间MTBF(失效率的倒数1/λ)
3、平均故障修复时间MTTR
4、可用性
串行:可靠性=R1×R2×R3×…×Rn
失效率:λ=λ1+λ2+…+λn
并行:可靠性=1-(1-R1)×(1-R2)×…×(1-Rn)
操作系统:
计算机软件:(系统软甲,应用软件)
程序及相关文档的集合
程序设计语言:
机器语言:
二进制,低级语言
汇编语言:
助记符号,低级语言
高级语言(java,c等等):
编译程序:
转换为目标程序(低级语言)+链接=可执行程序
翻译程序:
逐句翻译,逐句执行,不会生成目标程序
4GL语言:
以问题为依据来进行开发的语言
进程管理:
进程的状态:
程序时静态的,进程(PCB,程序块,数据块)是动态的
运行,就绪,等待(阻塞)
只有就绪和运行态可以互相转换
死锁:
如果进程等待一个不可能发生的事就叫死锁,一个或多个进程死锁会造成系统死锁
四个必要条件:
互斥:资源只能同时被一个进程使用
环路等待:在请求的同时保持自己原有的资源,几个进程形成环路
不剥夺:除非进程自己释放,不会被其他进程剥夺
保持和等待:在等待的同时保持拥有自己的资源
不产生死锁的最少资源:
例:系统拥有若干互斥资源R,3个并发进程中的每一个都需要2个资源R,那么使系统不发生死锁的资源R的最少数量是多少个?
3×(2-1)+1=4
m个进程,每个需要n个资源
m×(n-1)+1
解决死锁问题:
死锁预防:
破环四个必要条件之一
死锁避免:
通过某种算法(最著名的就是银行家算法)进行避免
死锁检测:
周期检测是否产生死锁,若产生就解除它
死锁解除:
1、撤销进程
2、资源剥夺
银行家算法:
1、当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程
2、进程可以分期请求资源,但进程的总数不能超过最大需求量
3、当系统现有的资源不能满足进程尚需的资源数时,对进程的请求可以推迟分配,但综合能使进程在有限的时间里得到资源
例:
假设系统里有三类互斥资源R1,R2,R3,可用资源分别是9,8,5.在T0时刻系统中有P1,P2,P3,P5,五个进程,这些进程对资源的最大需求量和已分配资源如下所示,如果进程按序列执行,那么系统状态安全的是。
进程\资源 | 最大需求量(R1 R2 R3) | 已分配资源数(R1 R2 R3) |
---|---|---|
P1 | 6 5 2 | 1 2 1 |
P2 | 2 2 1 | 2 1 1 |
P3 | 8 1 1 | 2 1 0 |
P4 | 1 2 1 | 1 2 0 |
P5 | 3 4 4 | 1 1 3 |
A,P1-P2-P4-P5-P3 B,P2-P4-P5-P1-P3 C,P2-P1-P4-P5-P3 D,P4-P2-P5-P1-P3
已分配的资源和:7 7 5
系统剩余资源:9 8 5 - 7 7 5=2 1 0
P1尚需资源:6 5 2 - 1 2 1=5 3 1
P2尚需资源:2 2 1 - 2 1 1=0 1 0
P3尚需资源:8 1 1 - 2 1 0=6 0 1
P4尚需资源:1 2 1 - 1 2 0=0 0 1
P5尚需资源:3 4 4 - 1 2 3=2 3 1
这时系统资源只剩下210只能分配给P2进程,P2执行完毕后会释放已分配的资源2 1 1 + 2 1 0=4 2 1这时又可用满足P4,P4执行完后释放已分配的资源4 2 1 + 1 2 0=5 4 1,以此类推选择B
进程的互斥和同步:
互斥:如千军万马过独木桥,只能一个一个来
同步:速度有差异,在一定情况下停下等待
同步-----直接制约
互斥-----间接制约
PV操作:
临界区:
每个进程中访问临界资源的那段代码被称为临界区(只能一个进程访问)
信号量(资源数量的计数器):
是一种特殊的变量
互斥信号量 同步信号量
PV操作:
解决互斥和同步的问题。PV操作是分开来看的:
P操作(申请资源):是S=S-1,若S>=0,则该进程继续执行,否则该进程排入等待队列
V操作(释放资源):是S=S+1,若S<=0,则唤醒等待队列中的一个进程
互斥模型:
多个进程共享一个打印机问题
P(S):使用打印机 S=S-1
V(S):后续代码 S=S+1
互斥信号量S的初值为1
同步模型:
生产者:生产一个产品 消费者: P(S2)
P(S1) S1=S1-1 从缓冲区取产品 S2=S2-1
送产品到缓冲区 V(S1) S1=S1+1
V(S2) S2=S2+1 消费产品
S1的初值为1,S2的初值为0
存储管理:
页式存储:
优点:利用率高,碎片小,分配及管理简单
缺点:增加了系统开销;可能产生抖动现象
页号的位数:划分了多少个页
页号的值:对应的页号是哪个页(每页大小4kb,允许地址空间最多有1m个页)
页内地址:页的位数:表示页的大小 2的12次方=4k
页内地址:页内偏移数
页号 | 业内地址 |
---|---|
31—12 | 11–0 |
例:
某计算机系统页面大小为4K,进程的页面变换表如下所示。若进程的逻辑地址为2D16H。该地址经过变换之后,其物理地址为()
页号 | 物理页号 |
---|---|
0 | 1 |
1 | 3 |
2 | 4 |
3 | 6 |
A、2048H B、4096H C、4D16H D、6D16H
4K=22*210=2^12,页内地址12位,D16就是十二位,页号2对应物理块4==》C
页面大小代表页内地址,例如4k表示2^12代表12位前面剩余的就代表页号
页面置换算法:
先进先出FIFO:
谁先进入谁先出去,页内没有就是代表缺页
最佳置换算法OPT:
最远没有被使用的淘汰,往后看
最近最少使用算法LRU:
往前看,距离本次最远的替换
文件管理:
树形目录结构
绝对路径:从根目录开始的路径
相对路径:相对于当前目录(.)或者上一级目录(…)的路径
设备管理:
数据传输控制方式:
程序控制方式:串行操作,占用cpu,较慢
程序中断方式:暂时停止当前程序,执行完另一个程序后在执行当前程序,效率较高
DMA方式:直接存储访问方式,不需要cpu的干预,DMAC控制器,申请总线控制权,可用和cpu同时使用
系统开发和项目管理基础:
软件生命周期与开发模型:
计划周期:
问题定义
可行性研究
开发时期:
需求分析
总体设计
详细设计
编码
测试
运行时期
维护
软件开发模型:
瀑布模型
适应场合:
需求明确,提供对应模板
优点:
按阶段划分审核点
缺点:
它不是动态的,不能随时改变,成本大
V模型:
客户需求分析
即首先明确客户对于产品的需求,软件所具备的功能。这一点上比较关键的是分析师和客户沟通时的理解能力与交互性。要求分析师能准确的把客户所需要达到的功能,实现方式,等表述出来,给出分析结果,写出需求规格说明书。
软件需求分析
主要根据客户需求分析出软件方面的需求,即需要软件需要的功能,软件需要适应的硬件功能。该部分关键的是做到需求的剥离,以保证软件功能需求覆盖客户需求且不涵盖硬件或其他方面的需求,以方便软件工程师的进一步开发。
概要设计
主要是架构的实现,指搭建架构、表述各模块功能、模块接口连接和数据传递的实现等项事务。
详细设计
对概要设计中表述的各模块进行深入分析,对各模块组合进行分析等,这一阶段要求达到伪代码级别,已经把程序的具体实现的功能,现象等描述出来。其中需要包含数据库设计说明。
软件编码
按照详细设计好的模块功能表,编程人员编写出实际的代码。
单元测试
按照设定好的最小测试单元进行按单元测试,主要是测试程序代码,为的是确保各单元模块被正确的编译,单元的具体划分按不同的单位与不同的软件有不同,比如有具体到模块的测试,也有具体到类,函数的测试等。
集成测试
经过了单元测试后,将各单元组合成完整的体系,主要测试各模块间组合后的功能实现情况,以及模块接口连接的成功与否,数据传递的正确性等,其主要目的是检查软件单位之间的接口是否正确。根据集成测试计划,一边将模块或其他软件单位组合成系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。
系统测试
经过了单元测试和集成测试以后,我们要把软件系统搭建起来,按照软件规格说明书中所要求,测试软件其性能功能等是否和用户需求相符合,在系统中运行是否存在漏洞等。
验收测试
主要就是用户在拿到软件的时候,在使用现场,会根据前边所提到的需求,以及规格说明书来做相应测试,以确定软件达到预期的效果。
喷泉模型
喷泉模型的优点
喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。 [1]
喷泉模型的缺点
由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。 [1]
原型化模型
通过快速的构建原型从客户那快速的获取需求,会抛弃原型,会重新开发
演化模型
快速构建原型,保留原型,在原型的基础上迭代从而获得最终的原型
增量模型
快速构建原型,保留原型,抓住最核心的要求创建原型,通过增量包来完善原型,适合需求不明确的项目
螺旋模型:
螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动:
四种象限
(1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
(2)风险分析:分析评估所选方案,考虑如何识别和消除风险;
(3)实施工程:实施软件开发和验证;
(4)客户评估:评价开发工作,提出修正建议,制定下一步计划。
螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。
适合大型,风险高的项目
软件开发和测试
划分软件系统模块时应做到高内聚(各个元素之间联系紧密),低耦合(模块和模块之间相对独立)
动态测试(运行产品):黑盒测试,白盒测试(又称逻辑驱动测试,路径测试,结构测试),灰盒测试
静态测试(不运行产品):看相关文档进行测试
软件测试:
单元测试:
模块接口、局部数据结构、边界条件、独立的路径、错误处理
集成测试:
模块间的接口和通信
系统测试:
系统测试:恢复测试、安全性测试、强度测试、性能测试、可靠性测试、安全测试
验收测试:
有效性测试、软件配置审查、验收测试
回归测试:
本次修改有没有解决问题,有没有新的问题
项目管理
甘特图
范围管理
时间管理
成本管理
质量管理
人力资源管理
沟通管理
风险管理
采购管理
整体管理
可以描述出活动和活动之间的平行关系,不能清楚描述出活动与活动之间的依赖关系
pert图:
进度安排的常用图像描述方法有gantt图和pert图。gantt图不能描述各个任务之间的依赖关系;pert图可以给出那些任务完成后才能开始另一些任务,这些任务需要花费多长时间。
1、关键路径
第一个节点到最后一个节点的时间花费的最大值(关键路径)和最小值
松弛时间:最长时间减去最短完成时间
知识产权和标准化
法律法规:
《中国人民共和国著作权法》
《计算机软件保护条例》
《中国人民共和国商标法》
《中国人民共和国专利法》
《中国人民共和国不正当竞争法》
知识产权:
著作权及邻接权
专利权
工业品外观设局权
商标权
地理标志权
集成电路布图设计权
考题考点
保护期限
知识产权人确认
侵权判断
数据通信基础:
信道特征:
通讯术语:
信息:
描述事物的数据
数据:
承载信息的一个主体
信号:
连续的信息传递
模拟信号:
信号波形随时间变化,信息密度高,容易被影响
数字信号:
人为抽象出的理想信号,二进制适合长距离传输
码元:
一个信号波形,有多少个就可以决定能承当多少个二进制,一个可表示7个二进制数
数据通信系统的模型:
噪声影响可能会导致信号失真,失真过大无法识别
信道特征:
香农理论:
在使用香农理论时,由于S/N信噪比的比值通常比较大,因此通常使用分贝数(dB)来表示
dB=10log(10)S/N
例如,分贝是30dB,如果带宽是3kHz,则这时的极限数据速率就应该时:
C=Wlog(1+S/N)=3000*9.97≈30Kdps
例:
带宽4kHz,信噪比为,30db,最大速率为40kb/s。
30=10log(10)S/N=》S/N=1000
C=4K*log(2)(1+S/N)=》C≈40kb/s
例:
4种幅度和8种相位组成16种码元,速率为9600kb/s,则信号波特率为2400baud
R=B*log(2)N=B×log(2)16=9600=》B=2400