综合题笔记整理

(一)计算机组成原理与体系结构

1.原码的计算方式:转化成二进制,补成七位。最左边那位,正数0,负数1。范围:-127~127

反码的计算方式:正数不变,负数符号位不变,其他位取反范围:-127~127

补码的计算方式:正数不变,负数为反码+1(符号位保持1)-128~127

移码的计算方式:补码的基础上,符号位取反

 

2.浮点数运算

浮点数表示形式为:尾数*基数^指数

两个浮点数相加:对阶时,指数以较大的为准。指数较小的,尾数右移(小数点左移)

 

3.寄存器

计算机分为主机和外部设备。

主机分为CPU和内存。

CPU中存在运算器和控制器两类寄存器。

“指令”相关的,都属于控制器。程序计数器也是一种控制器,它存放的是下一条指令的位置。

 

4.CISC是复杂指令系统(Complex),RISC是精简指令系统(Reduced)

 

5.流水线周期为,一条指令分为多个阶段,其中中耗时最长的那个阶段的周期就是流水线周期。

n条指令执行完需要的时间:流水线周期+(n-1)*一条指令所有阶段的时间相加。

吞吐率:指令数n 除以 n条指令执行完需要的时间

流水线加速比:n*一条指令所有阶段的时间相加/n条指令执行完需要的时间,也就是优化前时间除以优化后时间(加速比越大越好)

 

6.cache工作与CPU和内存间(主机中),按内容来存取。依据:局部性原理

cache的访问命中率指CPU访问cache时能成功找到内容的概率(若找不到,只能去内存中寻找)

cpu-cache-内存体系的平均周期:cache命中率*cache周期+(1-cache命中率)*内存周期

 

7.ROM是只读存储器(read only),断电时会保存。

RAM是(random access),断电清除。

 

8.内存按字节编址的计算:

B==Byte==字节

bit==位

K=1024

M=1024*1024

1KB=1024B=1024*8bit

共存多少字节怎么算:大-小+1  注意是16进制的减法。借位时高位+16。这里的16进制的数的单位就是字节。

1kB = 1024B所以选项里是几k几k的。算出来还要除以1024(也就是2的十次方)

问至少需要几片芯片:共存字节数/每个芯片的存储容量

 

9.可靠度计算

串联系统:相乘

并联系统:1-(1-R1)(1-R2)...

 

10.海明校验码

1 2 4 8 16 32.。。是校验位。

最高位必位信息位。

如何看某个信息位由哪几个校验位校验:

第7位:7 = 2^2+2^1+2^0

则由4 2 1位的校验码校验

校验位的计算:找出这个校验码与哪几个信息位有关,所有信息位做异或运算(一样取0,不一样取1)

 

软件工程师学习笔记(二)—— 操作系统基本原理

1.进程三态:运行,就绪,等待

就绪态是不会直接回到等待态的。

等待态也不能直接到运行态。

就绪状态和运行态互转的因素:时间片

 

2.pv操作:前置操作v,后置操作p。箭头指向的就是v。

 

3.死锁问题

n个进程,分别需要a1,a2,a3,。。。个进程。

则至少需要a1+a2+。。。+an-n+1个资源,就不会死锁。

 

4.索引文件结构

告诉你一个逻辑块号n,问你这个在什么位置。

直接地址索引有a个,直接先减掉。n-a

一个二级索引块有几个?索引块大小除以每个地址项大小。例如:1024/4=256

若由5个直接索引,2个间接索引。问518号在哪?

5+2*256=517    显然518在二级间接索引的第一个了。

 

5.绝对路径:从父节点开始写。

相对路径:从当前位置的下一个开始写(当前位置不写)

 

6.位示图法

告诉你将n号物理块分配给某文件,在位示图的第几个字中描述。

就这么算:n/32(取整)+1

 

7.内存与外设之间数据传输控制的三种方法:

程序控制:cpu不断询问

中断:外设完成后发中断

