从右往左0b111=1*20+1*21+1*22=1+2+4
从右往左0111=1*80+1*81+1*82=1+8+64
从右往左0x111=1*160+1*161+1*162=1+16+256
规则:将该数不断除以2,直到商为0为止,然后将每部得到的余数倒过来
规则:将该数不断除以8,直到商为0为止,然后将每部得到的余数倒过来
规则:将该数不断除以16,直到商为0为止,然后将每部得到的余数倒过来
规则:从右往左,将二进制每3位一组,转成对应的八进制
0b11(3)010(2)101(5)=>0325
规则:从右往左,将二进制每4位一组,转成对应的十六进制
0b1101(D)0101(5)=>0xD5
规则:从右往左,将八进制每1位,转成对应的3位二进制
02(010)3(011)7(111)=>0b0010011111
规则:从右往左,将十六进制每1位,转成对应的4位二进制
02(0010)3(0011)B(1011)=>0b001000111011
移码:在补码的基础上,符号位取反
1零操作数检查
2对阶操作
3尾数加(减)运算
4规格化及舍入处理。
以前电脑少,需要定制,所以指令都很复杂
现在电脑多了,需要通用,所以精简
概念:流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。
各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度
以上例子k:分几段n:指令数流水线周期是2
计算流水线吞吐率的最基本的公式如下:
流水线的效率是指流水线的设备利用率。在时空图上,流水线的效率定义为n个任务占用的时空区与k个流水段总的时空区之比
虚拟内存:主存+辅存
试题
根据总线所处的位置不同,总线通常被分成三种类型,分别是:
内部总线:芯片与处理器之间
系统总线:CPU、主存、I/O设备各大部件之间的信息传输线
控制总线:传输数据地址总线:内存超过4G用64位的系统数据总线
外部总线:微机和外部设备之间
通讯总线:用于计算机系统之间或与其他系统之间的通信。
一个编码系统的码距是整个编码系统中任意(所有)两个码字的最小距离。例:
1.在一个码组内为了检测e个误码,要求最小码距d应该满足:d=e+1
2.在一个码组内为了纠正t个误码,要求最小码距d应该满足:d>=2t+1
等待需要有io或者外设的输入,就绪则是等待cpu的调度
用来表示任务并行或串行执行关系,任务之间顺序关系
同步和互斥是操作系统中用于管理多个任务对共享资源的访问的概念。
同步是指多个任务可以并发执行,但在某些情况下需要进行协调和等待。通过信号量(semaphore)、条件变量(conditionvariable)等机制来实现。
临界资源是指多个任务需要以互斥方式访问的共享资源。
临界区则是指程序中对临界资源进行操作的那段代码。
信号量:是一种特殊的变量
因此,同步和互斥是为了确保对临界资源的正确访问而采取的不同策略。同步主要解决任务之间的协调和通信问题,而互斥则解决多个任务对共享资源访问的争用问题。
P操作(Passeren通过–荷兰语):申请资源,S=S-1,若s>=0,则执行P操作的进程继续执行;若S<0,则置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列。
V操作(Vrijgeven释放–荷兰语):释放资源,S=S+1,若s>0,则执行V操作的进程继续执行;若s<=0,则从阻塞状态唤醒一个进程,并将其插入就绪队列(此时因为缺少资源被P操作阻塞的进程可以继续执行),然后执行V操作的进程继续。
当一个进程在等待永远不可能发生的事件时,就会产生死锁,若系统中有多个进程处于死锁状态,就会造成系统死锁。
死锁四个必要条件:资源互斥,每个进程占有资源并等待其他资源,系统不能剥夺现场资源,进程资源图是一个环路
死锁避免:打破4个条件:有序资源分配法,一般采用银行家算法来避免
银行家算法,就是提前计算出一条不会死锁的资源分配方法,才分配资源,否则不分配资源,相当于借贷,考虑对方还得起才借钱,提前考虑好以后,就可以避免死锁。
死锁计算问题:系统内有n个进程,每个进程都需要R个资源,那么其发生死锁的最大资源数为n*(R-1)。其不发生死锁的最小资源数为n(R-1)+1。
进程是拥有资源的最小单位
线程是独立调度的最小单位
线程可以共享进程的公共数据、全局变量、代码、文件等资源;但不能共享线程独有的资源,如线程的栈指针等表示数据
逻辑地址转为物理地址--计算公式:物理地址=块号*页面大小+页内偏移量
空闲区表法(空闲文件目录)空闲链表法位示图法成组链接法
位示图是利用二进制的一位来表示磁盘中的一个盘块的使用情况。
内存和外设之间的传输控制问题
DMA:专门的控制器来监管,效率较高,主存+外设
一个可用的数据库系统必须能够高效地检索数据。这种高效性的需求促使数据库设计者使用复杂的数据结构来表示数据。由于大多数数据库系统用户并未受过计算机的专业训练,因此系统开发人员需要通过视图层、逻辑层和物理层三个层次上的抽象来对用户屏蔽系统的复杂性,简化用户与系统的交互。
视图层(viewlevel)是最高层次的抽象,描述整个数据库的某个部分。因为数据库系统的很多用户并不关心数据库中的所有信息,而只关心所需要的那部分数据。某些问题可以通过构建视图层实现,这样做除了使用户与系统交互简化,而且还可以保证数据的保密性和安全性。
逻辑层(logicallevel)是比物理层更高一层的抽象,描述数据库中存储什么数据以及这些数据间存在什么关系。逻辑层通过相对简单的结构描述了整个数据库。尽管逻辑层的简单结构的实现涉及了复杂的物理层结构,但逻辑层的用户不必知道这些复杂性。因为,逻辑层抽象是数据库管理员的职责,由管理员确定数据库应保存哪些信息。
物理层(physicallevel)是最低层次的抽象,描述数据在存储器是如何存储的。物理层详细地描述复杂的底层结构。
内模式:定义了数据存放的格式和方式
概念模式:按数据不同内容,分类不同的表
局域网只工作在下面2层:物理层和数据链路层,跨越网络层就不是同一个局域网
基于TCP:
FTP:(数据连接20,用于数据上传,下载)、(控制连接21,用于传输FTP命令和执行信息)
SSH:22
SMTP:25(SMTP服务器开放的端口,用于发送邮件)
HTTP:80(超文本传输协议)
BGP:179
RIP:基于UDP,端口号为520
基于UDP:(UDP端口号为520)
DNS:53(域名解析)
DHCP:服务端端口UDP67,客户端端口68
TFTP:69(简单文件传输协议)
从所涉及的法律法规角度:《中华人民共和国著作权法》《计算机软件保护条例》《商标法》《专利法》
从试题考点分布的角度:保护期限知识产权人确定侵权判断
知识产权:著作权及邻接权;专利权;工业品外观设计权;商标权;地理标志权集成电路布图设计权
感觉媒体:指人们接触信息的感觉形式。如:视觉、听觉、触觉、嗅觉和味觉等。
表示媒体:指信息的表示形式。如:文字、图形、图像、动画、音频和视频等。
显示媒体(表现媒体):表现和获取信息的物理设备。如:输入显示媒体键盘、鼠标和麦克风等;输出显示媒体显示器、打印机和音箱等。
存储媒体:存储数据的物理设备,如磁盘、光盘和内存等。
传输媒体:传输数据的物理载体,如电缆、光缆和交换设备等。
MP3在mpeg-1里面的第三层定义的
有冗余才能压缩
是软考上午题中必考的一个知识点。给出一定的条件,让我们判断属于哪一种开发模型。
典型的软件过程模型有瀑布模型、增量模型、演化模型(原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式化方法模型。
【瀑布模型】
1.定义:将软件生存周期中的各个活动规定为依线性顺序连接的若干阶段的模型,包括需求分析、设计、编码、测试、运行与维护。它规定了由前至后、相互衔接的固定次序,如同瀑布流水逐级下落。
2.适用于:以文档作为驱动、适合于软件需求很明确的软件项目。
3.优点:容易理解,管理成本低;强调开发的阶段性早期计划及需求调查和产品测试。
4.不足:以前很流行,现在被淘汰(有大缺陷):客户必须能够完整、正确、清晰地表达出他们的需要;需求或设计的错误往往是在项目后期才被发现,对于项目风险控制能力较弱,经常延期。
【增量模型】
1.定义:将需求分段为一系列增量产品,每一增量可以分别开发。根据第一个增量,可以快速开发出核心产品。
2.适用于:软件体系结构开放,加入新构件过程简单。
4.不足:如果没有对变更要求进行规划,那么会导致后来增量的不稳定;如果需求不稳定完整,那么会导致重新开发;管理发生的成本、进度和配置的复杂性会超出组织的能力。
【原型模型】
1.定义:快速建立起来的可以在计算机上运行的程序,或仅仅是一个演示界面。
2.适用于:需求不够明确的项目。
3.优点:能快速、低成本地构建原型。
4.不足:必须要求具有技能高水平的原型化人员。
【螺旋模型】
1.定义:瀑布与演化模型的结合,加入风险分析。四象限工作步骤:制定计划、风险分析、实施工程、用户评估。
2.适用于:庞大、复杂并且具有高风险的系统。支持需求的动态变化。
3.优点:提高软件的适应能力;降低了软件开发的风险。
【喷泉模型】
1.定义:以用户需求为动力,以对象作为驱动的模型。具有迭代性和无间隙性。
2.适用于:面向对象的开发方法。
4.不足:各开发阶段是重叠的,不利于项目的管理;严格要求文档,使得审核的难度加大。
【构件组装模型】
1.定义:利用预先包装的构件来构造应用系统。具有许多螺旋模型的特点,本质上是演化模型,需要以迭代方式构建软件。
2.适用于:需要一定的构件模型支持的软件项目。
3.优点:构件组装模型导致软件的复用,提高了开发效率;允许多个项目同时开发,降低了费用,提高了可维护性。
4.不足:构件的引入具有较大的风险;过分依赖于构件,构件的质量影响产品的质量;需要精干的、有经验的分析人员和开发人员,客户的满意度低。
【V模型】
测试贯穿整个过程
【形式化方法模型】
1.定义:建立在严格数学基础上的一种开发方法。
2.适用于:需要生成计算机软件形式化的数学规格说明。
3.优点:易于发现需求的歧义性、不完整性和不一致性;易于对分析模型、设计模型和程序进行验证。
4.不足:需要通过严密的数学演算。
【极限编程XP】
1.四大价值观:沟通、简单、反馈、勇气
2.十二个最佳实践:
【特征驱动开发FDD】
1.FDD角色定义
软件开发中最重要的是人。FDD定义了6种关键的项目角色:项目经理,首席架构设计师,开发经理,主程序员,程序员,领域专家
领域专家作为关键的项目角色正是敏捷宣言中“业务人员同开发人员紧密合作”的体现。
2.核心过程
3.最佳实践:领域对象建模、根据特征进行开发、类的个体所有、组成特征小组、审查、定期构造、配置管理、结果的可见性。
【并列争球法Scrum】
Scrum是一个用于开发和维持复杂产品的框架,是一个增量的、迭代的开发过程。
1.Scrum的五个活动:产品待办事项列表梳理、Sprint计划会议、每日Scrum会议、Sprint评审会议、Sprint回顾会议
2.Scrum的5大价值观
【水晶方法Crystal】
适合于一个小团队来进行敏捷开发,人数在6人以下为宜。
七大体系特征:(1)经常交付(2)反思改进(3)渗透式交流(4)个人安全(5)焦点(6)与专家用户建立方便的联系(7)配有自动测试、配置管理和经常集成功能的技术环境
【开放式源码】
【自适应软件开发AdaptiveSoftwareDevelopmentASD方法】核心是三个非线性的、重叠的开发阶段:猜测、合作与学习。
结构化法:比较固化-逐渐被淘汰
主流:面向对象
类封装了信息和行为,是面向对象的重要组成部分。类可以分为三种类型:实体类、边界类和控制类。
①实体类映射需求中的每个实体,实体类保存需要存储在永久存储体中的信息。实体类是对用户来说最有意义的类,通常采用业务领域术语命名,一般来说是一个名词,在用例模型向领域模型转化中,一个参与者一般对应于实体类。
②控制类是用于控制用例工作的类,一般是由动宾结构的短语(“"动词+名词”或”名词+动词”)转化来的名词。控制类用于对一个或几个用例所特有的控制行为进行建模,控制对象通常控制其他对象,因此它们的行为具有协调性。
③边界类用于封装在用例内、外流动的信息或数据流。边界类是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。边界对象将系统与其外部环境的变更隔离开,便这些变更不会对系统其他部分造成影响。
可分为下列的4个层次进行。
(1)算法层:测试类中定义的每个方法。
(2)类层:测试封装在同一个类中的所有方法与属性之间的相互作用。
(3)模板层:测试一组协同工作的类之间的相互作用。
(4)系统层:把各个子系统组装成完整的面向对象软件系统,在组装过程中同时进行测试。
是一种基于程序控制流的复杂性度量方法。McCabe复杂性度量又称环路度量,其计算公式为:V(g)=m-n+2,其中m:marginn:node
CMM:能力成熟度模型,是指软件开发的成熟度。CMMI是由CMM发展而来
用来辅助软件的项目管理活动。通常项目管理活动包括项目的计划、调度、通信、成本估算、资源分配及质量控制等。
一个项目管理工具通常把重点放在某一个或某几个特定的管理环节上,而不提供对管理活动包罗万象的支持。
项目管理工具具有以下特征:
(1)覆盖整个软件生存周期;
(2)为项目调度提供多种有效手段;
(3)利用估算模型对软件费用和工作量进行估算;
(4)支持多个项目和子项目的管理;
(6)对项目组成员和项目任务之间的通信给予辅助;
(7)自动进行资源平衡;
(8)跟踪资源的使用;
(9)生成固定格式的报表和剪裁项目报告。成本估算工具就是一种典型的项目管理工具。
对象类(实体类、边界类、控制类)抽象封装继承与泛化多态接口消息组件模式和复用
面向对象分析的目的是为了获得对应问题的理解,确定系统的功能、性能要求。
面向对象分析包含5个活动,即认定对象、组织对象、描述对象间的相互作用、定义对象的操作和定义对象的内部信息。
1、算法层:测试类中定义的每个方法,相当于传统软件测试中的单元测试。
2、类层:测试封装在同一个类中的所有方法与属性之间的相互作用。可以认为是面向对象测试中所特有的模块(单元)测试。
3、模板层:也称为主题层,测试协同工作的类或对象之间的相互作用。相当于传统软件测试中的子系统测试。
4、系统层:把各个子系统组装成完整的面向对象软件系统,在组装过程同时进行测试。
方法重载:是通过静态绑定机制实现多态。在编译时,根据方法调用时传递的参数类型和数量来确定具体是调用哪个重载方法。方法重载是一种静态多态,也称为编译时多态。
方法覆盖:覆盖通过动态绑定机制实现多态。属于运行时多态,子类重新定义父类中已定义的方法
里氏替换原则表明,在软件中将一个基类对象替换成它的子类对象时程序将不会产生任何错误和异常。反过来则不成立
即:如果一个软件实体使用的是一个子类对象,那么它不一定能够使用基类对象。例如:我喜欢动物,那我一定喜欢狗,因为狗是动物的子类;但是,我喜欢狗不能据此断定我喜欢所有的动物。
里氏替换原则是实现开闭原则的重要方式之一,由于在使用基类对象的地方都可以使用子类对象,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型用子类对象来替换父类对象。
关系:依赖关联泛化实现
静态比较,固定;
案例分析-大题
解题技巧:数据流平衡原则
事务(transaction)指一组SQL语句;
回退(rollback)指撤销指定SQL语句的过程;
提交(commit)指将未存储的SQL语句结果写入数据库表;(执行成功写入数据库)
保留点(savepoint)指事务处理中设置的临时占位符(placeholder),可以对它发布回退(与回退整个事务处理不同)。
工作步骤:1抽象数据2设计局部视图3合并取消冲突4修改重构消除冗余
考用例与用例之间的关系
泛化==继承
状态图:也是动态图:描述的是状态的变迁,以状态为节点;箭线:代表的是事件
软件设计是把许多事物和问题进行抽象,并且需要不同层次和角度的抽象,所以软件设计的基本原则之一是抽象;
软件设计应当模块化,也就是说,软件应在逻辑上分割为实现特定的功能和子功能的部分;
软件设计还应该遵循信息隐蔽(InformationHiding),即包含在模块内部且其他模块不可访问的内容对其他模块来说是透明的。
信息隐蔽意味着有效的模块性能能够通过定义一套独立的模块来实现,这些模块相互之间的通信仅仅包括实现软件功能所必需的信息。
封装是手段,它的目的是要达到信息隐蔽。
根据考试大纲,本章要求考生掌握以下几个方面的知识点。
(1)数据结构设计:线性表、查找表、树、图的顺序存储结构和链表存储结构的设计和实现。
(2)算法设计:迭代、穷举搜索、递推、递归、回溯、贪心、动态规划、分治等算法设计。
从历年的考试情况来看,本章的考点主要集中以下方面。
在数据结构设计中,主要考查基本数据结构如栈,二叉树的常见操作代码实现。
在算法设计中,主要考查动态规划法、分治法、回溯法、递归法、贪心法。
二维数组,第一个称为行下标,第二个称为列下标
在计算机中存储一个矩阵时,可使用二维数组。如果一个矩阵的元素绝大部分为零,则称为稀疏矩阵。
若直接用一个二维数组表示稀疏矩阵,则会因存储太多的零元素而浪费大量的内存空间。
在稀疏矩阵中,有一种情况非常常见,即稀疏矩阵内部存在对称性。这样,我们可以采用一维数组来表示它们,这也常称为压缩存储
前序遍历顺序:根节点--左子树一右子树,根左右
中序遍历顺序:左子树-根节点-右子树,左根右
后序遍历顺序:左子树--右子树-根节点,左右根
顾名思义就是分而治之的意思。就是把一个复杂的问题拆分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
例子:二分查找法
可以系统的搜索一个问题的所有解或任一解。回溯法通常涉及到对问题状态的深度优先搜索,在搜索过程中,算法尝试一步步地构建解决方案,每次决策都会将问题状态转移到下一步,并检查当前状态是否满足问题的要求。如果当前状态满足问题要求,则继续向下搜索;如果不满足要求,则回溯到上一个状态,并尝试其他的决策。
总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,它所做出的仅仅是在某种意义上的局部最优解。
贪心法是一种求解问题的策略,其核心思想是在每一步选择中都采取当前状态下最优的选择,从而希望最终达到全局最优解。
贪心法通常适用于满足「最优子结构]和「贪心选择性质]的问题。
贪心法体现:Djikstra(迪杰斯特拉)算法,构造最小生成树的Prim(普里姆)算法和Kruskal(克鲁斯卡尔)算法
此算法可以称为“加点法”,每次迭代选择代价最小的边对应的点,加入到最小生成树中。算法从某一个顶点s开始,逐渐长大覆盖整个连通网的所有顶点。
此算法可以称为“加边法”,初始最小生成树边数为0,每迭代一次就选择一条满足条件的最小代价边,加入到最小生成树的边集合里。
算法目的:将一个大的任务拆分成若干个小的任务逐个解决来完成拆分之前总任务的效果。
算法过程1.把求解的问题分成若干个子问题2.对每个子问题求解,得到子问题的局部最优解3.把子问题的解局部最优解合成原来问题的一个解
该算法存在的问题1.不能保证求得的最后解是最佳的2.只能求满足某些约束条件的可行解的范围
将待求问题划分为若干个子问题,按划分的顺序求解子阶段问题,前一个子问题的解,为后一个子问题的求解提供了有用的信息(最优子结构)。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其它局部解。依次解决各个子问题,最后求出原问题的最优解
通常适用于具有「最优子结构]和「重叠子问题]性质的问题。
例子:0/1背包问题
分数背包
即部分背包问题,物品可选择部分或全部放进背包,直至装满背包,通过贪心算法求解可将放入单位价值最大的物品优先放入背包,以实现背包物品价值的最大化;
0-1背包
指物品整体放入或不放入背包,因此不一定能完全装满背包,采用贪心算法可以取得局部最优解,但不一定是全局最优解;
旅行商问题
是指旅行商要到若干个城市旅行,每访问一个城市后都会回到最初开始的城市,用贪心法不一定能求得最优解;
最长公共子序列
用贪心法也不一定能求得最优解
二分查找法的平均查找长度:每个元素的查找次数相加/除以元素总数。
查找的次数=每一层的层数×每一层的结点个数,上图即是1x1+2x2+3x4+4x5=37,则查找成功的平均查找长度为37/12
注意:当计算查找失败的平均长度时,层数需要依次减1,即原先第四层变为第三层,然后进行查找失败的次数的计算,即是3x3+4x10=49(以上算式中“x”前面的为层数,后面为该层的结点数),则对应的查找失败的平均查找长度为49/13
冒泡排序(稳定):基本有序,且数据量较小时。
插入排序(稳定):基本有序,且数据量较小时。
希尔排序(不稳定):当数据量中等时适用,数据越有序,越高效,希尔是对插入排序的一种优化。
选择排序(不稳定):跟数据是否有序无关,数据量较小时适用。
关键字序列构造二叉排序树的基本过程是,若需插入的关键字大于树根,则插入到右子树上,若小于树根,则插入到左子树上,若为空树,则作为树根结点。
回溯法(深度优先搜索)作为最基本的搜索算法,其采用了一种“一只向下走,走不通就掉头“的思想(体会”回溯”二字),相当于采用了先根遍历的方法来构造搜索树。
事务型数据库容易形成信息孤岛,而主题数据库不容易形成”信息孤岛”
一般争议处理的流程:先找主管行政管理部门进行仲裁,仲裁不成功再进行诉讼
系统初始化过程可以分为3个主要环节,按照自底向上、从硬件到软件的次序依次为:片级初始化、板级初始化和系统级初始化。
系统初始化:该初始化过程以软件初始化为主,主要进行操作系统的初始化
逆波兰表达式是一种后缀表达式,所谓后缀就是指算符写在后面。
平常使用的算式则是一种中缀表达式,如(1+2)*(3+4)。该算式的逆波兰表达式写法为((12+)(34+)*)。
逆波兰表达式主要有以下两个优点:去掉括号后表达式无歧义,上式即便写成12+34+*也可以依据次序计算出正确结果。
适合用栈操作运算:遇到数字则入栈;遇到算符则取出栈顶两个数字进行计算,并将结果压入栈中。
编译程序中语法分析器接受以单词为单位的输入,并产生有关信息供以后各阶段使用。
语法分析技术:算符优先法、LR分析法和递归下降法
LR分析法主要有SLR(1)、LR(0)、LR(1)和LALR(1)等4种,
其中LR(1)的分析能力最强,LR(0)的分析能力最弱。
软件开发小组的沟通路径受到小组组织形式和规模的影响。若任意小组成员之间均可能有沟通路径,则可用完全连通图来对开发小组的沟通路径建模,最多的沟通路径为完全连通图的边数,即n个成员的开发小组的沟通路径是n(n-1)/2,因此8个成员的开发小组的沟通路径有28条
是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品,主要用于防御针对网络应用层的攻击,像SQL注入、跨站脚本攻击、参数篡改、应用平台漏洞攻击、拒绝服务攻击等。流氓软件已经处于系统内部了,无法有效防止。
给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(HuffmanTree)。
哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。哈夫曼树又称最优树
特点:哈夫曼树只有度为0和2的结点,包含n棵树的森林要经过n-1次合并才能形成哈夫曼树,共产生n-1个结点,所以包含n个叶子结点的哈夫曼树中共有n+n-1=2n-1个结点
结点的带权路径长度为:从根结点到该结点之间的路径长度与该结点的权的乘积
树的带权路径长度规定为:所有叶子结点的带权路径长度之和
CPU强调通用性,需要处理各种数据类型,又要进行逻辑判断进行大量的分支跳转和中断的处理。因此CPU内部结构异常复杂。
CPU利用较高的主频和高速缓存来提升执行指令的速度
GPU面对的是类型高度统一、相互无依赖的大规模数据和不需要被打断的纯净计算环境。
GPU是一种单指令多数据流(SingleInstructionMultipleData,SIMD)架构,特点是比CPU包含更多的计算单元和更简单的控制单元。
无向完全图:结点为n的边数为:nx(n-1)/2
有向完全图:结点为n的边数为:nx(n-1)
有向完全图与无向完全图的区别是,有向完全图的两个结点可以连接两条边。
简要的描述了一份较长的信息或文件,它可以被看作一份长文件的“数字指纹”。用于创建数字签名,对于特定的文件而言,信息摘要是唯一的。不同的文件产生的信息摘要也是不一样的。
常见的算法有MD5和SHA,可以用来保证数据的完整性,防止发送的报文被篡改。