软件设计师(中级)历年真题与知识点总结(更新中…)

目录

  • 前言
  • 指令系统和计算机体系结构
    • CPU
    • 流水线
    • 其他
  • 输入输出系统
    • DMA
    • 中断
    • 其他
  • 系统性能测评和可靠性基础
  • 计算机基本工作原理
    • 数据校验
  • 信息安全和病毒防护
    • 安全
    • 病毒
    • 加密
    • 防火墙
  • 知识产权
  • 结构化分析和设计
  • 文法分析
  • 程序设计语言基本概念
  • 汇编、编译、解释系统
  • 进程管理

前言

整理不易,请多多支持笔者,谢谢

指令系统和计算机体系结构

CPU

计算机执行指令的过程中,需要由CPU的控制器产生每条指令的操作信 并将信 送往相应的部件进行处理,以完成指定的操作。

CPU的运算器只能完成运算,而控制器用于控制整个CPU的工作。

CPU 访问存储器时,被访问数据一般聚集在一个较小的连续存储区域中。若一个存储单元已被访问,则其邻近的存储单元有可能还要被访问,该特性被称为空间局限性

程序的局限性:时间和空间。时间局限性是指如果程序中的某条指令一旦被执行,则不久的将来该指令可能再次被执行。

RISC (Reduced Instruction Set Computer,精简指令集系统计算机)

  1. 指令长度固定、指令种类尽量少
  2. 寻址方式比较单一,多寄存器寻址
  3. 增加寄存器数目以减少访存次数
  4. 用硬布线电路实现指令解码,快速完成指令译码

CISC(Complex Instruction Set Computer,复杂指令集系统计算机)

CPU 在执行指令的过程中,会自动修改程序计数器的内容,以使其保存的总是将要执行的下一条指令的地址。

计算机在一个指令周期的过程中,为从内存读取指令操作码,首先要将程序计数器的内容送到地址总线上。

CPU 执行指令的过程中,会自动修改 PC 的内容,PC 是程序(指令)计数器,用来存放将要执行的下一条指令。

指令寄存器(IR)用于存放当前从主存储器读出的正在执行的一条指令。指令寄存器的位数取决于指令字长。

指令译码器(ID)对指令中的操作码字段进行分析和解释。

地址寄存器(AR),不是我们常用的 CPU 内部部件,其作用是是用来保存当前 CPU所要访问的内存单元或 I/O 设备的地址。

累加器(AC)全称累加寄存器,是一个通用寄存器。其功能是,当运算器的算术逻辑单元(ALU)执行算术或逻辑运算时,为 ALU提供一个工作区。累加寄存器暂时存放 ALU 运算的结果信息。

在程序运行过程中,CPU 需要将指令从内存中取出并加以分析和执行。CPU 依据指令周期的不同阶段来区分在内存中以二进制编码形式存放的指令和数据。

指令和数据是都存储在内存中,传统计算机 CPU在执行过程中根据指令周期的不同阶段来区分是指令还是数据,取指周期取出的是指令,执行周期取出的是数据。

CPU访问速度:通用寄存器 > Cache > 内存 > 硬盘

三总线结构的计算机总线系统由数据总线、地址总线和控制总线组成。

程序计数器、指令寄存器和指令译码器都是 CPU 中控制单元的部件,加法器是算术逻辑运算单元的部件。

(1+2+3+1)+7*3=28

如果流水线出现断流,加速比会明显下降;要使加速比和效率最大化应该对流水线各级采用相同的运行时间;流水线釆用异步控制并不会给流水线性能带来改善,反而会增加控制电路的复杂性。

其他

VLIW:(Very Long Instruction Word,超长指令字)一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度。

移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:

  1. 左移(<<)
  2. 带符 右移/算术右移(>>)
  3. 无符 右移/逻辑右移(>>>)

在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移 n 位就相当于乘以 2 的 n 次方。

在机器指令的地址字段中,直接指出操作数本身的寻址方式称为立即寻址

例如:MOV AX, 1234H ;
给AX寄存器赋值为1234H。指令中地址码字段直接给出操作数本身,而不是其访存地址,不需要访问任何地址的寻址方式被称为立即寻址。

Flynn 主要根据指令流和数据流来分类,分为四类:

  1. 单指令流单数据流机器(SISD)
  2. 单指令流多数据流机器(SIMD)
  3. 多指令流单数据流机器(MISD)
    MISD 是采用多个指令流来处理单个数据流。在实际情况中,采用多指令流处理多数据流才是更有效的方法。因此MISD 只是作为理论模型出现,没有投入实际应用。
  4. 多指令流多数据流机器(MIMD)

