软考上午题:

寻址速度高到低:立即寻址,寄存器寻址,直接寻址

操作系统PV,设备管理

数据库

计网:七层模型,子网划分,网络安全(加密)

程序设计语言:有限自动机

软件工程:

面向对象:


外模式面向用户

概念模式面向数据整体逻辑

内模式关心数据在磁盘上的存储

每个实体都要建一张表

2NF 无部分依赖

3NF 无传递依赖

4MF 无多值依赖

数据库设计:

概念设计:转化为E-R图

逻辑设计:E-R转化为关系模式

物理设计:物理存储方法

候选关键字:由一部分属性能推导出所有(A->B B->C)候选关键字为A

包含在任何一个候选关键字中的属性被称为主属性

关系运算中:关系指的是列,元组指的是行

选择特定列:使用投影

选择特定行:使用选择

连接:将两个关系基于某些相关条件合并

数据库隔离级别由低到高:read uncommitted 读未提交,read committed 读已提交,repeatable read 可重复读,serializable 可串行化,用abcd代表他们

a:允许脏读,不可重复读,幻读

b:避免脏读,但仍然允许出现不可重复读,幻读

c:避免了脏读,不可重复读,但仍然会出现幻读

d:彻底避免了各种并发问题

丢失更新:两个事务先后读取同一事务并分别修改,后提交者覆盖了先提交者的修改

REDO:再系统恢复时,重新执行已提交但尚未写入磁盘的事务修改

UNDO:撤销未提交事务的修改

恢复总过程:恢复系统操作

检查点机制:检查点操作

共享锁(读锁,S锁)和共享锁兼容,与排他锁(写锁,X锁)不兼容

数据库管理系统利用日志文件来进行事务故障恢复和系统故障恢复

事务处理过程中,DBMS将事务开始,事务结束,以及数据库操作等等都写入日志文件

当系统正常运行时,按一定的时间间隔,将数据库缓冲区内容写入数据文件


模块通过非正常入口转入其他模块内部

面向对象分析,执行的活动顺序为:认定对象,组织对象,描述对象之间的相互作用,确定对象的操作

需求分析:做什么

设计分析:怎么做

编码:做出来

概要设计:体系结构等大体方面

详细设计,模块内部的算法和数据结构

敏捷与XP

沟通,简单,反馈,勇气

典型实践:结对编程,测试驱动,小型发布,重构,持续集成,代码规范设计

耦合从低到高:无关系,传递简单数据,传递数据结构,传递控制位,访问同一个外部数据,访问同一个全局数据区域,一个模块直接访问另一个模块内部数据

我要的是数据,最怕你动我内部

CMM

初始级:杂乱无章

可重复:管理过程,实践

已定义:文档化,标准化

已管理:质量理解和控制

优化级:定量分析

CMMI连续式表示法分为0-5级,其中0级是未执行,教案上只有1-5级

CMMI中有两条,一条是已管理级,一条是量化管理级

初始级,已管理级,已定义级,定量管理,优化级

瀑布模型是结构化方法中的模型,是结构化的开发

增量模型每次的增量版本都可以作为独立可操作的作品,每次开发一部分功能都要与用户需求确认

V模型,增加了很多轮测试

XP极限编程:高效低风险,测试先行

SCRUM:迭代(固定周期,三个核心角色,每日站会)

开放式源码:虚拟团队

水晶方法:不同项目不同策略

FDD:开发人员分类

ASD自适应:预测,协作,学习


结构图的深度是模块的层次数

详细设计结束之后:不是重点审查的内容是数据流图

详细设计阶段注重于具体的模块功能实现,如算法,数据结构和用户界面

偶然内聚又称病态内聚

改正性维护:识别和纠正软件错误

适应性维护:使软件适应外界环境的变化而修改软件的过程

完善性维护:使用过程中,用户对软件提出的新功能和性能要求

预防性:提高软件的可维护性和可靠性,为改进软件打下良好基础而进行的维护工作

算法层:用于测试类中定义的每个方法

类层:同一个类中所有方法和属性之间的相互作用

模板层:一组协同工作的类之间的相互作用

系统层:把各个子系统组织完成的面向对象的软件系统,在组装方法中进行测试

集成测试:将多个模块组合在一起进行测试,主要是发现模块之间的接口问题

单元测试:针对单个模块进行测试,侧重于模块内部的功能与逻辑

系统测试:对整个系统进行测试,验证系统是否满足需求规格说明书的需求,关注系统整体功能和性能