DMA方式:DMA控制器监管

 

 

 

4.页面淘汰算法:

FIFO先进先出算法:淘汰最先进入的

LRU最近最少使用算法:淘汰最久没使用的。即队列中有0,又访问到0时,两种算法都会识别到队列中已有的0。但LRU会将0标记位最先使用,免于下次淘汰。

 

5.索引文件结构

间接索引逻辑个数:索引块大小除以地址块大小

碰到的题目里面都是1024/4=256个

直接索引一个就算一个

 

软件工程师学习笔记(三)—— 数据库系统

 1.数据库设计各个阶段产物

需求分析阶段:根据数据流图和数据字典生成需求说明书

概念设计阶段:生成ER模型

逻辑结构设计:根据规范化理论生成关系模式

物理设计:生成表

 

2.数据字典的组成

数据流,数据项,数据存储,基本加工

 

3.数据流图的组成

数据流(箭头),加工(圆角块),数据存储(半框),外部实体(方框)

 

2.ER模型

方框是实体,椭圆是属性,菱形是关系

 

3.找候选键的方法

把依赖图画出来(画的时候注意,AB---->C,表示AB加起来才能推出C)找入度为0的属性,尝试遍历全图。

若AB联合起来才能推出全图,则候选键为AB。若A或B都能推出全图,则候选键为A和B。

若有多个候选键,则选其中之一,则确定为主键。

 

4.三大范式:

第一范式:满足每个项都是原子项则满足第一范式。

第二范式:不存在部份依赖则满足第二范式。部分依赖:码包含多个属性,非码属性里面有的只依赖码中的部分属性。优化方法:把这个码-非码组单独成表,原表剔除这个非码。

第三范式:不存在传递依赖则满足第三范式。若非码属性中还存在依赖,则说明存在传递依赖。

 

5.伪传递律(X—Y,WY—Z,则XW—Z)

WY能推出Z可不代表WX能推出Z哦。

 

6.据库体系三层模式

外模式——视图,内模式——存储文件,模式——基本表

 

7.给关系和关系表达式填充SQL

两个三角(自然连接)要去重,乘号(笛卡尔积)不去重

 

8.共享锁(读锁)和排他锁(写锁)

读锁上可以且只能叠加读锁,写锁上不能叠加任何锁

 

9.分布式数据库:

分片透明:操作全局,最高层次的透明

复制透明:不用关心各个节点复制情况

位置透明:不必知道操作的数据存放在何处

逻辑透明:不用关心支持哪种数据库,最低级的透明

 

分布式数据库特点:

分布式:数据存储位于多个不同节点

逻辑相关性:数据逻辑相关联

场地透明:使用数据时不需要指明数据位置

场地自治:每一个单独的节点能够执行局部应用请求

 

10.事务四个属性:

原子性:事务是原子的,要么都做要么都不做

一致性:交易场景,A减了100元,B必须增加100元。

隔离性:多个事务之间隔离,A提交前,B看不见A的结果

持久性:一旦事务提交,即使数据库崩溃,更新也永久有效。

 

软件工程师学习笔记(五)—— 系统安全分析与设计

1.数字证书(目的:用户身份认证)

CA证书授权中心发行。包含主体公钥信息,CA的签名。

用户获取申请方的数字证书后,通过CA的公钥验证CA的签名,确认数字证书的有效性,验证申请方的真伪。

 

2.对称加密,又称共享密钥加密,包括DES,三重DES,RC-5,IDEA,AES。

非对称加密,又称公开密钥加密,包括:RSA,ECC,DSA

 

3.MD5是摘要算法,对任意长度的输入计算得到的结果长度为128位。

 

4.重放攻击:截获某次合法数据拷贝,重新发送。解决方法:加时间戳。

 

5.防火墙技术

网络级:层次低,效率高,不会开箱

应用级:层次高,效率低,会开箱

 

6.加密技术总结

要求:一封邮件要求加密传输,发送者不可抵赖,第三方截获无法篡改。