若某计算机字长为 32 位,内存容量为 2GB,按字编址,则可寻址范围为512M

内存容量 2GB=2x1024x1024x1024x8位,按字编址时,存储单元的个数为2x1024x1024x1024x8/32=512x1024x1024,即可寻址范围为 512MB。

存储上的 k 是1024,速度上的 k 是1000,注意区分。

输入输出系统

DMA

直接主存存取(Direct Memory Access,DMA)是指数据在主存与I/O设备间(即主存与外设之间)直接成块传送。

某机器字长为 n,最高位是符 位,其定点整数的最大值为2(n-1) -1

机房安全属于物理安全,入侵检测属于 络安全,漏洞补丁管理属于系统安全,数据库安全是应用安全。

Web 服务器是为一种为公共 络提供 Web访问的服务器; 络管理服务器和入侵检测服务器是管理企业内部 和对企业内部 络中的数据流进行分析的专用设备,一般不对外提供访问;而财务服务器是一种仅针对财务部门内部访问和提供服务的设备,不提供对外的公共服务。

病毒

常见的蠕虫病毒有红色代码、爱虫病毒、熊猫烧香、Nimda 病毒、爱丽兹病毒、欢乐时光等。

冰河是木马软件,主要用于远程监控,冰河木马后经其他人多次改写形成多种变种,并被用于入侵其他用户的计算机的木马程序。

CIH为系统病毒。

X 卧底是新近产生的、通过木马形式传播、目标为智能手机的病毒。

震 (Stuxnet)病毒是一种破坏工业基础设施的恶意代码,利用系统漏洞攻击工业控制系统,是一种危害性极大的蠕虫病毒

引导区病毒破坏的是引导盘、文件目录等。

宏病毒破坏的是OFFICE文件相关。

木马的作用一般强调控制操作。木马程序的客户端运行在攻击者的机器上。

蠕虫病毒可以利用漏洞主动攻击。

计算机病毒具有隐蔽性、传染性、潜伏性、触发性和破坏性等特征。

加密

公开密钥加密(非对称加密):ECC、DSA 和 RSA。
共享密钥加密(对称加密),常见算法有:DES,三重DES、RC-5、IDEA、AES。

用户 A 和 B 要进行安全通信,通信过程需确认双方身份和消息不可否认。A 和 B 通信时可使用数字证书来对用户的身份进行认证;使用数字签名确保消息不可否认。

信息摘要算法(Message-Digest Algorithm,MD5) 是一种摘要算法,经过一系列处理后,算法的输出由四个 32 位分组组成,将这四个 32 位分组级联后将生成一个 128 位散列值。SHA-1也是一种摘要算法。它们不能用于加密数据。利用 文摘要算法生成 文主要的目的是防止发送的 文被篡改

RSA、RC-5(效率比前者高),属于非对称加密算法 RC-5加密算法适合对大量的明文消息进行加密传输。
RSA主要具有数字签名和验签的功能。
IDEA、RC4,属于对称加密算法,只能用来进行数据加密。

在安全通信中,S 将所发送的信息使用S 的私钥进行数字签名,T 收到该消息后可利用S 的公钥验证该消息的真实性。

数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用 HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。

假定用户 A、B 分别在 I1 和 I2 两个 CA 处取得了各自的证书,I1、I2 互换公钥是 A、B 互信的必要条件。

交换私钥是无论什么情况下都绝对不允许发生的情况。本题AB的信任基础应该建立在CA之上。

CA认证,即电子认证服务,是指为电子签名相关各方提供真实性、可靠性验证的活动。证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构。

PKI 体制中,保证数字证书不被篡改的方法是用 CA 的私钥对数字证书签名

防火墙

防火墙通过对流经数据流进行分析和检查,可实现对数据包的过滤、保存用户访问 络的记录和服务器代理功能。

包过滤技术对应用和用户是透明的。

应用级 关防火墙是内部 和外部 的隔离点,它可对应用层的通信数据流进行监控和过滤。

防火墙工作层次越高,工作效率越低,安全性越高。

防火墙区域按照受保护程度从高到低正确的排列次序应为内 、DMZ 和外 。

DMZ (Demilitarized Zone,隔离区)是指非军事化区,也称周边 络,可以位于防火墙之外也可以位于防火墙之内。非军事化区一般用来放置提供公共 络服务的设备,这些设备由于必须被公共 络访问,所以无法提供与内部 络主机相等的安全性。