验收测试:用户进行的测试,用于确认系统是否满足业务需求


编辑器语义分析阶段处理包含变量的表达式的主要目标是:进行类型检查

实体完整性规则要求关系的主键:不能为空值

非对称加密:RSA

对称加密:AES,RC4,MD5

Hash 算法:SHA

内存按字节编址,地址范围为90000H~CFFFFH,现用16K*8bit的芯片构成该内存,需要多少块?

内存地址空间大小:CFFFFH-90000H+1=256KB

现有16K*8bit=16KB的芯片,则需要256/16=16块芯片

时间片轮转调度算法,时间片设置过大将退化为:先来先服务算法

同一时间段内通过某一网络的数量:吞吐量

1NF:属性值不可再分(一个属性值中不可包含多种属性)

2NF:非主属性必须完全函数依赖与主键(不允许非主属性只依赖于主键的一部分:即不能存在部分依赖)

IPv6不包含广播通信类型

网络协议三要素:语法,语义,时序

永恒之蓝漏洞:利用的协议是TCP

风险缓解:降低风险发生的概率或者影响

风险转移:把风险后果转交给第三方承担

风险接受:承认风险存在,不采取措施,自己承担

风险规避:改变计划,从而完全消除风险,如取消项目

摘要长度与报文大小无关,由算法决定而非报文大小

若C类地址每个子网主机数都是30台,则子网掩码为:

C类地址默认主机位为8位,要容纳30台主机,则要满足2^n-2>=30,(减2是因为全0为网络地址,全1为广播地址,都不能分配给主机)

即n=5,那么主机位至少保留5位,网络位为8-5=3位

子网掩码最后一段就是前三位全1,后五位为0,即:11100000,所以子网掩码为255.255.255.224正好30台主机

C/C++程序中有表达式:"start"+1.23414则会在编译时报错,属于静态语义错误

用户程序在用户态下执行系统调用时,CPU会从用户态切换到内核态

系统调用是用户程序向操作系统内核请求服务的唯一入口(即:通过系统调用才能使用内核之中的服务)

CPU在执行时必须从用户态切换到内核态

只有在内核态下才可以执行特权指令,访问内核资源

DRAM集成度高于SRAM

DRAM结构简单,制造成本比SRAM低

主存使用DRAM,缓存使用SRAM

SRAM不需要刷新,速度更快;DRAM需要刷新,速度较慢

SRAM靠触发器锁存数据,不需要定时刷新

DRAM靠电容存储电荷,需要定时刷新


全文件名从根目录开始,无论你在哪里

一个有向图具有拓扑排序序列,则该图的邻接矩阵必定为(稀疏)矩阵

三角矩阵的下三角或者上三角包含非零元素,而其余部分为0

具有拓扑排序序列的有向图通常表示一种:有向无环图

这种图中不是所有顶点之间都有直接连接,因此其邻接矩阵为稀疏的

80端口是HTTP默认使用的端口号

53端口通常被DNS使用,用于将域名解析为IP地址

110端口常用于POP3服务,用于从邮件服务器下载电子邮件的协议

23端口用于Telnet服务,允许远程登录

数据流图:

数据流图中,外部实体属于系统边界之外,不属于系统内部的一部分

在Python字典中,键是唯一的标识符,而且通常不可变

数据库理论中,如果两个函数依赖集的闭包相同,那么它们通常是认定为等价

如:现有两个函数依赖集F,G,若要其等价,则需满足F+=G+

以中断控制方式在CPU与外设之间交换数据的特点不包括:CPU主动查询外设状态(此为轮询方式的特点)

中断控制方式特点:CPU与外设并行工作,及时响应突发事件,需要保存和回复现场

面向对象软件的测试:

算法层:测试类中定义的每个方法

类层:测试封装在同一个类中的所有方法与属性之间的相互作用 (测试类内方法相互作用)

模板层:测试一组协同工作的类之间的相互作用 (测试类与类之间相互作用)

系统层:将各个子系统组装成完整的面向对象软件系统,在组装过程中同时进行测试 (系统完成组装过程进行测试)

关系型数据库的参考完整性约束可以通过(外键)来实现

主键:关系型数据库表中用于唯一标识每一行的属性或属性集

候选键:和主键一样能够唯一标识表中每一行的属性或属性集,与主键类似,候选码也不直接实现参考完整性约束

超键:包含候选码键属性集,候选键是超键的子集

外键:外键是一个表中的属性或属性集,不是该表主键,但对应另一个表的主键