发送方要做的事:

将邮件用对称加密进行加密,对称加密密钥为K1。

将K1用接收方公钥加密。

将邮件形成摘要,用自己的私钥加密。

接收方要做的事:

用自己的私钥解出对称密钥K,再用K打开邮件。

用发送方的公钥解开摘要(发送方不可抵赖)。将摘要与实际收到的邮件形成的摘要进行对比(防止第三方篡改)。

 

软件工程师学习笔记(六)—— 数据结构与算法

 1.邻接矩阵存储时间复杂度:n^2

 

2.循环单链表表示队列,入队列和出队列都不需要遍历链表。

单链表表示栈,入栈和出栈都不需要遍历链表。

 

3.构造排序树的关键码序列:不越层即可。

 

4.二分查找:(左+右)/2  舍弃余数

若不符合,舍弃当前该数

 

5.排序算法:

平均时间复杂度:堆,快速,归并是nlog2n。希尔是n^1.3。其他都是n或n+k。基数排序n*k

最坏情况下时间复杂度:堆排序和归并排序是nlog2n(最优秀)

 

软件工程师学习笔记(七)—— 程序设计语言语言处理程序基础

1.编译方式各阶段的特点

词法是拼写,语法是结构,语义是含义

记号流(词法分析输出),源程序(词法分析的输入),分析树(语法分析输出)

 

2.表达式的后缀式

先根据计算方式画成树,然后后序遍历

 

3.各种语言

Fortran:科学计算,执行效率高

Dascal:为教学而开发,执行效率高

Lisp:函数式程序语言

Prolog:逻辑推理,简洁,适用于数据库和专家系统

 

4.编译方式生成目标程序,解释方式不生成

 

5.语法制导翻译是静态语义分析

软件工程师学习笔记(八)—— 法律法规

1.保护著作权的两个基本法律文件

《中华人民共和国著作权法》

《计算机软件保护条例》——国务院颁发

 

2.商标权可无限期拥有,其他都有期限

 

3.软件著作权默认归公司(除特别商议)常考!

 

4.委托创作(著作权默认归创作方)

软件工程师学习笔记(十)—— 软件工程

1.增量模型:管理成本高,第一个可交付版本成本低

瀑布模型:适合需求明确,或二次开发

原型模型:适合需求不明确的情况,不能指导代码优化

演化(迭代)模型:演化原型成为最终产品

螺旋模型:融合多个模型的特点

 

 

2.CMMI模型(两种模型每个阶段干嘛的),

 

 

 

3.软件维护(不包括配置管理工具),

改正性——改正缺陷,适应性——配置,使软件适应数据变化,改善性——用户改需求,满足新的需求,预防性——预先提高可维护性

 

5.耦合程度不取决于模块提供的功能数

耦合类型区分:

1.数据耦合(通过简单参数耦合)

2.公共耦合(很多模块访问同一个环境)

3.外部耦合(一组模块访问同一全局简单变量,且不通过参数表传递)

4.标记耦合(一组模块通过参数表传递信息))

 

6.mccabe计算复杂性(弧数-节点数+2)

自己画图时,开始,输入,语句,if判断都是节点,else不是节点

 

 

9.极限编程XP(简单,用户代表全程配合,迭代周期2周左右)

 

 

11.软件设计原则(信息隐蔽,高内聚低耦合,过程抽象数据抽象),

 

12.内聚类型

过程内聚(各自相关,特定次序执行)

时间内聚(时间因素关联)

顺序内聚(均与同一个功能相关,收尾相接)

逻辑内聚(逻辑相关)

 

13.敏捷开发方法(productbacklog,sprintbacklog,sprint等,不包含refactoring)

 

软件工程师学习笔记(十一)—— 需求工程

1.面向对象设计原则

单一职责,开闭原则等

 

posted @ 2021-11-01 21:32  菅兮徽音  阅读(158)  评论(0编辑  收藏  举报