我国保护计算机软件著作权的两个基本法律文件是《中华人民共和国著作权法》和《计算机软件保护条例》(一法一条例)

凡是供职于某公司,利用公司相关资源进行开发完成的作品,其著作权归公司所有。

甲软件公司受乙企业委托安排公司软件设计师开发了信息系统管理软件,由于在委托开发合同中未对软件著作权归属作出明确的约定,所以该信息系统管理软件的著作权由享有。

目前根据我国法律法规的规定必须使用注册商标的是烟草类商品。

某软件公司参与开发管理系统软件的程序员张某,辞职到另一公司任职,于是该项目负责人将该管理系统软件上开发者的署名更改为李某(接张某工作)。该项目负责人的行为侵犯了张某开发者身份权(署名权)

开发者的身份权,不随软件开发者的消亡而丧失,且无时间限制。

美国某公司与中国某企业谈技术合作,合同约定使用1项美国专利(获得批准并在有效期内),该项技术未在中国和其他国家申请专利。依照该专利生产的产品在中国销售,中国企业不需要向美国公司支付这件美国专利的许可使用费。

以下作品中,不适用或不受著作权法保护的是 D
A.某教师在课堂上的讲课
B.某作家的作品《红河谷》
C.最高人民法院组织编写的《行政诉讼案例选编》
D.国务院颁布的《计算机软件保护条例》

国务院颁布的《计算机软件保护条例》是国家为了管理需要制定的政策法规,故不适用著作权法保护。

结构化分析和设计

结构化设计方法是一种面向数据流的设计方法,与结构化分析方法衔接。在需求分析阶段,结构化分析方法产生了数据流图,而在设计阶段,结构化设计方法将数据流映射为软件系统的模块结构。

数据流图从系统的输入数据流到系统的输出数据流的一连串变换形成了一条信息流。其中的信息流一般情况下包括变换流型和事物流型。不同类型的数据流到程序模块的映射方法不同。一个软件系统往往不仅仅有一种数据流类型。

数据流图(Data Flow Diagram,DFD)建模应遵循自顶向下、从抽象到具体的原则。

对数据流图中的每个基本加工,需要有一个加工规格说明,描述把输入数据流变换为输出数据流的加工规则,但不需要描述实现加工的具体流程。可以用结构化语言、判定表和判定树来表达基本加工。

在结构化分析中,用数据流图描述数据在系统中如何被传送或变换,以及如何对数据流进行变换的功能或子功能,用于对功能建模。当采用数据流图对一个图书馆管理系统进行分析时,读者是一个外部实体。

在结构化分析中,用数据流图对软件功能建模,加工是数据流的一个重要要素,可以用多种方式描述,如流程图、NS盒图等,其中决策树和决策表适于用来表示加工中涉及多个逻辑条件的情况。

数据流图对功能建模,E-R图对数据建模。

结构化设计方法中使用结构图来描述构成软件系统的模块以及这些模块之间的调用关系。结构图的基本成分不包括数据

结构图的基本成分包括:模块、调用、控制。

ERD(实体关系图) 的弱实体是指存在和标识需要依赖于其他实体的实体。
比如成绩需要依赖于某个课程。

在采用结构化开发方法进行软件开发时,设计阶段接口设计主要依据需求分析阶段的数据流图

软件体系结构的各种风格中,仓库风格包含一个数据仓库和若干个其他构件。
数据仓库位于该体系结构的中心,其他构件访问该数据仓库并对其中的数据进行增、删、改等操作。
仓库风格包括数据库系统、黑板系统、超文本系统。
优点:

  1. 解决问题的多方法性
  2. 具有可更改性和可维护性
  3. 有可重用的知识源
  4. 支持容错性和健壮性

缺点:

  1. 测试困难:由于黑板模式的系统有中央数据构件来描述系统的体现系统的状态,所以系统的执行没有确定的顺序,其结果的可再现性比较差,难于测试。
  2. 不能保证有好的求解方案
  3. 效率低
  4. 开发成本高
  5. 缺少对并行机的支持

文法分析

对高级语言源程序进行编译的过程中,有穷自动机(NFA 或 DFA)是进行词法分析的适当工具。

10 个成员组成的开发小组,若任意两人之间都有沟通路径,则一共有45条沟通路径。

任意两人之间都有沟通路径,那么A1与A2、A3、…、A10之间存在9条沟通路径,A2与A1沟通路径已计算,与A3、A4、…、A10之间有8条沟通路径,依次类推,总的沟通路径数为9+8+7+6+5+4+3+2+1=45条沟通路径。