逻辑地址/页面大小=页号

偏移量物理地址=物理块号*页面大小+偏移量

此时页面大小已知为A,逻辑地址为B

页号可得B/A,通过页表得到对应的物理块号C

偏移量=逻辑地址%页面大小,即:B%A

所以偏移量物理地址=C*A+B%A

最快速度挑选出1000个无序元素中前10个最大的元素,最好使用堆排序算法

GRANT 授予用户或者用户组对数据库对象的访问权限

REVOKE 用于撤销之前授予的权限

ipconfig 显示或更新IP配置

traceroute 可以利用ICMP协议跟踪并返回本机访问目标计算机时所经过的所有路由

netstat 用于显示所有活动的网络连接和监听端口

nslookup 用于查询DNS记录

route print 查看本地IP路由表

哈夫曼树:

权值越小越先被构造成子树

UML:

用例图展示用例,参与者以及它们之前的关系

活动图用于描述系统中各种活动的执行顺序

部署图用来面向对象系统的物理方面建模的方法

交互图用于系统的动态方面进行建模

统一过程模型:

起始阶段:专注于初创活动

精化阶段:理解最初的领域范围后进行需求分析和架构演进

构建阶段:关注系统构建

//此处出错-----------------------起始阶段:专注于软件提交方面的工作

大顶堆和小顶堆:

不用画树,大顶堆只要看t[i]>=t[2i+1]和t[i]>=t[2i+2],小顶堆反过来即可

在黑盒测试中,测试者无需关注程序内部逻辑,而是通过输入数据并验证输出结果是否符合预期,核心依据是用户需求

需求规格说明书描述了软件功能,性能要求,用户界面等外界特性,是黑盒的主要依据

在白盒测试中,测试者了解程序的内部结构,实现细节,代码路径,用以设计测试用例验证其正确性

报文摘要:

发送方用哈希函数生成文档的摘要,接收方重新计算摘要并与原始摘要进行比对,此过程无需解密

spooling技术:核心通过共享硬件资源,将原本独占使用的物理设备,共享为多个进程同时使用

补码执行“符号位在内全部取反,再加一”,可以得到其相反数的补码

SSL/TLS 加密传输过程,无法加密邮件本身

S/MIME 接收方公钥加密邮件正文,确保只有接收方私钥可解密

SMTP/POP3 分别为邮件发送协议和邮件接收协议,都没有加密或签名功能

流水线执行公式:

先已知一条指令分为三部分,三部分时间分别为a,b,c,其中c最久,那么执行n条指令需要的时间是:(a+b+c)+(n-1)*c

事务:

脏读,一个事务读取另一个事务未提交的数据,如果另一个事务最终回滚,那么第一个事务读取到的数据就是无效的

事务的ACID原则:原子性,一致性,隔离性,持久性

原子性:事务不可分割,要么成功,要么失败,同甘苦,共进退

一致性:事务执行前后,数据库必须全部满足对所有定义的完整性约束,也就是所需要的一点都不能少

隔离性:并发事务互相隔离

持久性:事务的提交对数据库的改变是永久性的

切换:移动台在通话过程中从一个基站覆盖区移动到另一个基站覆盖区,用来保持通信连续性

VPN:核心功能是在公共网络上建立安全的私有连接,包括数据加密,隧道协议,身份验证

软件危机:指在软件开发和维护过程中遇到的一系列难题和挑战

CMP:片上多处理器,简称多核处理器,核心是将多个独立的处理器核心集成到单一芯片中

操作系统中:当一个进程从运行态变为就绪态时,最可能的原因是:进程运行时间片用完

# 操作系统--阻塞态,终止态,运行态,就绪态

COCOMO 模型主要目的:估算软件项目工作量和成本

传输层:交换机,路由器

网络层:交换机,路由器

数据链路层:网桥

物理层:中继器,集线器,双绞线

TCP的序号单位(其实就是编号单位):字节

结构化分析方法思想:自顶向下逐步分解

对于一棵树,计算度的方法:

假设度为0的叶子节点数为n0,度为1节点数为n1,度为2节点数为n2,度为三节点数为n3,度为4节点数为n4

公式:边的总数=节点总数-1

系统测试的目的:通过与系统的需求定义作比较,发现软件和系统定义不符合或者与之矛盾的地方

CPU对应的存储类别:寄存器

Cache对应的存储类别:缓存

主存对应的存储类别:DRAM

辅存对应的存储类别:硬盘,光盘

面向对象设计不支持分布式继承

方法重载通过动态绑定机制实现多态,编译时,根据方法调用时传递的参数类型和数量来确定具体是调用哪个重载方法,方法重载是一种静态多态,亦称编译时多态

白盒测试:

程序模块中所有独立路径至少执行一次

所有逻辑判断中,取真和取假的两种情况至少都能执行一次

每个循环都应在边界条件和一般条件下各执行一次

测试程序内部数据结构的有效性

查找算法的查找成功的平均长度=将 每个元素的查找次数 相加以后 再除以元素种数

例子:一共有8个元素,能一次查找就能命中的有一个元素,两次查找就能命中的有2个元素,3次查找就能命中的有4个元素,4次才能命中的只有一个元素

所以平均长度:(1 + 2 2 + 3 4 + 4)/8=21/8

位示图:

假设计算机系统的字长为a,磁盘容量为b,物理块大小为c,那么位示图大小为b/(a*c),注意统一单位

防火墙不具备病毒防治功能,具备状态检测,代理,包过滤

假设某哈夫曼树有x个节点,对其进行哈夫曼编码,

两个字符构造哈夫曼树,就会多一个节点,三个字符则多两个节点,四个字符则多三个节点

那么我们假设有n个字符构造哈夫曼树,则会多出n-1个节点,及n+n-1=x

可得n=(x+1)/2,一共能得到(x+1)/2个字符的编码

浮点数加减法流程:对接,求尾数和,结果规格化并判溢出/舍入处理,溢出判别

数据库概念结构设计流程:抽象数据,设计局部视图,合并取消冲突,修改重构消除冗余

基于构件开发:利用预先打包的构建来构造应用系统,本质上时演化模型,需要以迭代方式构建软件

甘特图:进度管理工具,清晰描述每个人物从何时开始到何时结束,任务的进展状况以及各个任务的并行性;无法反馈各任务之间的依赖关系,难以确认整个项目的关键

结构化分析方法:自顶向下思想


CPU的基本组成部件不包括系统总线,系统总线:是计算机系统内部各部件之间进行传输信息的一组信号线,位于CPU之外

DRAM使用电容存储信息,且需要周期性进行刷新

阶码和数符:

阶码越长,表示的数的范围越大

尾数越长:表示的精度越高

认证方式安全性较低的是:口令认证

X.509推荐使用的密码算法是RSA

国密SM2采用的公钥密码算法是ECC

数据库审计:针对数据库

包过滤防火墙:针对IP层实现

Web应用防火墙:针对HTTP/Web服务器

入侵检测:收集威胁行为,不能阻止恶意攻击

翻译权:将原软件从一种自然语言文字转换为另一种自然语言文字的权利

优化模块结构时:只根据模块功能确定规模大小,不是适当的处理方法

因为模块的规模大小应该根据多个原则综合确定,如高内聚,低耦合,深度和宽度合理,扇入扇出系数合理,模块规模适中等

栈帧中会存放调用函数时的返回地址,形参变量,局部变量

全局变量存放在程序的静态存储区,位置相对固定,独立的

编译器:运行效率高但可移植性差

解释器:运行效率低但可移植性好

假设,

段号:a,b

页号:c,d

页内地址:e,f

段页式存储管理系统,最多可有2^(a-b+1)个段,每个段最大允许(这里不是均有)有2^(c-d+1)个页

公共耦合:多个模块都访问同一个公共数据环境

单元测试:主要检查如模块接口,局部数据结构,重要的执行路径,出错处理,边界条件

活动图主要用于建模:系统内从一个活动到另一个活动的流程

构件图展现了一组构件之间的组织和依赖,专注于系统的静态实现视图

责任链设计模式:使多个对象都有机会处理请求,这些对象连成一条链,并沿着链传递请求,直到有对象处理它为止

责任链模式 是 行为型对象模式(不是行为型类)

多对多关系转换为一个独立的关系模式R时,R的关键字为各实体关键字的集合

左中右,中序遍历:要n在m之前,即nm

n为m的子孙节点,说子孙节点还是太宽泛了,可能在左可能也在右

且n要在m的左边

一棵m阶的B树中每个节点最多有m棵子树

B+树有k颗子树的非叶节点有k个键

归并排序占用辅助存储空间最多,空间复杂度为O(n)

VLANtag 在OSI 参考模型的:数据链路层实现

Telnet协议,是一种基于TCP的远程登录协议

Mac地址全球唯一,IP地址不是唯一的

这个家伙很懒,什么也没留下