下图所示为一个不确定有限自动机(NFA)的状态转换图,与该NFA等价的DFA 是 C

题目给出的NFA能够识别字符串000,010等,以这两个字符串为例进行分析。与之等价的DFA,也必须能够识别这样的串。A选项不能识别000,B选项不能识别010,D选项不能识别010。只有C选项能够同时识别这两个串。

下图所示为一个不确定有限自动机(NFA)的状态转换图。该 NFA 识别的字符串集合可用正规式 A 描述。

简单算术表达式的结构可以用下面的上下文无关文法进行描述(E 为开始符 ), B 是符合该文法的句子。
E→T|E+T
T→F|TF
F→-F|N
N→0|1|2|3|4|5|6|7|8|9
A.2- -3
4
B.2+ -3*4
C.(2+3) * 4
D.2 *4-3

乔姆斯基(Chomsky)将文法分为 4 种类型,程序设计语言的大多数语法现象可用其中的上下文无关文法描述。

上下文无关文法:形式语言理论中一种重要的变换文法,用来描述上下文无关语言,在乔姆斯基分层中称为 2 型文法。

表达式采用逆波兰式表示时,利用进行求值。

己知文法 G: S→A0|B1,A→S1|1, B→S0|0,其中 S 是开始符 。从 S 出发可以推导出某些 0 和 1 个数相等的字符串

推导出 1010 的过程为 S→A0→S10→A010→1010,
推导出 0110 的过程为S→A0→S10→B110→0110,
对于 0000、1111、1100、0011 等则推导不出。

算术表达式 a+(b-c)* d 的后缀式是a b c – d * + (-、+、* 表示算术的减、加、乘运算,运算符的优先级和结合性遵循惯例)。

a+(bc-)* d -> a+(bc-d*) -> abc-d*+

L = {anbn|n>=1}中的字符串特点是 a 的个数与 b 的个数相同,且所有的 a 都在 b之前,该集合不是正规集,不能用正规式表示。
正规集可用正规式描述,用有限自动机识别。

程序设计语言基本概念

程序设计语言的基本成分包括数据、运算、控制和传输等。
程序设计语言的控制成分包括顺序、选择和循环三种。

高级程序设计语言不依赖于具体的机器硬件。

程序中常量的值在运行时不能改变。

局部变量的值通常在其生存期内是变化的。

函数 f 和 g 的定义如下图所示。执行函数 f 时若采用引用(call by reference)方式调用函数 g(a),则函数 f 的返回值为28

因为信 量 S1 是一个互斥信 量,表示半成品箱 B1 当前有无工人(生产者)使用,所以初值为 1。
信 量 S5也是一个互斥信 量,表示成品箱 B2 当前有无工人或检验员使用,所以初值为 1。
信 量 S2 表示半成品箱 B1 的容量,故 S2 的初值为n。
当工人 P1 不断地将其工序上加工的半成品放入半成品箱 B1 时,应该先测试半成品箱是否有空位,故工人 P1 使用 P(S2),当工人P2 从半成品箱取一件半成品时,半成品箱 B1 就空出一个空位,故工人 P2 使用 V(S2)释放空间。
同理,信 量 S4 表示成品箱 B2的容量,故 S4 的初值为 m。
当工人 P2 完成一件产品放入成品箱 B2 时,应该先测试成品箱是否有空位,故工人 P2 使用 P(S4),当检验员 P3 从成品箱取一件产品检验时,成品箱 B2 就空出一个空位,故检验员 P3 使用 V(S4)释放空间。

假设系统采用 PV 操作实现进程同步与互斥。若 n 个进程共享两台打印机,那么信 量S 的取值范围为-(n-2)~2

系统采用 PV 操作实现进程同步与互斥,若有 n 个进程共享两台打印机,那么信 量 S初值应为 2。
当第 1 个进程执行 P(S) 操作时,信 量 S 的值减去 1 后等于 1;
当第 2 个进程执行 P(S) 操作时,信 量 S 的值减去 1 后等于 0;
当第 3 个进程执行 P(S) 操作时,信 量 S 的值减去 1 后等于-1;
当第 4 个进程执行 P(S) 操作时,信 量 S 的值减去 1 后等于-2;
……;
当第 n 个进程执行 P(S) 操作时,信 量 S 的值减去 1 后等于 -(n-2) 。
可见,信 量S的取值范围为-(n-2)。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月6日
下一篇 2020年10月6日

相关推荐