admin 管理员组文章数量: 887019
链接:1.大纲 2.知识点集合
第一章 计算机基础
第一节 计算机系统基础(计算机组成原理)
- 文件删除要注意当前所在文件位置
- 海明码公式 n+k<=2^k-1 n是数据位,k是校验位(自个位起1为校验位)
在一个码组内,要检测e个误码,要求的最小码距应该满足:d>=e+1;
在一个码组内,要纠正t个误码,要求的最小码距应该满足:d>=2t+1;最小为3
同时纠错检错:d>=e+t+1 - 浮点数能表示的数的范围由阶码的位数决定,精度由尾数的位数决定。
- CISC是复杂指令系统计算机
支持很多种寻址方式。支持的寻址方式通常为5~20 种。指令长度不是固定的,变长的指令增加指令译码电路的复杂性。指令可以对主存单元中的数据直接进行处理。
CISC兼容性强,指令繁多,长度可变,由微程序实现。与主存直接交互。
CISC的主要特点如下:
1)指令系统复杂庞大,指令数目一般为200条以上:
2)指令的长度不固定,指令格式多,寻址方式多。
3)可以访存的指令不受限制。
4)各种指令使用频度相差很大
5)各种指令执行时间相差很大,大多数指令需多个时钟周期才能完成。
6)控制器大多数采用微程序控制。有些指令非常复杂,以至于无法采用硬连线控制。
7)难以用优化编译生成高效的目标代码程序。
RISC是精简指令系统计算机
RISC指令系统的最大特点是:选取使用频率最高的一些简单指令,指令条数少:指令长度固定,指令格式种类少;只有取数/存数指令访问存储器,其余指令的操作都在奇存器之间进行。(指令简单,寄存器多,微程序少)
RISC则指令少,使用频率接近,主要是依靠硬件实现(通用寄存器、硬布线逻辑控制)。
RISC的主要特点如下:
1)选取使用频率最高的一些简单指令,复杂指令的功能由简单指令的组合来实现。
2)指令长度固定,指令格式种类少,寻址方式种类少。
3)只有Load/Store(取数/存数)指令访存,其余指令的操作都在寄存器之间进行。
4)CPU中通用寄存器的数量相当多,
5)RISC一定采用指令流水线技术,大部分指令在一个时钟周期内完成。
6)以硬布线控制为主,不用或少用微程序控制。
7)特别重视编译优化工作,以减少程序执行时间。
VLSI是超大规模集成电路
VLIW是超长指令字 - 中间代码生成、代码优化并不是每个编译器都必需的
- 解释器是解释执行的源代码,编译器是将源代码编译成目标代码。他们最大的区别是程序运行时需要解释器边解释边执行,而编译器则在运行时是完全不需要的。
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快。
解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快。 - 死循环错误属于典型的语义错误,但静态的语义错误可被编译器发现,到程序真正陷入死循环说明编译器并未发现,所以属于动态语义错误。
- 频率是音调,幅度是音高
- 与:&&(左结合性) 有假即假
- 传值调用最显著的特征就是被调用的函数内部对形参的修改不影响实参的值。引用调用是将实参的地址传递给形参,使得形参的地址就是实参的地址。
- 程序设计语言大多数都是2型文法即上下文无关文法
- 表示媒体指的是为了传输感觉媒体而人为研究出来的媒体借助于此种媒体,能有效地存储感觉媒体或将感觉媒体从一个地方传送到另一个地方。如语言编码、电报码、条形码
表现媒体指的是用于通信中使电信号和感觉媒体之间产生转换用的媒体。如输入、输出设备,包括键盘、鼠标器、显示器、打印机等。
表示媒体是为了加工、处理和传输感觉媒体而人为研究、构造出来的一种媒体,它有各种编码方式,如:文本编码、图像编码和声音编码等
表现媒体是指进行信息输入和输出的媒体,如:键盘、鼠标、扫捕仪、话筒和摄像机等输入媒体以及显示器、打印机和扬声器等输出媒体。
感觉媒体是指直接作用于人的感觉器官,使人产生直接感觉的媒体,如:引起听觉反应的声音,引起视觉反应的文本、图形和图像等
存储媒体是指用于存储表示媒体的物理介质,如:硬盘、软盘、光盘和胶卷等。
传输媒体是指用于存储表示媒体的物理介质,如:电缆和光缆等。 - 引用调用是把实参(如'int a)的地址(&a)赋给形参(指针变量比如*b,这时b=&a,即b指向变量a),如果*b(也即a对应的内存空间)发生变化,也就是变量a的值发生了变化。
- 绝对路径由此刻开始的唯一路。文件的全文件名应包括盘符及从根目录开始的路径名;文件的相对路径是从当前工作目录下的路径名,文件的绝对路径名是指目录下的绝对位置,直接到达目标位置。
- 按照Flynn分类法,根据计算机中指令和数据的并行状况可把计算机分成:
单指令流单数据流(SISD)
SISD机器是一种传统的串行计算机,其硬件不支持任何形式的并行计算,所有的指令都是串行执行,并且在某个时钟周期内,CPU只能处理一个数据流。早期的计算机都是SISD机器。传统的计算机包含单个CEU,它从存储在内存中的程序那里获得指令,并作用于单一的数据流。
单指令流多数据流(SIMD)
SIMD是采用一个指令流处理多个数据流。这类机器在数字信号处理、图像处理,以及多媒体信息处理等领域非常有效。Inte1处理器实现的MMXTM、SSE(StreamingSlMDExtensions).SSE2及SSE3扩展指令集,都能在单个时钟周期内处理多个数据单元。也就是说人们现在用的单核计算机基本上都属于SIMD机器。单个的指令流作用于多于一个的数据流上。例如有数据4、5和3、2,一个单指令执行两个独立的加法运算:4+5和3+2,就被称为单指令流多数据流。SIMD的一个例子就是一个数组或向量处理系统,它可以对不同的数据并行执行相同的操作。通过资源重复实现并行性
多指令流单数据流(MISD)
MISD是采用多个指令流来处理单个数据流。在实际情况中,采用多指令流处理多数据流才是更有效的方法,因此MISD只是作为理论模型出现,没有实际应用。用多个指令作用于单个数据流的情况实际上很少见。这种几余多用于容错系统。
多指令流多数据流(MIMD)
MIMD机器可以同时执行多个指令流,这些指令流分别对不同数据流进行操作。最新的多核计算平台就属于MIMD的范畴,例如Intel和AMD的双核处理器。这种系统类似于多个SISD系统。实际上,MIMD系统的一个常见例子是多处理器计算机,如sun的企业级服务器 - 数字语音的采样频率定义为8kHz,语音信号定义的频率最高值为4kHz 。
根据尼奎斯特取样定理:如果取样速率大于模拟信号最高频率的2倍,则可以用得到的样本中恢复原来的模拟信号。 - 词法分析阶段:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词,删掉无用的信息,报告分析时的错误。
语法分析阶段:语法分析器以单词符号作为输入,分析单词符号是否形成符合语法规则的语法单位,如表达式、赋值、循环等,按语法规则分析检查每条语句是否有正确的逻辑结构。
语义分析阶段:主要检查源程序是否存在语义错误,并收集类型信息供后面的代码生成阶段使用,如:赋值语句的右端和左端的类型不匹配。表达式的除数是否为零等 - Linux中只有一个根目录,用"/"表示
- 首先判断符号位(最高位),为0,表示该数为正数,正数的原码、反码、补码不变;为1,则该数为负数,负数的补码为其原码的符号位不变,数值部分的按位取反,然后整个数加1。90H=1001 0000,补码为:10010000原码为1111 0000 其中最高位代表符号位,1110000代表数值,即-112,2X--112,所以X=-56。
- 移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。
- 编译程序的功能是把用高级语言书写的源程序翻译成与之等价的目标程序。编译过程划分成词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成6个阶段目标程序可以独立于源程序运行。解释程序是一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但在运行用户程序时它是直接执行源程序或源程序的内部形式(中间代码)。因此,解释程序并不产生目标程序,这是它和编译程序的主要区别。
- 常用的中间代码的表达形式有语法树、后缀式、三地址代码
- 常见的命名对象有:变量、函数、数据类型。
- MPEG是Moving Picture Expert Group的简称,最初是指由国际标准化组织(ISO)和国际电工委员会(IEC)联合组成的一个研究视频和音频编码标准的专家组。同时MPEG也用来命名这个小组所负责开发的一系列音、视频编码标准和多媒体应用标准。这个专家组至今为止已制定和制定中的标准包括MPEG-1、MPEG-2、MPEG-4、MPEG-7和MPEG-21标准。其中MPEG-1、MPEG-2和MPEG-4主要针对音、视频编码技术,而MPEG-7是多媒体内容描述接口标准,标准中不包含音、视频压缩编码技术。MPEG-21是多媒体应用框架标准。
VCD使用了MPEG-1标准作为其音、视频信息压缩编码方案,而MPEG-2标准中的音、视频压缩编码技术被应用到DVD中。 - 真彩色是指图像中的每个像素值都分成R、G、B三个基色分量,每个基色分量直接决定其基色的强度,这样产生的色彩称为真彩色。
伪彩色图像的每个像素值实际上是一个索引值或代码该代码值作为色彩查找表CLUT(ColorLook-Up Table)中某一项的入口地址,根据该地址可查找出包含实际R、G、B的强度值。这种用查找映射的方法产生的色彩称为伪彩色,直接色的像素值分为红、绿、蓝子域,每一个子域索引一份独立的色彩映射,可改变色彩映射的内容。
矢量是一种既有大小又有方向的量,又称为向量。一般来说,在物理学中称作矢量,例如速度、加速度、力等等就是这样的量。舍弃实际含义,就抽象为数学中的概念--向量。不在计算机中,矢量图可以无限放大永不变形。
位图的基本组成单位是像素点,而矢量图的基本组成单位是图元。 - 两个浮点数对阶的时候要把阶码小的数的尾数右移n位,与阶码大的对齐。
- 程序设计语言的语义分为静态语义和动态语义,其中静态语义分析方法是语法制导翻译,其基本思想是将语言结构的语义以属性的形式赋予代表此结构的文法符号,而属性的计算以语义规则的形式赋予文法的产生式。
- 在 CPU 中,获取指令并进行分析是控制单元的任务
- 单核 CPU通过分时方式可实现对多任务操作系统的支持。
CPU中的运算单元、控制单元和寄存器组通过内部总线连接起来。
CPU 不一定是多核的,单核 CPU和多核CPU都支持多任务操作系统。 - 高速缓冲存储器是存在于主存与CPU之间的一级存储器,由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多,接近于CPU的速度。Cache通常保存着一份内存储器中部分内容的副本(拷贝),该内容副本是最近曾被CPU使用过的数据和程序代码。
- 循环链表的主要优点是从表中任一结点出发都能访问到整个链表。
- 在实现程序语言的编译和解释两种方式中,编译方式下会生成用户源程序的目标代码,而解释方式下则不产生目标代码。目标代码经链接后产生可执行代码可执行代码可独立加载运行,与源程序和编译程序都不再相关。而在解释方式下,在解释器的控制下执行源程序或其中间代码,因此相对而言,用户程序执行的速度更慢。中间代码生成和优化不是编译过程中必需的阶段。对用户源程序依次进行了词法分析、语法分析和语义分析后,原则上就可以产生目标代码了,只是目标代码的质量和效率可能不够高。词法分析时编译或解释用户源程序过程中唯一与源程序打交道的阶段,其主要功能是按顺序分析出源程序的记号。
- Fortran语言(第一个高级程序设计语言,科学计算执行效率高)
Pascal语言(结构化程序设计语言,表达能力强,Delphi)
C语言(通用、结构化程序设计语言,指针操作能力强,高效)
Lisp语言(函数式程序语言,符号处理,人工智能)
C++语言(C语言基础上增加了类机制,面向对象高效)
Java语言(面向对象,中间代码,跨平台,通用的程序设计语言)
Python(面向对象,解释型程序设计语言,通用的脚本语言)
PHP(服务器端脚本语言,制作动态网页)
Ruby(简单快捷、面向对象、脚本语言)Delphi(快速应用程序开发工具,可视化编程环境)
COBOL(数据处理领域最为广泛的程序设计语言,高级编程语言)
PROLOG(逻辑式语言,建造专家系统、自然语言理解、智能知识库等) - 将某高级语言程序翻译为汇编语言形式的目标程序该过程称为编译。
- 光盘格式,其中DVD-RAM和DVD-RW是DVD技术所支持的两种不同的可多次擦除重写的DVD光盘格式CD-R指一次性可写(刻录)CD光盘,而CD-RW指可多次擦除、重写的CD光盘。
- 全相联地址映射:主存的任意一块可以映像到 Cache中的任意一块。(冲突概率最低,访问速度慢,成本高)
直接相联映射:主存中一块只能映像到 Cache 的一个特定的块中。速度要求较高可采用(冲突概率最高,有两块以上的块恰好映射到同一位置时,命中率急剧下降)
组相联的映射:各区中的某一块只能存入缓存的同组号的空间内,但组内各块地址之间则可以任意存放。即从主存的组到Cache的组之间采用直接映像方式在两个对应的组内部采用全相联映像方式。在组间是直接映射,在组内是全相联映射 - Cache是一种介于主存和微处理器(CPU)之间的高速存储器,用于主存和CPU之间的缓冲存储。(数据变换由硬件完成,以提高速度)其命中率必须很高,一般要达到90%~95%以上,才能使访存的速度跟得上CPU的速度。在CPU和Cache之间通常次传送一个字块,字块的长度是一个主存周期内能调出的信息的长度。如果访问Cache不命中,则用从主存中取到的字节代替Cache中较少访问过的字节,即同时送CPU和Cache,下次就可以从Cache中读出需要的信息了。
当cache存储器产生了一次访问未命中之后,相应的数据应同时读入CPU和cache。但是当cache已存满数据后,新数据必须淘汰cache中的某些日数据。最常用的淘汰首法有随机淘汰法、先进先出法(FIFO)和近期最少使用淘汰法(LRU)。因为需要保证缓存在cache中的数据与主存中的内容一致。高速缓存(Cache)对于程序员来说是透明的。 - RISC精简指令系统CPU 中的通用寄存器数量多,一般在 32 个以上,有的可达上千个。
- 脚本语言主要采用解释方式实现。
- 中断响应实现向中断服务程序的过渡。在中断响应周期,CPU要完成以下操作:
(1)发出中断响应信号INTA。
(2)关中断,即将IF位清0。这是因为在响应一个中断的期间不能响应另一个中断。
(3)保护断点和标志寄存器。断点是按正常顺序(即没有中断)应执行的下一条指令的地址。对8086来说,保护断点就是保存CS和IP的内容(压入堆栈)。标志寄存器FR中存放着刚执行指令的一些重要特征,也需要保存起来,以便中断返回时继续使用其中的内容。
(4)查找中断源,转向相应的中断服务程序的入口。 - DMA可以使数据在主存(内存)和I/O设备(外设)之间直接传送,在传送的过程中不用CPU的干预,由DMA的控制器控制总线完成数据的传送。
- 相联存储器是一种按存储内容来存储和访问的存储器,不属于按寻址方式划分的存储器。
- 设块长为512B,每个块号占3B,一个物理块可放:512/3=170个目录项,也即:
一个一级索引可存放的文件大小为:170x512=87040B.
一个二级索引可存放文件的大小为:170x170x512=148x105B。
一个三级索引可存放文件的大小为:170x170x170x512=251x107B - 原码表示是用最左边的为表示符号,0正1负,其余的7位表示数的绝对值,|-128|=128,用二进制表示时需要8位,所以机器字长为8位时,采用原码不能表示-128。对于负数反码是数的绝对值取反也不能表示-128。补码表示与原码和反码相同之处的最高位用0表示正1表示负,补码10000000的最高位1既表示其为负数也表示数字1,从而可以表示出-128。
- 磁盘容量分为格式化容量和非格式化容量:
非格式化: 面数 * (磁道数/面) * 内圆周长 * 最大位密度 (面道周密)
格式化容量= 面数 * (磁道数/面) * (扇区数/道) * (字节数/扇区)
题干中硬盘的面数为8,每面的磁道数为(30-10)*10/2*16,每磁道扇区为16,每扇区512字节,因此格式化容量为(30-10)*10*16*16*512/2B。注意单位的换算。 - 本题考察计算机数据的表示。浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度则由尾数决定。八位阶码的最大值为127.
- CPU执行MOVRI,RO指令,CPU首先要完成的操作是从内存中读取该指令的指令操作码。取该指令的指令操作码,首先要做的就是将程序计数器的内容送到地址寄存器,即PC→AR。
- 主存地址到Cache地址的变换由硬件完成,以提高速度
- 计算机中主机与外设间进行数据传输的输入输出控制方法有程序控制方式、中断方式、DMA
1、程序控制 由CPU执行程序控制数据的输入输出过程。分为无条件查询和程序查询方式。
① 无条件传送方式
I/O端口总是准备好接受主机的输出数据,或是总是准备好向主机输入数据,而cpu在需要时,随时直接利用I/O指令访问相应的I/O端口实现与外设的数据交换。优点是软、硬件结构简单缺点是对时序要求高,只适用于简单的I/O控制。
② 程序查询方式也称为程序轮询方式
该方式采用用户程序直接控制主机与外部设备之间输入/输出操作。CPU必须不停地循环测试//O设备的状态端口,当发现设备处于准备好(Ready)状态时,CPU就可以与I/O设备进行数据存取操作。这种方式下的CPU与I/O设备是串行工作的。
2、中断方式
外设准备好输入数据或接收数据时向PU发出中断请求信号,若CPU决定响应该请求,则暂停正在执行的任务,转而执行中断服务程序进行数据的输入输出处理,之后再回去执行原来被中断的任务。当I/O设备结束(完成、特殊或异常)时,就会向CPU发出中断请求信号,CPU收到信号就可以采取相应措施。当某个进程要启动某个设备时,CPU就向相应的设备控制器发出一条设备I/0启动指令,然后CPU又返回做原来的工作。CPU与I/O设备可以并行工作,与程序查询方式相比,大大提高了CPU的利用率:
中断响应实现向中断服务程序的过渡。在中断响应周期,CPU要完成以下操作:
(1)发出中断响应信号INTA,
(2)关中断,即将IF位清0。这是因为在响应一个中断的期间不能响应另一个中断。
(3)保护断点和标志寄存器:断点是按正常顺序(即没有中断)应执行的下一条指令的地址。对8086来说,保护断点就是保存CS和IP的内容(压入堆栈)。标志寄存器FR中存放着刚执行指令的-些重要特征,也需要保存起来,以便中断返回时继续使用其中的内容。
(4)查找中断源,转向相应的中断服务程序的入口
3、DMA方式
CPU只需向DMA控制器下达指令让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU的负担,可以大大节省系统资源。DMA方式也称为直接主存存取方式,其思想是:允许主存储器和I/O设备之间通过“DMA控制器(DMAC)“直接进行批量数据交换,除了在数据传输开始和结束时,整个过程无须CPU的干预(即不需要CPU控制数据的传输过程)。
注意:(1)中断方式与DMA方式都可实现外设与CPU之间的并行工作。
4、通道控制方式
在一定的硬件基础上利用软件手段实现对I/O的控制和传送,更多地免去了cpu的接入,使主机和外设并行工作程度更高。
5、I/O处理机
指专门负责输入/输出的处理机。可以有独立的存储器、运算部件和指令控制部件。 - 浮点数加减运算时,首先要进行对阶,根据对阶的规则,阶码和尾数将进行相应的操作。对阶的规则是小阶向大阶对齐,即阶码小的尾数算数右移,每右移一位,阶码加1,直到对阶的两个数的阶码相等为止,根据题意,将y的阶码扩大至与x的阶码相同,y的尾数算数右移,所以选D。
- 计算机系统是一个硬件和软件的综合体,可以把它看作是按功能划分的多级层次结构:
(1)硬联逻辑级。由计算机的内核,由门、触发器等逻辑电路组成。
(2)微程序级。这一级的机器语言是微指令集,程序员用微指令编写的微程序一般直接由硬件执行。
(3)传统机器级。这一级的机器语言是该机的指令集,程序员用机器指令编写的程序可以由微程序进行解释。
(4)操作系统级。从操作系统的基本功能来看,一方面它要直接管理传统机器中的软硬件资源,另一方面它又是传统机器的延伸。
(5)汇编语言级。这一级的机器语言是汇编语言,完成汇编语言翻译的程序称为汇编程序。
(6)高级语言级。这一级的机器语言就是各种高级语言,通常用编译程序来完成高级语言翻译的工作。
(7)应用语言级。这一级是为了使计算机满足某种用途而专门设计的,因此,这一级的机器语言就是各种面向问题的应用语言。 - 虚拟存储管理系统的基础是程序的局部性理论。这个理论的基本含义是指程序执行时,往往会不均匀地访问内存储器,即有些存储区被频繁访问,有些则少有问津。程序的局部性表现在时间局部性和空间局部性上。
时间局部性是指最近被访问的存储单元可能马上又要被访问。例如程序中的循环体,一些计数变量累加变量,堆栈等都具有时间局部性特点。
空间局部性是指马上被访问的存储单元,其相邻或附近单元也可能马上被访问。例如一段顺序执行的程序,数组的顺序处理等都具有空间局部性特点。
根据程序的局部性理论,Denning提出了工作集理论。工作集是指进程运行时被频繁访问的页面集合,显然,在进程运行时,如果能保证它的工作集页面都在主存储器内,就会大大减少进程的缺页次数,使进程高效地运行;否则将会因某些工作页面不在内存而出现频繁的页面调入/调出现象,造成系统性能急剧下降,严重时会出现“抖动“现象。 - 立即寻址最快>寄存器寻址次之>直接寻址最慢
- PCI总线是PC机常用总线,SCSI是软硬磁盘、光盘、扫描仪常用总线。他们都是并行总线。
- SRAM的概念:它是一种具有静止存取功能的内存。
特点是:不需要刷新电路即能保存它内部存储的数据。因此SRAM具有较高的性能,但是集成度较低相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,且功耗较大。
DRAM的概念:即动态随机存取存储器,最为常见的系统内存。
特点是:只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新一次,如果存储单元没有被刷新,存储的信息就会丢失。
DRAM集成率相对较高,功耗相对较小,需要动态刷新,或周期性刷新 - 机器字长为64位,即8B,按字编址可寻址的范围128MB/8B=16M。
- 指令周期是指一条指令从读取到执行完的全部时间。
指令周期划分为几个不同的阶段,每个阶段所需的时间,称为机器周期,又称为CPU工作周期。
一个指令周期由若干个CPU周期组成,而一个CPU周期又包含有若干个时钟周期。
中断周期是指CPU收到中断源的中断请求,到转去执行中断服务程序的这段时间,通常含有若干个机器周期。
时钟周期最小 - 用原码表示带符号的整数0时,有-0和+0之分,其实就是符号位的变化
+0:0000 0000; -0:1000 0000;
因此用反码表示带符号的整数0时,也有-0和+0之分,分别为
+0反码是00000000; -0反码是11111111而 0补码是00000000;
补码没有正0与负0之分 - 容量128KB的SRAM存储器,按字长32位编址,32bit=4Byte,总共有128KB/4B=32K=2^15个地址,所以地址范围是0000H到7fffH
- 若某存储器存储周期为250ns,每次读出16位,该存储器地数据传输率是
计算的是存储器的带宽,每个存储周期读出16bit=2B,因此数据传输率是2B/(250*10^-9s),计算结果为8*10^6B/s。 - 当CPU执行一条指令时,先把它从内存储器取到缓冲寄存器中,再送入指令寄存器(IR)暂存,指令译码器根据IR的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。程序计数器(PC)具有寄存信息和计数两种功能,又称为指令计数器。程序的执行分两种情况:一是顺序执行,二是转移执行。在程序开始执行前,将程序的起始地址送入PC,该地址在程序加载到内存时确定因此PC的内容即是程序第一条指令的地址。执行指令时,CPU自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对PC加”1”。当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到或者根据转移指令给出的直接转移的地址得到,
- AVS标准是《信息技术先进进视频编码》简称,AVS标准包括系统、视频、音频、数字版权管理等4个主要技术标准和一致性测试等支撑标准。
- 运算器,也称为算术逻辑单元(ArithmeticandLogicUnit,ALU),其主要功能是在控制器的控制下完成各种算术运算和逻辑运算。
累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数据;
程序计数器PC:存储下一条要执行指令的地址
地址寄存器AR:用来保存当前CPU所访问的内存单元的地址。 - 流水线的吞吐率是指单位时间流水线处理的任务数或者最长流水段操作时间的倒数。
- 当系统中有多个中断源(引起中断的事件)的时候可以采用中断向量表的方式处理中断。中断向量表用来保存各个中断源的中断服务程序的入口地址。当外设发出中断请求信号以后,由中断控制器确定其中断号,并根据中断号查找中断向量表来取得其中断服务程序的入口地址,同时中断控制器把中断请求信号提交给CPU。
- 软件可靠性是指系统在给定的时间间隔内、在给定条件下无失效运行的概率。若MTTF和MTTR分别表示平均无故障时间和平均修复时间,可靠性公式:MTTF/(1+MTTF)
- Microsoft Office PowerPoint,是微软公司的演示文稿软件。
CorelDraw,是Corel公司出品的矢量图形制作工具软件,这个图形工具给设计师提供了矢量动画、页面设计、网站制作、位图编辑和网页动画等多种功能。
Adobe Premiere是适用于快速创作出色视频的主流视频编辑软件。
Adobe Acrobat 是由Adobe公司开发的一款PDF(Portable Document Format,便携式文档格式)编辑软件,借助它可以以PDF格式制作和保存文档。 - H.320标准面向窄带综合业务数字网(N-ISDN),是窄带可视电话系统的通信标准
H.323是面向无QoS保障的包交换网络上的多媒体通信标准;
H.324是低速率网络(如PSTN)上多媒体通信及终端的标准。
H.264是是ITU制定的视频压缩编码技术的标准。 - CPU的组成:
CPU内部由ALU(算术逻辑单元)、CU(控制器)、寄存器(PC、IR、PSW、DR、通用寄存器等)、中断系统组成,外部通过总线与控制总线、数据总线、地址总线进行相连,对数据和程序进行相关的操作。CPU的功能:
(1)指令控制:按照顺序进行取指操作,由控制器CU完成取指和分析指令的操作。
(2)操作控制:能对指令进行译码、寄存、执行的有关操作。
(3)时间控制:对各种操作进行的时间实施定时。
(4)数据加工:能够进行算术运算和逻辑运算,该功能的实现由ALU寄存器(算术逻辑单元)完成。
(5)处理中断:能够响应输入输出设备发出的中断请求。
CPU只能直接访问存储在内存中的数据,外存中的数据只有先调入内存后才能被中央处理器访问和处理。 -
部件的千小时可靠度R=(部件数-故障部件数)/部件数
-
I/O端口编址方式有2种:一种是存储器映射方式,即把端口地址与存储器地址统一编址,也称为统一编址方式;另一种是I/O映射方式,即I/O端口地址与存储器地址分别进行独立的编址,也称为独立编址方式。(1)统一编址
这种编址方式是从存储空间中划出一部分地址空间分配给I/O设备,而把I/O接口中的端口作为存储器单元进行访问,不设置专门的I/O指令。在统一编址方式中,可以将I/0端口看作是内存单元。从原则上说,用于内存的指令均可用于外设,这给使用者提供了极大的方便。但由于/O端口占用了内存地址,就相对减少了内存可用范围,而且从指令上不易区分是访问内存还是访问外设的指令。在统一编址方式下,CPU以地址区分访问外设或存储器,通过地址总线的最高位状态(1或 0)以及读、写控制信号决定。(2)独立编址
在这种编址方式中,内存地址空间和I/O端口地址是相对独立的,设置了专门的IN,OUT等I/O指令。
内存与端口独立编址,各自有自己的寻址空间。用于内存和用于I/O端口的指令是不一样的,很容易辨认。但是用于I/O端口的指令功能较弱,在I/O操作中必须通过 CPU的寄存器进行中转才能完成。 -
在计算机的CPU中,通常只设置硬件加法器。只有补码能够将减法转化为加法,故用硬件加法器可以较方便地进行数字加减法。
由于正数的移码大于负数的移码,利用这一特点,移码被广泛用来表示浮点数阶码的数字编码,这可以用比较阶码的大小来实现真值大小的比较。 -
在冯诺依曼结构中,程序指令和数据存在同一个存储器中。程序指令总是存储在主存中,而数据则存储在高速缓存中。
-
为了实现多级中断,保存程序现场信息最有效的方法是使用通用寄存器,
在中断处理或子程序调用过程中,一般将 返回地址、状态标志 和 现场信息 保存在堆栈中。
通用寄存器、累加器、程序计数器都是属于CPU内部的子部件,与本题无关。 -
CPU访问内存通常是同步方式,
CPU与I/O接口交换信息通常是同步方式,
CPU与PCI总线交换信息通常是同步方式,
I/O接口与打印机交换信息则通常采用基于缓存池的异步方式。 -
按连接部件不同,总线可分为:片内总线、系统总线、通信总线。
片内总线是芯片内部的总线,如CPU内部的总线:
系统总线是CPU、主存、I/O设备各大部件之间的信息传输线。
通讯总线用于计算机系统之间或与其他系统之间的通信。 -
在DMA控制方式下主存与高速I/O设备之间会有一条直接数据通路(DMA总线)。CPU向DMA接口发出读/写“命令,并指明主存地址、磁盘地址、读写数据量等参数。DMA控制器自动控制磁盘与主存的数据读写,每完成一整块数据读写(如1KB为一整块),才向CPU发出一次中断请求。所以这里的主存地址是主存的物理地址。
-
中断向量表用来保存各个中断源的中断服务程序的入口地址。当外设发出中断请求信号(INTR)以后,由中断控制器(INTC)确定其中断号,并根据中断号查找中断向量表来取得其中断服务程序的入口地址,同时INTC把中断请求信号提交给CPU。
-
负数的补码真值需要计算才能获得,无法直观对应
-
双核处理器是指在一个处理器上集成两个运算核心从而提高计算能力。
-
浮点数加(减)法操作流程:零操作数检查、对阶操作、尾数加(减)运算、规格化及舍入处理。
-
在微型计算机中,管理键盘最适合采用的 //O 控制方式是中断方式。因为键盘是慢速设备,并且无法预知I/O时间。
-
随机存储器可以按地址访问存储器的任一单元。
顺序存储器访问时按顺序查找目标地址,访问数据所需时间与数据存储位置相关。
直接存储器按照数据块所在位置访问,介于上述两者之间,磁道寻址随机,磁道内寻址顺序。磁盘是直接存储器
相联存储器:按内容访问的存储器。其工作原理就是把数据或数据的某一部分作为关键字按顺序写入信息,读出时并行地将该关键字与存储器中的每一单元进行比较,找出存储器中所有与关键字相同的数据字,特别适合于信息的检索和更新。
第二节 操作系统
- 指令周期(InstructionCycle):取出并执行一条指令的时间。
总线周期(BUSCycle):也就是一个访存储器或I/O端口操作所用的时间。
时钟周期(ClockCycle):又称震荡周期,是处理操作的最基本单位。
指令周期、总线周期和时钟周期之间的关系:
一个指令周期由若干个总线周期组成,而一个总线周期时间又包含有若干个时钟周期。
一个总线周期包含一个(只有取址周期)或多个机器周期。
机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。 - DMA响应过程为:DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可释放总线控制权。此时总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知I/O接口开始DMA传输。
- 立即寻址是一种特殊的寻址方式,指令中在操作码字段后面的部分不是通常意义上的操作数地址,而是操作数本身,也就是说数据就包含在指令中,只要取出指令,也就取出了可以立即使用的操作数。在直接寻址中,指令中地址码字段给出的地址A就是操作数的有效地址,即形式地址等于有效地址。
间接寻址意味着指令中给出的地址A不是操作数的地址,而是存放操作数地址的主存单元的地址,简称操作数地址的地址。
寄存器寻址指令的地址码部分给出了某一个通用寄存器的编号R;,这个指定的寄存器中存放着操作数。 - CPU在执行指令的时候,会根据时序部件发出的时钟信号去进行相应的操作。在取指令阶段读到的是指令,在分析和执行指令阶段去取需要的数据。
CPU依据(指令周期的不同阶段)来区分在内存中以二进制编码形式存放的指令和数据。 - 实时操作系统(Real Time Operating system)是指系统能及时响应外部事件的请求,在规定的时间内,完成对该事件的处理,并控制所有实时任务协调一致地运行.
- 总线带宽的计算公式为:
总线带宽(MB/s)=总线宽度(bit)*总线频率(MHz)/8(bit/B) - 给每个进程分配所需资源数减1个资源,然后系统还有1个资源,则不可能发生死锁。
进程数*(所需资源数-1)+1=不可能死锁数 - 主存主要采用动态随机存储器DRAM
Cache采用静态随机存储器SRAM
EEPROM是电擦除可编程的只读存储器 - 计算机系统的层次结构:硬件层一操作系统层一系统程序层一应用程序层
- 进程控制块PCB的组织方式:
1)线性表方式:不论进程的状态如何,将所有的PCB连续地存放在内存的系统区。这种方式适用于系统中进程数目不多的情况。
2)索引表方式:该方式是线性表方式的改进,系统按照进程的状态分别建立就绪索引表、阻塞索引表等。
3)链接表方式:系统按照进程的状态将进程的PCB组成队列,从而形成就绪队列、阻塞队列、运行队列等。 - 逻辑地址=页号+页内地址,为32位。
物理地址=物理块号+物理地址的页内地址。 - 按照是否可以被屏蔽,可将中断分为两大类:
不可屏蔽中断(又叫非屏蔽中断)和可屏蔽中断。
不可屏蔽中断源一旦提出请求,CPU必须无条件响应,而对可屏蔽中断源的请求,CPU可以响应,也可以不响应。典型的非屏蔽中断源的例子是电源掉电,一旦出现,必须立即无条件地响应,否则进行其他任何工作都是没有意义的。
典型的可屏蔽中断源的例子是打印机中断,CPU对打印机中断请求的响应可以快一些,也可以慢一些,因为让打印机等待是完全可以的。对于软中断,它不受中断允许标志位(IF位)的影响,所以属于非屏蔽中断范畴。 - 在多线程运行环境中,每个线程自己独有资源很少,
只有:程序计数器,寄存器和栈,其它的资源均是共享进程的,所以也只有这些独有资源是不共享的。 - 流水线吞吐率是指令执行周期的倒数,即1/t,而指令执行周期是最长流水段的操作时间。
- 程序计数器pc是用于存放下一条指令所在单元的地址的地方。
指令寄存器是临时放置从内存里面取得的程序指令的寄存器,用于存放当前从主存储器读出的正在执行的一条指令。
地址寄存器用来保存当前CPU所访问的内存单元的地址。
指令译码器,从内存中取出的一条指令经数据总线送往指令寄存器中 - 为了优化系统性能,有时需要对系统进行调整。
对于数据库系统,性能调整主要包括CPU/内存使用状况、优化数据库设计、优化数据库管理以及进程/线程状态、硬盘剩余空间、日志文件大小等;
对于应用系统,性能调整主要包括应用系统的可用性、响应时间、并发用户数以及特定应用的系统资源占用等 - PV操作:是实现进程同步和互斥的常用方法,P操作和V操作是低级通信原语,在执行期间不可分割;
其中P操作表示申请一个资源,V表示释放一个资源。
P操作的定义:S:=S-1,若s>=0,则执行P操作的进程继续执行;若S<0,则将该进程设为阻塞状态(因为无可用资源),并将其插入阻塞队列。
V操作的定义:S:=S+1,若S>0,则执行V操作的进程继续执行;若 S<=0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续。
本题中S初始值为3,当n个进程同时执行时,需要执行n次P操作,这时信号量的值应为 3-n,所以信号量的变化范围为:-(n-3)~3 - 大多数文件是顺序文件。顺序文件的记录定长,记录中的数据项的类型长度与次序固定。
直接文件又称哈希(Hash)文件。记录以它们在直接访问存储设备上的物理地址直接(随机地)访问。直接文件常用 于需要高速访问文件而且每次仅访问一条记录的应用中。 - 在UNIX操作系统中,把输入/输出设备看作是特殊文件。在UNIX系统中包括两类设备:块设备和字符设备。设备特殊文件有一个索引节点,在文件系统目录中占据一个节点,但其索引节点上的文件类型与其他文件不同,是“块“或者是“字符“特殊文件。文件系统与设备驱动程序的接口是通过设备开关表。硬件与驱动程序之间的接口:控制寄存器、/O指令,一旦出现设备中断,根据中断矢量转去执行相应的中断处理程序,完成所要求的I/O任务。这样,可以通过文件系统与设备接口,对设备进行相关的操作,因为每个设备有一个文件名,可以向访问文件那样操作。
- 加速比FPSQR=1/((1-0.2)+0.2/10)=1/0.82=1.22
加速比FP=1/((1-0.5)+0.5/1.6)=1/0.8125=1.23 - 虚拟存储管理系统的基础是程序的局部性理论。这个理论的基本含义是指程序执行时,往往会不均匀地访问内存储器,即有些存储区被频繁访问,有些则少有问津。
程序的局部性表现在时间局部性和空间局部性上。
时间局部性
是指最近被访问的存储单元可能马上又要被访问。例如程序中的循环体,一些计数变量累加变量,堆栈等都具有时间局部性特点。
空间局部性
是指马上被访问的存储单元,其相邻或附近单元也可能马上被访问。例如一段顺序执行的程序,数组的顺序处理等都具有空间局部性特点。
根据程序的局部性理论,Denning提出了工作集理论。工作集是指进程运行时被频繁访问的页面集合。显然,在进程运行时,如果能保证它的工作集页面都在主存储器内,就会大大减少进程的缺页次数,使进程高效地运行;否则将会因某些工作页面不在内存而出现频繁的页面调入/调出现象,造成系统性能急剧下降,严重时会出现“抖动“现象。 - 虚拟存储技术并未实际扩充内存、外存,而是采用相关技术相对地扩充主存。
装入程序时,只将程序的一部分装入内存,而将其余部分留在外存,就可以启动程序执行。采用连续分配方式时,会使相当一部分内存空间都处于暂时或“永久的空闲状态,造成内存资源的严重浪费,也无法从逻辑上扩大内存容量,因此虚拟内存的实现只能建立在离散分配的内存管理的基础上(即非连续分配技术)。
有以下3种方式实现请求分页存储管理、请求分段存储管理、请求段页式存储管理。
虚拟存储器容量既不受外存容量限制,又不受内存容量限制,而是由CPU的寻址范围决定。 - 多个进程可以共享系统中的资源,一次仅允许一个进程使用的资源称为临界资源。
访问临界资源的那段代码叫临界区。 - 信号量是一个特殊的整型变量,只有初始化和PV操作才可以改变其值,通常,信号量分为互斥量和资源量,互斥量的初值一般是1,表示临界区只允许一个进程进入,从而实现互斥。当互斥量等于0时,表示临界区已经有一个进程进入了,邻接区外没有进程等待,当互斥量小于0的时候,表示临界区中有一个进程,互斥量的绝对值表示临界区外等待的进程数。同理,资源信号量的初值可以是任意整数,表示可用的资源数,当资源数小于0的时候,表示所有资源已经全部用完,而还有进程正在等到使用该资源,等待的进程数就是资源量的绝对值。
- 块号为100的内存块回收时,其对应的位示图行号r和列号c分别为:
r=(100+1)/32=4 向上取整得4c=(100+1)%32=5
从0开始,所以4-1=3,5-1=4 - 死锁是指多个进程因竞争系统资源或互相通信而处于永久阻塞态,若无外力作用,这些进程将无法推进。
- 盘块号=起始块号+[盘块号/(1024*8)]
=起始块号[409612/(1024*8)]=32+50=82位号
=盘块号%(1024*8)=409612%(1024*8)12
因为第二问问的不是位号,是字节号,所以需要位数除以8 即12/8=1 - 单缓冲区:(10+5)x10+2=152
双缓冲区:10x10+5+2=107 - 位示图用二进制的一位来代表磁盘一个物理块的使用情况,当其值为“0“时,表示对应的物理盘块空闲;为“1“时,表示该盘块已经被分配使用。磁盘容量是1024GB,物理块的大小为4MB,磁盘有物理块1024x1024/4=262144个,系统字长是64位,那么位示图一共有1262144/64=4096个字。16335/64=255,所以16335号物理块的使用情况在位示图中的第255+1=256个字中描述。
- 绝对路径是从根目录开始的路径,以"\"代表根目录。
相对路径是从当前路径开始的路径,以"..\"代表上一级目录。
切换当前工作目录的命令是cd,可以使用相对路径也可以使用绝对路径。
(绝对路径相当于告诉别人,从头开始,前面必须加"\",相对路径基于现在,直接说下一个,不加"\",但两个后面的结尾都必须加"\") - 进程调度方式是指当有更高优先级的进程到来时如何分配CPU。
调度方式分为可剥夺和不可剥夺两种。
可剥夺式是指当有更高优先级的进程到来时,强行将正在运行进程的 CPU分配给高优先级的进程;
不可剥夺式是指当有更高优先级的进程到来时,必须等待正在运行进程自动释放占用的CPU,然后将CPU分配给高优先级的进程。 - 硬盘的存取时间主要包括三个部分。
第一部分是指磁头从原先位置移动到目的磁道所需要的时间,一般称为寻道时间:
第二部分是指在到达目的磁道以后,等待被访问的记录块旋转到磁头下方的等待时间,常称为旋转延迟或旋转起达时间:
第三部分是信息的读写操作时间或叫传输时间
总时间=三者相加*文件块数 - 在使用已经存在的文件之前,要通过“打开(Open)“文件操作建立起文件和用户之间的联系,目的是把文件的控制管理信息从辅存读到内存。
打开文件应完成如下功能:
(1)在内存的管理表中申请一个空表目,用来存放该文件的文件目录信息。
(2)根据文件名在磁盘上查找目录文件,将找到的文件目录信息复制到内存的管理表中。如果打开的是共享文件,则应进行相关处理如共享用户数加1。
(3)文件定位,卷标处理。文件一旦打开,可被反复使用直至文件关闭。这样做的优点是减少查找目录的时间,加快文件存取速度,提高系统的运行效率。 - 每个索引块和磁盘数据块大小为1KB,地址项大小4B,所以一个块可以索引1KB/4B=256个地址。
所以:直接地址索引范围:0-4KB,一级间接地址索引范围5KB-516KB,二级间接索引的地址范围是517KB-517+256*256+516=66052KB。逻辑块号为4和5分别在直接地址范围和一级间接地址范围。由于地址是从0开始,所以单个文件最大长度是66053KB - 有两台打印机,故信号量初值为2。前两个进程请求能够满足。当有进程运行时,其他进程访问信号量,信号量就会减一,n个进程同时请求两台打印机时为-(n-2)
- 临界区不允许两个进程同时进入。
M的初值为1,表示允许一个进程进入临界区,
当有一个进程进入临界区且没有进程等待进入时,m-1=0。 - 嵌入式操作系统的主要特点包括微型化、可定制、实时性、可靠性和易移植性。
其中,可定制是指从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用需要。 - 虚拟存储技术并未实际扩充内存、外存,而是采用相关技术相对地扩充主存。补充内存逻辑的技术
- 先来先服务算法会根据进程请求访问磁盘的先后次序进行调度。这种算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某进程的请求长期得不到满足的情况。但缺点是由于未对寻道进行优化,会导致平均寻道时间可能较长。(改变移臂方向)
最短寻道时间优先算法要求访问的磁道与当前磁头所在的磁道距离最近,使得每次的寻道时间最短。但这种调度算法不能保证平均寻道时间最短。(改变移臂方向)
扫描算法不仅考虑到要访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。在这种算法中,磁头移动的规律颇似电梯的运行,故又常称为电梯调度算法。
单向扫描调度算法的特点是当磁头刚从里向外移动过某一磁道时,恰有一进程请求访问此磁道,这时该进程必须等待,待磁头从里向外,再从外向里扫描完所有要访问的磁道后才处理该进程的请求,致使该进程的请求被严重地推迟。为了减少这种延迟,算法规定磁头只做单向移动。
第三节 计算机网络与信息安全
- 主动攻击包括拒绝服务攻击、分布式拒绝服务(DDOs)、信息篡改、资源使用、欺骗、伪装、重放等攻击方法。
- 网络防火墙就是一个位于计算机和它所连接的网络之间的软件。该计算机流入流出的所有网络通信均要经过此防火墙。防火墙对流经它的网络通信进行扫描这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。
防火墙的功能包括:
访问控制;提供基于状态检测技术的ip地址、端口、用户和时间的管理控制;双向nat,提供ip地址转换和ip及tcp/udp端口映射,实现ip复用和隐藏网络结构:代理,包过滤,记录访问过程等。控制进出网络的数据包和数据流向,提供流量信息的日志和审计,隐藏内部 IP 以及网络结构细节 - Netstat命令的连接状态包括:
LISTEN:侦听来自远方的TCP端口的连接请求。
SYN-SENT:在发送连接请求后等待匹配的连接请求。
SYN-RECEIVED:在收到和发送一个连接请求后等待对方对连接请求的确认。
ESTABLISHED:代表一个打开的连接。
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认。
FIN-WAIT-2:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求。
CLOSING:等待远程TCP对连接中断的确认。
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认。
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认。
CLOSED:没有任何连接状态 - POP3,全名为“Post Office Protocol-Version3”,即“邮局协议版本3”。是TCP/IP协议族中的一员,由RFC1939定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的
POP3协议被称为POP3S
POP3协议特性:
POP3协议默认端口:110;
POP3协议默认传输协议:TCP:
POP3协议适用的构架结构:C/S:
POP3协议的访问模式:离线访问。 - 在TCP的实现机制中,为了保障传输的可靠性,所以发送方每发送一个报文,接收方接到之后会回发确认信息。如果发送端的数据过多或者数据发送速率过快,致使接收端来不及处理,则会造成数据在接收端的丢弃。为了避免这种现象的发生,通常的处理办法是采用流量控制,即控制发送端发送的数据量及数据发送速率。
流量控制的目的是在接收端有限承受能力的情况下,通过流量约束,减少接收端处的数据丢失,提高数据发送效率,充分利用接收端资源。
可变滑动窗口流量控制的基本过程如下:
1、在建立TCP连接阶段,双方协商窗口尺寸,同时接收端预留数据缓冲区;
2、发送端根据协商的结果,发送符合窗口尺寸的数据字节流,并等待对方的确认;
3、发送端根据确认信息,改变窗口的尺寸。注:窗口也就是缓冲区,发送方窗口大小决定了一次可以连续发送多少个数据 - 主机路由和网络路由是由目的地址的完整度区分的主机路由的目的地址是一个完整的主机地址(子网掩码固定为255.255.255.255)。
网络路由目的地址是个网络地址(主机号部分为0)。
当为某个目的!P地址搜索路由表时,主机地址项必须与目的地址完全匹配,而网络地址项只需要匹配目的地址的网络号和子网号就可以了 - 层次化网络设计中各个层次的主要功能包括:
接入层:用户接入、计费管理、MAC地址认证、收集用户信息。
汇聚层:网络访问策略控制、数据包处理、过滤、寻址。
核心层:高速数据交换,常用几余机制。 - IDEA算法和RC4算法都对称加密算法,只能用来进行数据加密。
MD5算法是消息摘要算法,只能用来生成消息摘要无法进行数字签名。
RSA算法是典型的非对称加密算法,主要具有数字签名和验签的功能。 - 设备防雷击属于物理线路安全措施,
入侵检测和流量控制属于网络安全措施,
漏洞发现与补丁管理属于系统安全措施。 - ARP和ICMP是网络层协议,X.25是标准的接口协议,只有SNMP是应用层协议。
SNMP协议的报文是封装在UDP协议中传送: - 对于多种不同的路由协议到一个目的地的路由信息,路由器首先根据管理距离决定相信哪一个协议。
- HTM用于处理静态网页;LISP一种基于演算的函数式编程语言。
PHP是一种通用开源脚本语言。语法吸收了C语言、Java和Pe11的特点,利于学习,使用广泛,主要适用于Web开发领域:它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTIMI标记的CGI要高许多:PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网。
C++是一个接近系统底层的综合的,支持面向对象和范编程的程序设计语言,适用于开发要求很高效率的程序,例如大型游戏、大型企业应用、系统应用等 - ICMP是TCP/IP协议族的一个子协议,属于网络层协议。
主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等,和TCP、UDP、IGMP等协议一样,ICMP协议使用IP数据报传送数据 - SSH(SecureShell,安全外壳协议),由IETF的网络工作小组(Network Working Group)所制定,常用的应用层网络通信协议(如FTP、POP3和Te1net)大多数是不安全的,因为它们在网络上用明文传送用户名、口令和数据,很容易被窃听、假冒、篡改和欺骗。SSH是一种在不安全网络中用于安全远程登录和其他安全网络服务的协议。它提供了对安全远程登录、安全文件传输和安全TCP/IP及X-Windowvs系统通信量进行转发的支持。它可以加密、认证并压缩传输的数据
- 安全需求可分为物理安全、网络安全、系统安全和应用安全
物理安全中“物理”即身体的、物质的、自然的意思物理安全是整个网络信息安全的前提,包括物理安全基础、物理安全技术控制错误、物理设置要求、环境和人身安全等方面。如机房安全
网络安全包含网络体系结构安全、通信和网络技术安全、互联网技术和服务安全。网络安全中常用的安全设备有:防火墙、入侵检测、入侵防御设备等。
系统安全指的是从整体电子商务系统或网络支付系统的角度进行安全防护,它与网络系统硬件平台、操作系统、各种应用软件等互相关联。系统安全主要面临的威胁有:系统实现存在漏洞、系统安全体系缺陷、使用人员的安全意识薄弱、管理制度的薄弱等。
应用安全指的是针对特定应用所建立的安全防护措施。如Web应用安全、电子邮件安全、电子商务安全、数据库应用安全等。 - 动态主机配置协议DHCP通过服务器的IP地址数据库动态管理网络上的IP地址和其他相关配置,是BOOTP协议的扩充。
BOOTP是一种基于UDP的协议,主要用于无盘工作站从服务器获得自己的IP地址。
DHCP是从原来的BOOTP协议发展而来的,引入“租约”概念,分为两部分:
服务器端和客户端(C/S模式)。
DHCP服务器集中管理IP地址的动态分配以及网络上启用DHCP客户端的其他相关配置信息,并负责处理客户端的DHCP要求;而客户端则使用服务器端分配下来的IP网络配置数据,UDP67用于DHCP服务器,UDP68用于DHCP客户端。
从而简化TCP/IP设置,例如工作站、网络服务器、路由器等的配置。FTP(FileTransferProtocol,文件传送协议)是因特网上使用得最广泛的文件传送协议,采用C/S工作模式。通过建立TCP连接,使网络上不同主机之间能够进行高效的文件传输,实现文件资源共享和信息传递。 - HTTPS 使用(SSL)协议对报文进行封装
- RSA是非对称加密算法;
SHA-1与MD5属于信息摘要算法
RC-5属于对称加密算法。
这些算法中SHA-1与MD5是不能用来加密数据的,
而RSA由于效率问题,一般不直接用于大量的明文加密。 - 两个证书发放机构I1和I2互换公钥是A、B 互信的必要条件。
- C/S(客户机/服务器)体系结构的优点
允许合理地划分三层的功能,使之在逻辑上保持相对独立性
允许各层灵活地选用平台和软件
各层可以选择不同的开发语言进行并行开发
B/S结构的特点
系统安装、修改和维护均只在服务器端进行 - C/S(Client/Server,客户端/服务器)体系结构的优点:
交互性强:能提供更丰富、更灵活的交互体验。
安全性较高:可对客户端进行较为严格的控制和安全设置。 可以充分利用本地资源:如硬件性能等。
C/S 体系结构的缺点:
部署和维护成本高:需要在每台客户端机器上安装和更新软件。
跨平台性较差:不同操作系统可能需要不同的客户端版本。
B/S(Browser/Server,浏览器/服务器)体系结构的优点:
易于部署和维护:只需在服务器端进行更新,客户端通过浏览器访问即可。
跨平台性好:只要有浏览器就能使用,不受操作系统限制。
成本相对较低:无需为大量客户端进行专门的安装和维护。
B/S 体系结构的缺点:
交互性相对较弱:在某些复杂交互场景下可能不如 C/S。
受浏览器性能限制:某些功能可能受到一定限制。
安全性相对较难控制:浏览器的开放性可能带来一定安全隐患。 - 若事务T1对数据D1加上共享锁,则其他事务只能再对D1加共享锁,而不能加排他锁。
若事务T2、T3对数据D2、D3加上排他锁,其他事务不能再对D2、D3加任何锁。 - 1、在浏览器中输入www.163 域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
3、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析此解析具有权威性。
4、如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
5、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名()是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责域的这台服务器。这台负责域的服务器收到请求后,如果自己无法解析,它就会找一个管理域的下一级DNS服务器地址(163)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找163域服务器,重复上面的动作,进行查询,直至找到www.163主机。
6、如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。 - TCP与UDP是基于IP协议的;SMTP是基于TCP协议的。
HTTP SNMP
TCP UDP IP -
静态路由是指由用户或网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。
随机路由使用前向代理来收集网络中的有限全局信息即当前结点到其源结点的旅行时间,并以此来更新结点的旅行时间表。
洪泛路由是一种简单的路由算法,将收到的封包,往所有的可能连结路径上递送,直到封包到达为止。
动态路由就是自适应路由选择算法,是指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整。经常自动更新路由 -
层次 名称 主要功能 主要设备及协议 7
应用层 实现具体的应用功能 POP3、FTP、HTTP、Telnet、SMTP
DHCP、TFTP、SNMP、DNS6 表示层 数据的格式与表达、加密、压缩 5 会话层 建立、管理和终止会话 4 传输层 端到端的连接(端口) TCP、UDP 3 网络层 分组传输和路由选择(IP) 三层交换机、路由器
ARP、RARP、IP、ICMP、IGMP2 数据链路层 传送以帧为单位的信息(MAC) 网桥、交换机、网卡
PPTP、L2TP、SLIP、PPP1 物理层 二进制传输(0/1) 中继器、集线器 - ARP即地址解析协议,是工作在网络层的协议,它主要的作用是实现IP地址与MAC地址之间的变换。
ARP攻击是针对以太网地址解析协议(ARP)的一种攻击技术,此种攻击可让攻击者取得局域网上的数据封包甚至可篡改封包,且可让网络上特定计算机或所有计算机无法正常连接。ARP攻击造成网络无法跨网段通信的原因是伪造网关ARP报文使得数据包无法发送到网关。 -
HTTPS(全称:Hyper Text Transfer Protocol over Secure SocketLayer)
是以安全为目标的HTTP通道。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 -
FTP协议占用两个标准的端口号:20和21,其中20为数据口,21为控制口
-
HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议。
它是一个安全通信通道,基于HTTP开发,用于在客户计算机和服务器之间交换信息。HTTPS使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。
HTTPS和HTTP的区别:
·https协议需要到ca申请证书,一般免费证书很少,需要交费。
·http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
·http和https使用的是完全不同的连接方式用的端口也不一样,http是80,https是443.
·http的连接很简单,是无状态的
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全 -
下列攻击行为中,属于典型被动攻击的是系统干涉
主动攻击:拒绝服务攻击,会话拦截,修改数据命令 -
UDP 与 TCP的主要区别在于 UDP 不一定提供可靠的数据传输。
事实上,该协议不能保证数据准确无误地到达目的地,UDP 在许多方面非常有效,在数据传输过程中延迟小、数据传输效率高,开销小。当某个程序的目标是尽快地传输尽可能多的信息时,可使用 UDP -
25端口为SMTP(Simple MMail Transfer Protocol,简单邮件传输协议)服务器所开放,主要用于发送邮件。
110端口是为POP3(邮件协议3)服务开放的,POP2、POP3都是主要用于接收邮件的,目前POP3使用的比较多,许多服务器都同时支持POP2和POP3。客户端可以使用POP3协议来访问服务端的邮件服务。 -
127.0.0.1是回送地址,指本地机,一般用来测试使用。
回送地址(127.x.x.x)是本机回送地址(LoopbackAddress)即主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回,不进行任何网络传输。 -
网络建设主要包括网络需求分析、网络体系结构设计、网络安全性设计、设备造型等阶段。网络需求分析阶段主要完成:了解企业用户的现状、弄清用户的目的、掌握资金投入的额度、了解企业用户环境、确定企业用户的数据流管理架构等工作。
网络体系结构设计阶段的主要任务是确定网络的层次结构及各层采用的协议。
网络安全性设计阶段的主要任务是完成可靠性与容错设计、网络安全体系的设计。
网络设备选型阶段的主要任务是根据体系结构、安全性要求、结合经济可行性等确定网络设备的选型 -
在 Linux 中,要更改一个文件的权限设置可使用chmod命令
-
DNS查询:客户端先本地缓存记录,再看HOST表如果没有找到就发请求给本地域名服务器。本地域名服务器先看区域数据配置文件,再看缓存然后去找到根域名服务器-顶级域名服务器-权限域名服务器。
-
PGP(Pretty Good Privacy),是一个基于RSA公钥加密体系的邮件加密软件。可以用它对邮件保密以防止非授权者阅读,它还能对邮件加上数字签名从而使收信人可以确认邮件的发送者,并能确信邮件没有被篡改。它可以提供一种安全的通讯方式,而事先并不需要任何保密的渠道用来传递密匙。它采用了一种RSA和传统加密的杂合算法,用于数字签名的邮件文摘算法,加密前压缩等,还有一个良好的人机工程设计。它的功能强大,有很快的速度。
-
利用需求分析和现有网络体系分析的结果来设计逻辑网络结构,最后得到一份逻辑网络设计文档,输出内容包括以下几点:
1、逻辑网络设计图
2、IP地址方案
3、安全方案
4、招聘和培训网络员工的具体说明
5、对软硬件、服务、员工和培训的费用初步估计
物理网络设计是对逻辑网络设计的物理实现,通过对设备的具体物理分布、运行环境等确定,确保网络的物理连接符合逻辑连接的要求。输出如下内容:
1、网络物理结构图和布线方案
2、设备和部件的详细列表清单
3、软硬件和安装费用的估算
4、安装日程表,详细说明服务的时间以及期限
5、安装后的测试计划
6、用户的培训计划 -
MlME(Multipurpose Internet Mail Extensions)中文名为:多用途互联网邮件扩展类型。Internet电子邮件由一个邮件头部和一个可选的邮件主体组成,其中邮件头部含有邮件的发送方和接收方的有关信息。而MIME是针对邮件主体的一种扩展描述机制。它设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。所以这是与邮件内容直接相关的一个协议。而S/MIME(Secure Multipurpose Internet Mail Extensions)是对MIME在安全方面的扩展。它可以把MIME实体(比如数字签名和加密信息等)封装成安全对象。增强安全服务,例如具有接收方确认签收的功能,这样就可以确保接收者不能否认已经收到过的邮件。还可以用于提供数据保密、完整性保护、认证和鉴定服务等功能。S/MIME只保护邮件的邮件主体,对头部信息则不进行加密以便让邮件成功地在发送者和接收者的网关之间传递。
-
网络攻击手段多种多样,常见的形式包括口令入侵放置特洛伊木马程序、DoS攻击、端口扫描、网络监听、欺骗攻击、电子邮件攻击等钓鱼网站属于欺骗攻击中的Web欺骗,Web欺骗允许攻击者创造整个WWW世界的影像拷贝。影像Web的入口进入到攻击者的Web服务器,经过攻击者机器的过滤作用,允许攻击者监控受攻击者的任何活动,包括账户和口令电子邮件攻击主要表现为向目标信箱发送电子邮件炸弹。所谓的邮件炸弹实质上就是发送地址不详且容量庞大的邮件垃圾。而多个邮箱群发同一封电子邮件不定是攻击行为。
-
在HTML语言中,可通过<script>标签来定义客户端脚本。
-
Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。
nslookup可以指定查询的类型,可以查到DNS记录的生存时间还可以指定使用哪个DNS服务器进行解释。在已安装TCP/IP协议的电脑上面均可以使用这个命令,
利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障,Tracert(跟踪路由)是路由跟踪实用程序,用于确定IP数据包访问目标所采取的路径。Tracert 命令使用用IP 生存时间(TTL)字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。 -
-
SHA-I是一种针对不同输入生成160位固定长度摘要的算法。
-
DNS域名解析有两种算法递归查询,一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机。本题本地域名服务器以及中介域名服务器采用递归查询。迭代查询(反复查询),一般DNS服务器之间属迭代查询,如:若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便其再向DNS3发出请求。本题根域名服务器采用迭代算法查询,授权域名服务器可能是递归查询也可能是迭代查询因此无法确定。
-
IPv4地址用4个字节即32位表示,前20位作为网络地址,第21至第24位为子网号(占5位),剩余第25至31位为主机号(占7位)因此子网掩码占25位,最后一个字节的左边第一位是1,即27=128,子网掩码为255.255.255.128。主机号占7位,去掉全是0和全是1,实际为126。 -
DMZ是指非军事化区,也称周边网络,可以位于防火墙之外也可以位于防火墙之内。非军事化区一般用来放置提供公共网络服务的设备。这些设备由于必须被公共网络访问,所以无法提供与内部网络主机相等的安全性。
Web服务器是为一种为公共网络提供Web访问的服务器:
网络管理服务器和入侵检测服务器是管理企业内部网和对企业内部网络中的数据流进行分析的专用设备,一般不对外提供访问;
而财务服务器是一种仅针对财务部门内部访问和提供服务的设备,不提供对外的公共服务。 -
POP3(Post Office Protocol 3)协议是适用于C/S结构的脱机模型的电子邮件协议。SMTP(Simple Mail Transfer Protocol)协议是简单邮件传输协议。
IMAP(Internet Message Access Protocol)是由美国华盛顿大学所研发的一种邮件获取协议。MPLS(MultiprotocolLabel Switch)即多协议标记交换,是一种标记(label)机制的包交换技术。 -
包过滤防火墙是一种通过软件检查数据包以实现系统安全防护的基本手段,数据包过滤用在内部主机和外部主机之间,过滤系统可以是一台路由器或是一台主机。
通常通过查看所流经的数据包的包头来决定整个包的命运,可能会决定丢弃这个包,可能会接受这个包(让这个包通过),也可能执行其他更复杂的动作。具体来说,包过滤防火墙通常根据数据包源地址、目的地址、端口号和协议类型等标志设置访问控制列表实现对数据包的过滤。
包过滤是在IP层实现的,包过滤根据数据包的源IP地址、目的IP地址、协议类型(TCP包、UDP包、ICMP包)、源端口、目的端口等包头信息及数据包传输方向等信息来判断是否允许数据包通过,
当网络规模比较复杂时,由于包过滤防火墙要求逻辑的一致性、封堵端口的有效性和规则集的正确性等原因,会导致访问控制规则复杂,难以配置管理。 -
三重DES的密钥长度为112位,DES加密算法的密钥长度为56位。
-
实现VPN的关键技术主要有隧道技术、加解密技术、密钥管理技术和身份认证技术。
L2TP、PPTP是两种链路层的VPN协议,TLS是传输层VPN协议,IPsec是网络层VPN协议。 -
动态主机配置协议DHCP通过服务器的IP地址数据库动态管理网络上的IP地址和其他相关配置,是BOOTP协议的扩充。BOOTP是一种基于UDP的协议,主要用于无盘工作站从服务器获得自己的IP地址。DHCP是从原来的BOOTP协议发展而来的,引入“租约“概念,分为两部分:服务器端和客户端(C/S模式)。DHCP服务器集中管理IP地址的动态分配以及网络上启用DHCP客户端的其他相关配置信息,并负责处理客户端的DHCP要求:而客户端则使用服务器端分配下来的IP网络配置数据,UDP67用于DHCP服务器,UDP68用于DHCP客户端。从而简化TCP/IP设置,例如工作站、网络服务器、路由器等的配置。
FTP(FileTransferProtocol,文件传送协议)是因特网上使用得最广泛的文件传送协议,采用CS工作模式。通过建立TCP连接,使网络上不同主机之间能够进行高效的文件传输,实现文件资源共享和信息传递。 -
网络安全包含了网络信息的可用性、保密性、完整性和网络通信对象的真实性。
其中,数字签名是对真实性的保护。 -
FTP 端口号是20(数据)、21(控制);
SMTP 端口号是25、
Telnet端口号是23;
DNS端口号是53
HTTP端口号是80 -
被动攻击是对信息的保密性进行攻击,即通过窃听网络上传输的信息并加以分析从而获得有价值的情报,但它并不修改信息的内容。它的目标是获得正在传送的信息,其特点是偷听或监视信息的传递。被动攻击只对信息进行监听,不对其进行修改。
被动攻击包括信息内容泄露和业务流分析2大类,具体如下,
(1)窃听:信息在通信过程中因被监视窃听而泄露
(2)电磁或射频截获:信息从电子或机电设备所发出的无线电磁波中被提取出来,
(3)业务流分析:通过观察通信业务流模式,使非授权实体(人或系统)获得信息等。
主动攻击是攻击信息来源的真实性、信息传输的完整性和系统服务的可用性,有意对信息进行修改、插入和删除。
主要包括如下内容:
(1)截获或修改:某一通信数据在传输过程中被改变插入和替代;
(2)重放:把所截获的某次合法通信数据复制,出于非法目的重新发送,
(3)伪装:某个实体假装成另一个实体,并获取该实体的权限;
(4)非法使用:某一资源被某个非授权实体或以某一非授权方式使用;
(5)服务拒绝:攻击者通过对系统进行非法的和根本无法成功的访问尝试而产生过量的负荷,使合法用户的访问无条件地被阻止;
(6)特洛伊木马:含有一个觉察不出或无害程序段的软件,当它被运行时,却能危害系统的安全;
(7)陷门:在某个系统或其部件中设置“机关”,使在提供特定的输入数据时发生违反安全策略的操作等, -
在安全的开放环境中,用户可以使用各种安全应用。安全应用由一些安全服务来实现;安全服务又是由各种安全机制或安全技术实现的,同一安全机制有时也可以用于实现不同的安全服务。安全服务主要有如下内容。
(1)认证:包括实体认证与数据源认证
(2)数据保密性:包括连接机密性、无连接机密性、选择域机密性与业务流机密性,
(3)数据完整性:包括有恢复连接完整性、无恢复连接完整性、选择域连接完整性、无连接完整性与选择域五连接完整性
(4)抗抵赖性:包括有源端证据的抗抵赖性与有交付证据的抗抵赖性
(5)访问控制:决定了谁能够访问系统,能访问系统的何种资源以及如何使用这些资源。适当的访问控制能够阻止未经允许的用户有意或无意地获取数据。访问控制的手段包括用户识别代码、口令、登录控制、资源授权(例如用户配置文件、资源配置文件和控制列表)、授权核查、日志和审计。 -
安全机制主要有如下内容。
(1)加密机制。存在加密机制意味着存在密钥管理机制:
(2)数字签名机制;
(3)访问控制机制;
(4)数据完整性机制;
(5)认证机制;
(6)通信业务填充机制;
(7)路由控制机制;
(8)公证机制。
加密是利用密钥及加密算法完成明文及密文之间的转换,可提供保密性,也成为数字签名、认证等其他机制的一部分。访问控制是控制不同的用户对信息资源的访问权限,它基于规则策略的存取控制和基于存取身份的两种方式访问控制。 -
网络攻击的主要手段包括口令入侵、放置特洛伊木马程序、拒绝服务(DoS)攻击、端口扫描、网络监听、欺骗攻击和电子邮件攻击等。
口令入侵是指使用某些合法用户的账号和口令登录到目的主机,然后再实施攻击活动。
特洛伊木马(Trojans)程序常被伪装成工具程序或游戏,一旦用户打开了带有特洛伊木马程序的邮件附件,或从网上直接下载,或执行了这些程序之后,当用户连接到互联网上时,这个程序就会将用户的IP地址及被预先设定的端口通知黑客。
拒绝服务(DoS)攻击目的是使计算机或网络无法提供正常的服务。最常见的拒绝服务攻击有网络带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求无法通过。连通性攻击是指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。
端口扫描就是利用Socket编程与目标主机的某些端口建立TCP连接、进行传输协议的验证等,从而侦知目标主机的扫描端口是否处于激活状态、主机提供了哪些服务、提供的服务中是否含有某些缺陷等。
网络监听是主机的一种工作模式,在这种模式下,主机可以接收到本网段在同一条物理通道上传输的所有信息。使用网络监听工具可轻而易举地截取包括口令和账号在内的信息资料。
欺骗攻击是攻击者创造一个易于误解的上下文环境以诱使受攻击者进入并且做出缺乏安全考虑的决策。IP欺骗是欺骗攻击的一种,IP欺骗的实现过程是:使得被信任的主机丧失工作能力,同时采样目标主机发出的TCP序列号,猜测出它的数据序列号。然后,伪装成被信任的主机,同时建立起与目标主机基于地址验证的应用连接。如果成功,黑客可以使用一种简单的命令放置一个系统后门,以进行非授权操作。 -
Ping发送-个CMP(Internet Control Messages Protocol)即因特网信报控制协议;回声请求消息给目的地并报告是否收到所希望的ICMPecho(ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令。
-
FTP是File Transfer Protocol(文件传输协议)的英文简称,中文简称为“文传协议”。FTP用于在Internet上控制文件的双向传输。用户可以通过它把自己的PC与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP的功能,就是让用户连接上一个远程运行着FTP服务器程序的计算机,进行两台计算机之间的文件传输。在FTP的使用当中,用户经常遇到两个概念:就是”下载”(Download)和“上传”(Upload)
HTTP(HyperTextTransfer Protocol)是超文本传输协议的英文简称,它是客户端浏览器或其他程序与Wed服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SNMP(Simple Network Management Protocol简单网络管理协议)用来对通信线路进行管理。应选择硍听。 -
IEEE 802.1是协议概论。
IEEE802.3是局域网协议。
IEEE802.6是城域网协议。WLAN
IEEE802.11是无线局域网协议。 -
ARP是地址解析协议,将IP地址解析成MAC地址;(根据IP地址查询MAC地址)
RARP是逆地址解析协议,将MAC地址解析成IP地址;
DHCP提供了一种机制,是的使用DHCP可以自动获得IP的配置信息无需手工干预;(为主机动态分配IP地址)
简单网络管理协议(SNMP)是专门设计用于在IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议。 -
数据链路层设备(交换机、网桥)可以隔离冲突域不能隔离广播域。
网络层设备(路由器)既可以隔离冲突域,又可以隔离广播域。
物理层设备(中继器、集线器)无法隔离冲突域和广播域。 -
在报文交换中,交换的数据是报文。由于报文大小不固定,在交换节点中需要较大的存储空间,另外报文经过中间节点的接收、存储、转发时间较长,而且也不固定,因此不能用于实时通信应用环境,如语音,视频等。
-
电气特性:规定传输二进制位时,线路上信号的电压高低、阻抗匹配、传输速率和距离限制等。
功能特性:指明某条线路上出现的某一电平表示的意义,以及接口部件的信号线的用途。 -
数据压缩技术,密钥密码理论在OSI参考模型中属于表示层
数据的格式转换及压缩属于OSI参考模型中表示层的功能。
表示层是对数据表示处理,如数据压缩、加密解密等 -
私钥是不公开的。
-
所谓静态绑定是指在程序编译过程中,把函数(方法或者过程)调用与响应调用所需的代码结合的过程。
动态绑定是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用相应的方法, -
高级加密标准(Advanced Encryption Standard,AES)
是一种分组(对称)加密算法,替代了原先的DES,是目前最流行的算法之一。 -
防火墙通常分为内网、外网和DMZ三个区域,按照受保护程度,从低到高正确的排列次序为
受保护程度:外网<DMZ<内网
防火墙认为内部网络是安全和可信赖的,而外部网络是不安全和不可信赖的。因此受保护的程度外网是最低而内网是最高的。 -
ARP request报文用来获取目的主机的MAC地址,ARP request报文采用广播的方式在网络上传送,该网络中所有主机包括网关都会接受到此ARPrequest 报文。
接收到报文的目的主机会返回一个ARP Response报文来响应,ARP Response报文是以单播的方式传送的。 -
以下是对于路由协议的叙述中。
路由协议是通过执行一个算法来完成路由选择的一种协议
动态路由协议可以分为距离向量路由协议和链路状态路由协议
路由器之间可以通过路由协议学习网络的拓扑结构 -
RARP(Reverse Address Resolution Protocol 反向地址解析协议),反向地址解析协议用于将局域网中某个主机的物理地址(MAC地址)转换为IP地址。
ARP(Address Resolution Protocol地址解析协议),是根据IP地址获取物理地址(MAC地址)的一个TCP/IP协议。
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。
SLIP(Serial Line Internet Protoco1串行线路互联网络协议)是在串行通信线路上支持TCP/IP协议的一种点对点(Point-to-Point)式的链路层通信协议,不但能够发送和接收IP da还提供了TCP/IP的各种网络应用服务(如rlogin、telnetagram,t、fp、rtp等)。个人用户可利用SLIP协议拨号上网,行业用户则可通过租用SLIP专线远程传输业务数据 -
如果本地的DNS服务器工作不正常或者本地DNS服务器网络连接中断都有可能导致该计算机的DNS无法解析域名,而如果直接将该计算机的DNS服务器设置错误也会导致DNS无法解析域名,从而出现使用域名不能访问该网站,但是使用该网站的IP地址可以访问该网站。但是该计算机与DNS服务器不在同一子网不会导致DNS无法解析域名的现象发生,通常情况下大型网络里面的上网计算机与DNS服务器本身就不在一个子网,只要路由可达DNS都可以正常工作。
-
Telnet协议是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。
RFB(Remote Frame Buffer 远程帧缓冲)协议是一个用于远程访问图形用户界面的简单协议。
SSH协议是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
主机与本地路由器之间使用Internet组管理协议(IGMP,Internet Group Management Protocol)来进行组播组成员信息的交互, -
HTTP在传输层使用TCP,端口号为80端口。TCP的25端口是为SMTP保留的。
-
建立浏览器与服务器之间的连接需要知道服务器的!P地址和端口号(80端口是熟知端口),而访问站点时浏览器从用户那里得到的是WWW站点的域名,所以浏览器必须首先向DNS请求域名解析,获得服务器的P地址后,才能请求建立TCP连接。
-
直接为会话层提供服务的是会话层的下一层,即传输层
-
如果一个协议使用确认机制对传输的数据进行确认,那么可以认为它是一个可靠的协议;
如果一个协议采用“尽力而为”的传输方式,那么是不可靠的。
例如,TCP对传输的报文段提供确认,因此是可靠的传输协议,
而UDP不提供确认,因此是不可靠的传输协议。 -
SMTP和POP3都是基于TCP的协议,提供可靠的邮件通信。
-
CA证书是CA颁发的证书,CA证书也是我们说的数字证书,它包含证书拥有者的身份信息,CA机构的签名,公钥和私钥。身份信息用于证明证书持有者的身份,CA签名用于保证身份的真实性,公钥和私钥用于通信过程中加解密,从而保证通讯信息的安全性。因此数字证书一般依靠CA中心的非对称密钥机制来实现
-
IPv6 的地址用16B即128bit表示,比IPv4长的多,地址空间是IPV4的2^96倍。
-
常用协议端口号情况如下:
POP3:TCP的110端口,邮件收取。
SMTP:TCP的25端口,邮件发送。
FTP:TCP的20数据端口/21控制端口,文件传输协议。
HTTP:TCP的80端口,超文本传输协议,网页传输。
DHCP:UDP的67端口,IP地址自动分配。
SNMP:UDP的161端口,简单网络管理协议。
DNS:UDP的53端口,域名解析协议,记录域名与IP的映射关系。 -
ipconfig 是调试计算机网络的常用命令,通常用来显示计算机中网络适1配器的 IP 地址、子网掩码及默认网关等信息。
ipconfig :显示所有网络适配器的IP 地址、子网掩码和缺省网关值;
ipconfig /all:显示所有网络适配器的完整TCP/IP配置信息,包括DHCP服务是否已启用;。ipconfig /renew: DHCP客户端手工向服务器刷新请求,重新申请IP地址;
ipconfig /release: DHCP客户端手工释放IP地址。 -
网络攻击分为主动攻击和被动攻击两种。
主动攻击包含攻击者访问他所需信息的故意行 为。
比如通过远程登录到特定机器的邮件端口以找出企业的邮件服务器的信息;伪造无效IP地址去连接服务器,使接收到错误IP 地址的系统浪费时间去连接那个非法地址。
攻击者是在主动地做一些不利于你或你的公司系统的事情。
主动攻击包括拒绝服务(DoS)攻击、分布式拒绝服务(DDoS)攻击、信息篡改、资源使用、欺骗伪装、重放等攻击方法。
被动攻击主要是收集信息而不是进行破坏,数据的合法用户对这种活动一点也不会觉察到。
被动攻击包括嗅探、信息收集等攻击方法。 -
防火墙是阻挡对网络的非法访问和不安全数据的传递,使得本地系统和网络免于受到许多网络安全威胁。入侵检测系统(IDS)注重的是网络安全状况的监管通过监视网络或系统资源,寻找违反安全策略的行为或攻击迹象,并发出报警。因此绝大多数IDS系统都是被动的。
入侵防护系统(IPS)则倾向于提供主动防护,注重对入侵行为的控制。其设计宗旨是预先对入侵活动和攻击性网络流量进行拦截,避免其造成损失。网络蜜罐技术是一种主动防御技术,是入侵检测技术的一个重要发展方向。蜜罐系统是一个包含漏洞的诱骗系统,它通过模拟一个或多个易受攻击的主机和服务,给攻击者提供一个容易攻击的目标。 -
资源有限的情况下优先保障高优先级的目标
-
漏洞扫描是指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测(渗透攻击)行为。漏洞扫描技术是一类重要的网络安全技术。它和防火墙、入侵检测系统互相配合,能够有效提高网络的安全性。
-
报文摘要用于对发送的报文生成一个非常小的摘要信息。这个摘要信息保证原报文的完整性,即原报文只要有一位被改变,则摘要信息就会不匹配,可以防止篡改。
用私钥对摘要做加密,不仅保证了摘要的私密性,还可以防止抵赖。因为只有匹配的公钥能够解开。也就是说,如果用某人的公钥能够解开报文,说明就是某人做的。 -
VLANtag在OSI参考模型的数据链路层
-
HTTPS协议是以安全为目标的HTTP通道,HTTPS是HTTP的安全版,使用SSL和TLS加密协议做加密传输。不同于HTTP协议使用TCP 80端口,HTTPS使用TCP端口443。
对于电子支付类高安全性网站应使用HTTPS协议而不是HTTP协议。 -
IPV4的地址长度是32位,IPV6的地址长度是128位:而MAC的地址长度是48位。IP地址提供了网络层的寻址功能,工作在网络层。而MAC地址提供了数据链路层的寻址,工作在数据链路层。
IP地址的分配是基于网络拓扑的逻辑规划设计,而MAC 地址的分配是基于制造商,每个制造商都拥有一定数量的MAC地址。
MAC地址是全球唯一的,但IP地址不是唯一的,例如PV4有三个段是局域网专用地址,各个局域网可以复用这些IP,在需要连网时再通过NAT技术转换到广域网或互联网IP -
X.509是国际密码学里公钥证书的格式标准,推荐使用的密码算法是RSA。
而国密SM2数字证书采用的公钥密码算法是ECC基于椭圆曲线的公钥密码算法。
ECC算法与RSA算法相比具有加密强度高、计算速度快的优点。 -
震网,指一种蠕虫病毒。于2010年6月首次被检测出来,是第一个专门定向攻击真实世界中基础(能源)设施的“蠕虫“病毒,比如核电站,水坝,国家电网。
-
数字证书确认身份,数字签名确保消息不可否认
-
根据我国《综合布线系统工程设计规范GB50311-2007》相关条文规定,综合布线系统工程宜按工作区、配线(水平)子系统、干线子系统、建筑群子系统、设备间、进线间、管理7个部分进行设计。
其中,
建筑群(或园区)子系统是指连接各个建筑物的通信系统;
工作区是指由终端到信息插座之间的连线系统;
配线(水平)子系统是指楼层接线间到工作区的线缆系统;
干线子系统是指各楼层设备之间的互连系统。 -
网络202.105.192.0/19的二进制表示为:
11001010 01101001 11000000 00000000,
即前19位是网络号:而C类地址前24位位网络地址,可表示2^(24-19)=32个
这其中包含32个C类网络 -
HTTP在传输层使用TCP,端口号为80端口。TCP的25端口是为SMTP保留的。
-
IP首部结构
-
FTP文件共享是可靠但不安全的方式,TFTP文件共享是不可靠且不安全的。
ICMP是Internet控制报文协议,与文件传输功能无关。SFTP指的是SSH文件传输协议(SSH File Transfer Protocol),是一数据流连接,提供文件访问、传输和管理功能的网络传输协议。SFTP协议提供了一个安全通道,用于在网络上的主机之间传输文件。SFTP是SSH协议的一部分,它是-种远程登录信息,基于SSH来加密传输文件,可靠性高,可断点续传。SFTP会在发送之前加密数据,二进制的形式传递,是无法“按原样“阅读的,安全性较高。只有SFTP涉及文件安全传输。本题选择B选项。 -
杀毒软件,也称反病毒软件或防毒软件,是用于消除电脑病毒、特洛伊木马和恶意软件等计算机威胁的一类软件。杀毒软件通常集成监控识别、病毒扫描和清除、自动升级、主动防御等功能,有的杀毒软件还带有数据恢复、防范黑客入侵、网络流量控制等功能是计算机防御系统(包含杀毒软件,防火墙,特洛伊木马和恶意软件的查杀程序,入侵预防系统等)的重要组成部分。杀毒软件是一种可以对病毒、木马等切已知的对计算机有危害的程序代码进行清除的程序工具。杀毒软件只能防病毒,不能有效防止网站信息被篡改。
-
数据链路层(Data Link Layer)是 OSI模型的第二层,负责建立和管理节点间的链路。该层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的。
-
当用户在浏览器地址栏输入域名时:
1.在浏览器地址栏输入域名
2.DNS解析IP
3.在发送http请求前,先进行DNS域名解析,获取访问的IP地址
4.浏览器向服务器发起tcp连接,与浏览器建立tcp=次握手
5.握手成功后,浏览器向服务器发送http请求
6.服务器接收请求,处理并返回响应
7.浏览器接收到服务器HTTP响应内容
8.浏览器进行渲染,解析HTML生成DOM树,解析CSS生成规则树,js引擎解析js
9.渲染完毕,四次挥手,关闭tcp连接 -
FTP是文件传输协议,SMTP电子邮件传输的协议负责邮件的发送,POP收邮件,IMAP交互邮件访问协议。
-
传输层负责数据通信,建立主机端到端的链接,为会话层和网络层提供端到端可靠的和透明的数据传输服务,确保数据能完整的传输到网络层。
会话层负责创建、管理和维护会话,接收来自传输层的数据,负责建立、管理和终止表示层实体之间的通信会话,支持它们之间的数据交换。
表示层负责数据编码、格式转换、数据加密,提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。
应用层为计算机用户、各种应用程序以及网络提供接口,也为用户直接提供各种网络服务。 -
Web应用防护墙(Web Application Firewall,简称WAF)是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品,主要用于防御针对网络应用层的攻击,像SQL注入、跨站脚本攻击、参数篡改、应用平台漏洞攻击、拒绝服务攻击等。
流氓软件已经处于系统内部了,无法有效防止。 -
FTP(File Transport Protocol,文件传输协议)是网络上两台计算机传送文件的协议,运行在TCP 之上,是通过 Internet 将文件从一台计算机传输到另一台计算机的一种途径。
HTTP(Hypertext Transfer Protocol,超文本传输协议)是用于从 WWW 服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。
SSL(Secure Sockets Layer,安全套接层)协议是介于应用层和TCP层之间的安全通信协议,提供保密性通信、点对点身份认证、可靠性通信三种安全通信服务。其继任者为传输层安全协议(TLS:TransportLayer Security)。
DNS(Domain NameSystem,域名系统)把主机域名解析为IP地址的系统。 -
lS(InternetInformation Services,互联信息服务)是微软公司提供的一种基于Windows的Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面。
Apache是当前最流行的Web服务器端软件之一,可以运行在几乎所有广泛使用的计算机平台。Apache默认的 Web目录为”/home/httpd'
NFS(Network File System,网络文件系统)由SUN公司研制的协议可以让使用者访问网络上别处的文件就像在使用自己的计算机一样。
MySQL是一种关系型数据库管理系统。 -
ICMP协议的作用是报告IP数据报传送中的差错
-
TCP/IP 是基于 TCP 和 IP 这两个最初的协议之上的不同的通信协议的大的集合,是传输控制协议/互联网络协议。
-
单工数据传输是只支持数据在一个方向上传输;在同一时间只有方能接受或发送信息,不能实现双向通信,举例:电视,广播。
半双工数据传输:允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;在同一时间只可以有一方接受或发送信息,可以实现双向通信。举例:对讲机。
全双工数据通信:允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力;在同一时间可以同时接受和发送信息,实现双向通信,如电话通信。 -
收发器的最小距离传输距离是2.5M。
-
防火墙的主要功能有过滤进出网络的数据、管理进出访问网络的行为、封堵某些禁止业务、记录通过防火墙信息内容和活动、对网络攻击检测和告警。
-
DOS(DenialofService)即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。
-
加密是利用密钥及加密算法对明文进行加密,保证了数据保密性,也成为数字签名、认证等其他机制的一部分,而访问控制是控制不同的用户对信息资源的访问权限,它基于规则策略的存取控制和基于存取身份的两种方式访问控制。
-
属于安全协议的是IPsec、 SFTP 、HTTPS
-
DES是一种对称密钥算法。
-
防火墙技术经历了包过滤、应用代理网关和状态检测技术三个发展阶段。
-
报文摘要算法生成报文摘要的目的是()。防止发送的报文被篡改
-
《中华人民共和国密码法》于2019年10月26日通过自2020年1月1日起施行。《中华人民共和国密码法》将密码分为核心密码、普通密码和商用密码。
其中核心密码、普通密码用于保护国家秘密信息,
核心密码保护信息的最高密级为绝密级,
普通密码保护信息的最高密级为机密级。
商用密码用于保护不属于国家秘密的信息,
公民、法人和其他组织可以依法使用商用密码保护网络与信息安全 -
SMTP用来发送电子邮件,FTP用来传输文件,HTTP用来传输网页文件,都对可靠性的要求较高,因此都用传输层有连接的TCP服务。
无连接的UDP服务效率更高,开销小,DNS在传输层采用无连接UDP服务, -
在浏览器和服务器之间进行交互的过程中,浏览器会先用服务器的公钥(包含在权威机构发布的证书中)去验证服务器证书的合法性,这属于公钥加密技术。
之后浏览器还会用这个技术加密浏览器端的对称密钥,发送服务端,在得到服务端返回的消息后(已用得到的浏览器密钥加密),用自己的对称密钥去解密拿到数据。
这个过程有些繁琐,但是很容易看出来使用的是会话密钥(又叫对称密钥)与公钥加密技术的结合。 -
浏览器与服务器是通过权威机构颁发的证书去建立信任关系的,
如果服务器的证书被撤销,则客户端无法信任服务器。 -
访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。访问控制列表被广泛地应用于路由器和三层交换机,借助于访问控制列表,可以有效地控制用户对网络的访问,从而最大程度地保障网络安全。
源地址转换(SNAT)是内网地址向外访问时,发起访问的内网ip地址转换为指定的ip地址(可指定具体的服务以及相应的端口或端口范围),这可以使内网中使用保留ip地址的主机访问外部网络,即内网的多部主机可以通过一个有效的公网ip地址访问外部网络。
入侵检测是防火墙的合理补充,帮助系统对付网络攻击,扩展了系统管理员的安全管理能力(包括安全审计、监视、进攻识别和响应),提高了信息安全基础结构的完整性。它从计算机网络系统中的若干关键点收集信息,并分析这些信息,看看网络中是否有违反安全策略的行为和遭到袭击的迹象。入侵检测被认为是防火墙之后的第二道安全闸门,在不影响网络性能的情况下能对网络进行监测,从而提供对内部攻击、外部攻击和误操作的实时保护。
防病毒指用户主动性的防范电脑等电子设备不受病毒入侵,从而避免用户资料泄露、设备程序被破坏等情况的出现。 -
公司总部与分部之间通过Internet传输数据,需要采用加密方式保障数据安全。
加密算法中,对称加密比非对称加密效率要高。
RSA和ECC属于非对称加密算法MD5为摘要算法,故选择RC-5。 -
常见的摘要算法有:MD5、SHA等
MD5:信息摘要算法第五版,输入以512位为分组进行处理,产生一个128位的输出。
第四节 程序语言基础(编译原理)
- 编译程序中语法分析器接受以单词为单位的输入,并产生有关信息供以后各阶段使用。
算符优先法、LR分析法和递归下降法是几种常见的语法分析技术。
LR分析法主要有SLR(1)、LR(0)、LR(1)和LALR(1)等4种
其中LR(1)的分析能力最强,LR(0)的分析能力最弱。 - 传值调用:形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变。
实参的值——>形参
引用(传址)调用:形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值 - +表示1个或多个。
- 词法分析遵循的是构词规则,
语法分析遵循的是语法规则,
中间代码生成遵循的是语义规则,并且语义规则可以定义一个程序的意义。 - 各阶段处理错误总结
(1)词法分析阶段处理的错误:非法字符、单词拼写错误等
(2)语法分析阶段处理的错误:标点符号错误、表达式中缺少操作数、括号不匹配等有关语言结构上的错误
(3)静态语义分析阶段处理的错误:运算符与运算对象类型不合法等错误
(4)目标代码生成阶段(执行阶段)处理的错误:动态语义错误,包括陷入死循环、变量取零时做除数、引用数组元素下标越界等错误。 - 使用中间代码可提高编译程序的可移植性,常见的有逆波兰记号、四元式、三元式和树。
在词法分析阶段输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词,删掉无用的信息,报告分析时的错误。
在语法分析阶段,按语法规则分析检查每条语句是否有正确的语法结构。
语义分析阶段:主要检查源程序是否存在静态语义错误,并收集类型信息供后面的代码生成阶段使用。 - 解释程序也称为解释器,它或者直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行;
编译程序(编译器)则是将源程序翻译成目标语言程序然后在计算机上运行目标程序。
两种语言处理程序的根本区别是:
在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程,
而在解释方式下,解释程序和源程序(或某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。
解释器翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立的目标程序。 - Python语言的模块中,支持深度学习模型
TensorFlow
PyTorch
Keras - Matplotlib是Python的绘图库,可以绘制直方图、条形图、散点图等图形。
- 词法分析的任务是输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词,删掉无用的信息,报告分析时的错误。
语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位。通过语法分析确定整个输入串是否构成一个语法上正确的程序。
语义分析阶段的任务主要检查源程序是否存在语义错误,并收集类型信息供后面的代码生成阶段使用。 - 当函数调用执行时,在栈顶创建并临时保留的一段存储空间即栈帧中,会存放调用函数时的返回地址、形参变量和局部变量。而全局变量存放在程序的静态存储区,位置是相对固定、独立的。
- 编译器的工作方式及特点是:先翻译后执行,用户程序运行效率高但可移植性差。
解释器的工作方式及特点是:边翻译边执行,用户程序运行效率低但可移植性好。 - 在Python3中对结构化异常的处理语法为
try:可能发生异常的程序块
raise Exception1("主动抛出的异常")
except Exception1:指定一个异常的处理
except (Exception2,Exception3,..,Exceptionn)指定多个异常的处理
except:所有其他异常的处理
else:没有出现异常时的处理
finally:无论是否出现异常都要进行的处理
但是没有try catch的语法结构。 - 在编译方式下,先将源程序翻译为等价的目标程序源程序的翻译和目标程序的运行是完全独立的两个阶段;
而解释方式下,对源程序的翻译和运行是结合在一起进行的,并不生成目标代码。编译过程基本上可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等几个阶段,其中,中间代码生成和代码优化不是必须的。
在词法、语法、语义分析方面,编译方式和解释方式没有区别 - Python不支持char类型、byte类型
- 一般将多态分为通用多态和特殊多态。
其中通用多态包括参数多态和包含多态,
参数多态利用泛型编程是发散式的,是静态绑定的,让相同的实现代码应用于不同场合,看重的是算法的普适性,
包含多态利用OOP,是收敛的,是动态绑定的,让不同的实现代码应用在相同的场合,注重接口与实现的分离度。
特殊多态包括强制多态和过载多态,
其中强制多态即一种类型的变量在作为参数传递时隐式转换成另一种类型,比如一个整型变量可以匹配浮点型变量的函数参数,
过载多态同一个名(操作符,函数名)在不同的上下文中有不同的类型。程序设计语言中基本类型的大多数操作符是过载多态。 - 函数调用与函数本身的关联,以及成员访问与变量内存地址之间的联系,称为绑定。
在计算机语言中有两种主要的绑定方式,即静态绑定和动态绑定。
静态绑定发生于数据结构和数据结构间,程序执行前,有编译时绑定,通过对象调用,因此不能运用任何运行期的信息。它针对函数调用与函数的主体,或是变量与内存中的区块:
动态绑定则是运行时绑定,通过地址实现,只用到运行期的可用信息。题目中把调用和响应调用所需执行的代码加以结合发生在编译后,因此属于动态绑定。 - 单一职责原则:设计目的单一的类。
无环依赖原则:在包的依赖关系图中不允许存在环即包之间的结构必须是一个直接的无环图形。
依赖倒置原则:要依赖于抽象,而不是具体实现;
针对接口编程,不要针对实现编程。
里氏替换原则:子类可以替换父类。 - 不可变数据(3个):Number(数字)、String(字符串)、Tuple(元组)
可变数据(3个):List(列表)、Dictionary(字典)、Set(集合)。
tuple(元组)
类似于list列表,元组用()标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
dict(字典)
是除列表以外python之中最灵活的内置数据结构类型;列表是有序的对象集合,字典是无序的对象集合;字典用"{}"标识;字典由索引(key)和它对应的值value组成。
list(列表)
可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套或者叫多维列表,可以用来表示多维数组)。列表用]标识,是 python 最通用的复合数据类型,
set(集合)
是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员;基本功能是进行成员关系测试和删除重复元素;可以使用大括号{}或者 set0) 函数创建集合。 - 短路运算特点是:
当“and“前面为假时“and“后面的不计算;
“or“前面为真时“or“后面的不计算。
且是有假即假,或是有真即真 - 程序运行时内存布局分为代码区、栈区、堆区和静态数据区。
全局变量和静态变量的存储空间在静态数据区分配。
函数中定义的局部自动变的存储空间是在栈区动态分配的,随着函数被执行而为其分配存储空间,当函数执行结束后由系统回收。 - 词法分析遵循的是构词规则,
语法分析遵循的是语法规则,
中间代码生成遵循的是语义规则,
并且语义规则可以定义一个程序的意义。 - 程序语言的基本成分。
程序设计语言的
语法是语言的外观。给出语言的语法意味着给出语句、声明和其他语言结构的书写规则。
语义则表示不同的语法结构的含义。
在程序语言的手册中,语言的描述都是围绕着语法结构展开的。通常,先给出各种语句结构的语法,然后给出对应该结构的语义以描述内在含义。
语用是关于程序与使用者之间的关系。在高级程序设计语言中,语句用于描述程序中的运算步骤、控制结构及数据传输。
第五节 数据库基础
- 其中外模式对应视图,概念模式对应基本表,内式对应存储文件。
- 4NF:若关系模式R 1NF,R的每个非平凡多值依赖X→→Y且Y X时,X必含有码,则关系模式R(U,F)4NF:对于本题中存在多值属性的情况,应该将该实体的码和相关的多值属性独立构成一个关系模式。
- 分片透明性
是指用户不必关心数据是如何分片的,它们对数据的操作在全局关系上进行,即关系如何分片对用户是透明的,因此,当分片改变时应用程序可以不变。分片透明性是最高层次的透明性,如果用户能在全局关系一级操作,则数据如何分布,如何存储等细节自不必关系,其应用程序的编写与集中式数据库相同。
复制透明:
用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成。在分布式数据库系统中,可以把一个场地的数据复制到其他场地存放,应用程序可以使用复制到本地的数据在本地完成分布式操作,避免通过网络传输数据,提高了系统的运行和查询效率。但是对于复制数据的更新操作,就要涉及到对所有复制数据的更新。
位置透明性
是指用户不必知道所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户是透明的。因此,数据分片模式的改变,如把数据从一个站点转移到另一个站点将不会影响应用程序,因而应用程序不必改写
局部映像透明性(逻辑透明)
是最低层次的透明性该透明性提供数据到局部数据库的映像,即用户不必关系局部DBMS支持哪种数据模型、使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的。因此,局部映像透明性对异构型和同构异质的分布式数据库系统是非常重要的。 - DMBS是数据库管理系统,主要用来保证数据库的安全性和完整性。
而DBA通过授权功能为不同用户授权,主要的目的是为了保证数据的安全性。 - 物理独立性是指的内模式发生变化,只需要调整模式与内模式之间的映像,而不用修改应用程序。
逻辑独立性是指的模式发生变化,只需要调整外模式与模式之间的映像,而不用修改应用程序 - 数据耦合:如果一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合
标记耦合:如果一组模块通过参数表传递记录信息,就是标记耦合。
控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。
内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合。
一个模块直接访问另一个模块的内部数据:
一个模块不通过正常入口转到另一模块内部:
两个模块有一部分程序代码重叠(只可能出现在汇编语言中);
一个模块有多个入口 - 数据库采用“三级模式两级映像”的结构:
(1)概念模式也称模式,是数据库中全部数据的整体逻辑结构的描述。
(2)外模式也称用户模式或子模式,是用户与数据库系统的接口,是用户用到的那部分数据的描述。
(3)内模式也称存储模式,是数据库在物理存储方面的描述,定义所有内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。
(4)两级映像:
①模式/内模式映象存在于概念级和内部级之间,用于定义概念模式和内模式之间的对应性。②外模式/模式映象存在于外部级和概念级之间,用于定义外模式和概念模式之间的对应性。聚簇索引也叫簇类索引,是一种对磁盘上实际数据重新组织以按指定的一个或多个列的值排序,它改变的是数据库的内模式。 - 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键。
选项D(时间,学生)的组合中,(时间,学生)→教室,(时间,教室)→培训科目,培训科目→培训师,(学生,培训科目)一成绩,可见,包括了关系模式R的全部属性,因此(时间,学生)是该关系模式的主键。
数据库的关系范式有:
(1)第一范式(1NF):属性不可拆分或无重复的列。
(2)第二范式(2NF):完全函数依赖。在一个关系中,若某个非主属性数据项依赖于全部关键字称之为完全函数依赖。
例:成绩表(学号,课程号,成绩)关系中,(学号课程号)→ 成绩,只有学号或者只有课程号都无法推导出成绩,因此该关系式属于完全函数依赖,
(3)第三范式(3NF):消除传递依赖。不依赖于其他非主属性(消除传递依赖)。满足第三范式的数据库必须先满足第二范式。也就是说,数据库中的属性依赖仅能依赖于主属性,不存在于其他非主属性的关联。
例如,图书,图书室的关系。图书包括编号、出版商、页码等信息,图书室包括图书室编号、所存图书(外键)。其中,图书室的表中不应该存储任何图书的具体信息(例如,出版商。。),而只能通过主键图书编号来获得对应图书的信息
(4)BC范式(BCNF):所有非主属性对每一个码都是完全函数依赖;所有的主属性对于每一个不包含它的码,也是完全函数依赖;没有任何属性完全函数依赖于非码的任意一个组合。
如果说关系模式R属于3NF,不一定属于BCNF,如果R属于BCNF则一定属于3NF
(5)第四范式(4NF):对于每一个X->Y,X都能找到一个候选码( 若关系中的某一属性组的值能唯一地表示一个元组,而其真子集不行,则称该属性组为候选码)。
题干中“(时间,教室)→培训科目”且“培训科目→培训师”这之间存在传递依赖,不满足3NF,属于2NF。 - 数据库管理系统利用日志文件来进行事务故障恢复和系统故障恢复。在事务处理过程中,DBMS把事务开始、事务结束以及对数据库的插入、删除和修改的每一次操作写入日志文件。当系统正常运行时,按一定的时间间隔,把数据库缓冲区内容写入数据文件;一旦发生故障,DBMS的恢复子系统利用日志文件撤销事务对数据库的改变,回退到事务的初始状态。
- E-R图时结构化分析过程的工具,用于数据建模,将现实世界中的事物抽象信息世界里的数据。
- 从已知的一些函数依赖,可以推导出另外一些函数依赖,这就需要一系列推理规则。
函数依赖的推理规则最早出现在1974年W.W.Armstrong 的论文里,这些规则常被称作“Armstrong 公理"
设U 是关系模式R 的属性集,F是R 上成立的只涉及U中属性的函数依赖集。函
数依赖的推理规则有以下三条:
自反律:若属性集Y 包含于属性集X,属性集X包含于U,则X→Y 在R 上成立。(此处X→Y是平凡函数依赖)
增广律:若X→Y 在R 上成立,且属性集Z 包含于属性集U,则XZ→YZ 在R 上成立。
传递律:若X→Y和 Y→Z在R 上成立,则X→Z在R上成立。
其他的所有函数依赖的推理规则可以使用这三条规则推导出。 - 数据库通常采用三级模式结构,
视图对应外模式、
基本表对应模式、
存储文件对应内模式。 -
数据库设计 概念设计 用户角度、E-R图。 逻辑设计 E-R图转换成关系模式。 物理设计 物理存储方法、索引等。 -
数据库系统的三级模式为外模式、概念模式、内模式。
(1)概念模式。概念模式(模式、逻辑模式)用以描述整个数据库中数据库的逻辑结构,描述现实世界中的实体及其性质与联系,定义记录、数据项、数据的完整性约束条件及记录之间的联系,是数据项值的框架。
(2)外模式。外模式(子模式、用户模式)用以描述用户看到或使用的那部分数据的逻辑结构,用户根据外模式用数据操作语句或应用程序去操作数据库中的数据。外模式主要描述组成用户视图的各个记录的组成、相互关系、数据项的特征、数据的安全性和完整性约束条件。
(3)内模式。内模式是整个数据库的最低层表示,不同于物理层,它假设外存是一个无限的线性地址空间。内模式定义的是存储记录的类型、存储域的表示以及存储记录的物理顺序,指引元、索引和存储路径等数据的存储组织。 -
概念数据模型是按照用户的观点来对数据和信息建模,主要用于数据库设计。概念模型主要用实体一联系方法(Entity-Relationship Approach)表示,所以也称 E-R 模型。
-
数据模型(Data Model)是现实世界数据特征的抽象或者说是现实世界的数据模拟。
数据库中,用数据模型来抽象地表示现实世界的数据和信息。
数据模型的三要素是:数据结构、数据操作及完整性约束条件。 -
数据库设计主要分为用户需求分析、概念结构、逻辑结构和物理结构设计四个阶段。
其中,在用户需求分析阶段中,数据库设计人员采用一定的辅助工具对应用对象的功能、性能、限制等要求所进行的科学分析,并形成需求说明文档、数据字典和数据流程图。用户需求分析阶段形成的相关文档用以作为概念结构设计的设计依据。 -
派生属性是指可以由其他属性经过运算得到的属性因而派生属性产生冗余,通常不存储,
如本题的age
多值属性是指一个实体在该属性上会同时取多个属性,这些值也都必须存储,如本题的tel。数据约束也是描述用户信息的,根据参照完整性约束的定义,Employee实体中的departID属性应为外键, -
数据的逻辑独立性是指当模式改变时(例如增加新的关系,新的属性,改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像做相应的改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
数据的物理独立性是指当数据库的存储结构改变了由数据库管理员对模式/内模式映像做响应的改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。 -
存在非主属性对候选码的部分函数依赖,因此是1NF
-
数据库系统在其内部具有三级模式和二级映像。
在数据库三级模式间引入二级映像的主要作用是提高数据与程序的独立性
三级模式分别是外模式、模式和内模式,二级映像则是外模式/模式映像、模式/内模式映像。当模式改变时,DBA要求相关的外模式/模式映像做相应的改变,以使外模式保持不变。应用程序是依据实际的外模式编写的,外模式不变应用程序就没必要修改。所以,外模式/模式映像 功能保证了数据与程序的逻辑独立性。
当数据库的存储结束了,DBA要对模式/内模式映像做相应的改变,以使模式保持不变。模式不变,与模式没有直接联系的应用程序也不会改变。所以,模式/内模式映像功能保证了数据与程序的物理独立性。 -
模式对应着概念级,它是由数据库设计者总和所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述是所有用户的公共数据视图。
外模式对应于用户级,它是某个或某几个用户看到的数据库的数据视图,是与某一应用有关的数据逻辑的表示。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。
内模式对应于物理级,它是数据库中全部数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上存储方式的物理结构,对应着实际存储在外存储介质上的数据库, -
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
存储过程是数据库所提供的一种数据库对象,通过存储过程定义一段代码,提供给应用程序调用来执行。从安全性的角度考虑,更新数据时,通过提供存储过程让第三方调用,将需要更新的数据传入存储过程而在存储过程内部用代码分别对需要的多个表进行更新,从而避免了向第三方提供系统的表结构,保证了系统的数据安全。 -
信息:向人们(或机器)提供关于现实世界新的事实的知识
数据:数据库存储的基本对象用以表示信息的符号或载体,符号包括数字、文字和其他符号,还包括图形、图像、音频、视频等多媒体形式。
数据模型:是描述数据的手段和方法,通常由数据结构、数据操作和完整性约束三部分组成。
数据库:按照数据结构来组织、存储和管理数据的仓库。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。即数据及数据之间的联系 -
1NF属性列取值为一,
2NF每个非主属性完全依赖于码,无部分依赖。
3NF不存在非主属性对码的传递依赖。
BCNF:每一个决定因素都包含码。 -
如果有两个事务,同时对数据库中同一数据进行操作,
除SELECT之外,其余SQL语句不能同时使用,否则会引起冲突。 -
脏数据指未提交随后又被撤销的数据。
-
SQL语言中,Grant为授权语句,
其语法规则为:GRANT<权限>ON 表名[(列名)] TO 用户 [WITH GRANT OPTION]。
WITH GRANT OPTION:表示允许向别人赋予同样权限, -
函数依赖的公理系统(即Armstrong公理系统)为:
设关系模式R(U,F),其中U为属性集,F是U上的一组函数依赖,那么有如下推理规则:
A1自反律:若YXU,则X→Y为F所蕴涵。
A2增广律:若X→Y为F所蕴涵,且ZU,则XZ→YZ为F所蕴涵。
A3传递律:若X→Y,Y→Z为F所蕴涵,则X→Z为F所蕴涵。
根据上述三条推理规则又可推出下述三条推理规则:
A4合并规则:若X→Y,X→Z,则X→YZ为F所蕴涵。
A5伪传递率:若X→Y,WY→Z,则XW→Z为F所蕴涵。
A6分解规则:若X→Y,ZY,则X→Z为F所蕴涵。 -
数据库设计中规范化是在逻辑设计阶段进行的一项工作,
该工作负责把关系模式进行规范,以减少冗余,以及一定程度上消除修改异常,插入异常及删除异常。 -
多对多联系(m:n)转换为一个独立的关系模式R时R的关键字为各实体关键字的集合。
-
数据库中的4类故障是事务内部故障、系统故障、介质故障及计算机病毒。
(1)事务内部故障。事务内部的故障有的可以通过事务程序本身发现。但有些是非预期的,不能由事务程序处理,例如运算溢出、并发事务发生死锁等。
(2)系统故障。通常称为软故障,是指造成系统停止运行的任何事件,使得系统要重新启动。
(3)介质故障。通常称为硬故障,如磁盘损坏、磁头碰撞和瞬时强磁干扰。此类故障发生的几率小,但破坏性最大。
(4)计算机病毒。 - 数据库的基本表对应概念视图,存储文件对应内部视图,视图对应用户视图。
- COMMIT:事务提交。该操作表示事务成功的结束,它将通知事务管理器将该事务的所有更新操作现在可以被提交或永久保留;
ROLLBACK:事务回滚。该操作表示事务非成功地结束,它将通知事务管理器出故障了,数据库可能处于不一致状态,该事务的所有更新操作必须回滚或撤销。 - 数据库概念结构设计阶段的工作步骤为
抽象数据一>设计局部视图一>合并取消冲突一>修改重构消除冗余。 - 图的邻接矩阵是一个方阵,所有行标和列标都与图中的顶点--对应,这样对于矩阵中的一个元素[i,j],其值为1 表示i、j对应的顶点间有边(或弧),其值为 0则表示i、j对应的顶点间不存在边(或弧)。显然,图中总共有9条边。
在无向图中,边(i,j)与(j,i)是指同一条边,其取值是相同的;
在有向图中,<i,j>与<j,i>是两条不同的弧。
而在本题中,矩阵中的(i,j)与(j,i)是不同的,因此这个是有向图。
第二章 数据结构与算法
- 排序比较
第一节 数据结构
- 哈希算法是使用给定数据构造哈希表,然后在哈希表上进行查找的一种算法。先给定一个值,然后根据哈希函数求得哈希地址,再根据哈希地址查找到要找的元素。是通过数据元素的存储地址进行查找的一种算法。
哈希表运算得非常快,在计算机程序中,如果需要在-秒种内查找上千条记录通常使用哈希表(例如拼写检查器)哈希表的速度明显比树快,树的操作通常需要O(N)的时间级。哈希表不仅速度快,编程实现也相对容易。 - 插入排序中的希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。所以当数列基本有序时,采用插入排序算法是比较合适的。
- 计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H.Seward 提出。它的优势在于在对定范围内的整数排序时,它的复杂度为0(n+k)(其中k是整数的范围),快于任何比较排序算法
- 遗传算法(GeneticAlgorithm)是模拟达尔文生物进化论的自然选择翻遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。
遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。每个个体实际上是染色体(chromosome)带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。
遗传算法的基本运算过程如下:(1)初始化;(2)个体评价;(3)选择运算;(4)交叉运算;(5)变异运算。 - 先序遍历是根左右的方式,中序遍历是左根右的方式。
先序遍历是左下,中序遍历是右上。 - 所以一棵二叉树的高度(即层数)为h,则它最多有2^h-1个结点。
- 使用队列对图进行广度优先遍历
- 设 S是一个长度为 n的非空字符串,其中的字符各不相同,
则其互异的非平凡子串(非空且不同于 s 本身)个数为
(n+2)(m-1)/2 - 叉链表中每个结点有2个指针,一共有2K个指针。
在二叉树中除了根结点之外,其他的结点都有一条边进入该结点,即一个指针指向该结点,所以二叉树中边的总个数为 k-1,(点-1)
也就说明非空指针的个数为 k-1个。
那么空指针的个数为:总的结点数-非空指针的个数=2k-(k-1)=k+1 - 对于基本有序数组采用插入排序效率是最高的,时间复杂度为0(n),快速排序适用于无序数组,对于有序数组来说时间复杂度是0(n),属于最坏的情况。
- 总度数+1=总节点数
叶子节点数=总节点数-根节点 - 根据关键字序列构造二叉排序树的基本过程是,
若需插入的关键字大于树根,则插入到右子树上,若小于树根,则插入到左子树上,若为空树,则作为树根结点。 - 二分查找又称折半查找,
优点是比较次数少,查找速度快,平均性能好;
其缺点是要求待查表为有序表且插入删除困难。
因此,折半查找方法适用于不经常变动而查找频繁的有序列表。
二分查找算法要求:
①必须采用顺序存储结构;
②必须按关键字大小有序排列。 - 根据循环单链表特点入队出队都不需要遍历全表
- 快速排序由C.A.R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序采用的思想是分治思想。贪心算法(又称贪婪算法)是指,在对问题求解时总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。
整个算法的时间复杂度是O(nlogn)。 - 当采用深度优先进行遍历的时候,查找所有邻接点所需要的时间是O(n^2)
- 一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法--插入排序法。
- 本题考查图结构基础知识。对于n个顶点的简单无向图,每个顶点最多与其余的n-1个结点邻接(若两个顶点之间有边,则称为邻接),因此,最多有n(n-1)条边,同时,由于边没有方向,因此一条边关联的两个顶点,邻接关系被计算了两次,所以边的个数为n(n-1)/2。
- 单向链表仅设头指针时,在表尾插入结点时需要遍历整个链表,时间复杂度为o(n),仅设尾指针时,在表尾插入结点的时间复杂度为O(1),但是不能访问除了尾结点之外的所有其他结点。而单向循环链表仅设头指针时,在表尾插入结点时需要遍历整个链表,时间复杂度为0(n),仅设尾指针时在表尾插入结点的时间复杂度为0(1),同时达到表头结点的时间复杂度为0(1),因此对于题中给出的操作要求,适合采用仅设尾指针的单向循环链表。
- 栈的应用:表达式求值、括号匹配、递归。
队列的应用:打印队列。 -
7个结点的二叉树采用二叉链表链存储时空指针个数为。7+1=8
在三叉链表存储结构中,每个结点有3个指针,空指针个数为结点数加2。因此,7个结点的二叉树采用三叉链表存储时空指针个数为。7+2=9
-
普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。
优先队列具有最高级先出(largest-in,first-out)的行为特征。
优先队列一般采用二叉堆数据结构实现,由于是二叉堆,所以插入和删除一个元素的时间复杂度均为O(Ign)。 -
无向图中一个顶点的度是指与该顶点相邻接的顶点数。
-
广度优先搜索图类似于对二叉树进行层次遍历,需要借助队列实现。
-
二又树的遍历主要有四种:
前序遍历(先根遍历、先序遍历):遵循“根左右“的递归遍历思想,根一定是当前子二叉树先序遍历序列的第一个元素;
中序遍历(中根遍历):遵循左-根-右“的递归遍历思想,根位于是当前子二叉树中序遍历序列的中部位置,左边是当前根的左二又树右边是当前根的右二又树;
后序遍历(后根遍历)遵循“左-右-根”的递归遍历思想,根一定是遍历序列的最后一个元素;
层次遍历:遵循从上到下,直左而右的遍历思想,根一定是遍历序列的第一个元素。 -
二叉排序树的查找路径是自顶向下的,平均查找长度取决于树的高度。
-
散列存储结构的特点是数据结构中元素的存储地址与其关键字之间存在某种映射关系。
散列存储结构将结点按其关键字的散列地址存储到散列表中。常用的散列函数有除余法、基数转换法、平方取中法、折叠法、移位法和随机数法等。 -
哈夫曼树
叶子节点为n,总节点数为2n-1 -
任何一颗二叉树的叶子结点在先序、中序、后序遍历序列中的相对次序是不发生改变的,因为根据三个遍历的次序和特点:前序是根左右、中序是左根右、后序是左右根,因此相对次序发生变化的都是子树的根,也就是分支结点。
-
链式存储有:单链表(线性链表)、循环链表、双向链表。
单链表从链表的第一个表元开始,将线性表的节点依次存储在链表的各表元中。链表的每个表元除要存储线性表节点信息外,还要一个成分用来存储其后继节点的指针。
循环链表是单链表的变形,其特点是表中最后一个节点的指针域指向头节点,整个链表形成一个环。因此,从表中的任意一个节点出发都可以找到表中的其他节点。循环链表中,从头指针开始遍历的结束条件不是节点的指针是否为空,而是是否等于头指针。为简化操作,循环链表中往往加入表头节点。双向链表的节点中有两个指针域,其一指向直接后继,另一指向直接前驱,克服了单链表的单向性的缺点。 -
堆排序中堆的定义:n个元素的序列{k1,k2,…,kn)当且仅当满足下列关系时,称为堆。
-
采用顺序表和单链表存储长度为n的线性序列,根据序号查找元素,其时间复杂度分别为
O(1)、O(n) -
动态规划算法总体思想:如果能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,就可以避免大量重复计算,从而得到多项式时间算法从根开始计算,到找到位于某个节点的解,回溯法(深度优先搜索)作为最基本的搜索算法,其采用了一种”一直向下走,走不通就掉头“的思想(体会“回溯二字),相当于采用了先根遍历的方法来构造搜索树。
-
删除单链表的最后一个结点需置其前驱结点的指针域为NULL,需要从头开始依次遍历找到该前驱结点,需要O(n),与表长有关。其他操作均与表长无关。
-
对于三对角矩阵,将A[1..n][1..n]压缩至B[1..3n-2]时,aij与bk的对应关系为k=2i+j-2。
-
在直接插入排序中,若待排序中的最后一个元素插入表的第一个位置,则前面的有序子序列中的所有元素都不在最终位置上。
-
二维数组计算地址(按照行优先顺序)的公式为LOC(ij)=LOC(0,0)+(i*m+j)*L
m是数组的列数,L是数组的元素长度 -
无向图的邻接矩阵中,邻接大小为n^2,非零元素个数为2e,所以零元素的个数是n^2-2e。
-
线性表是一个线性序列,在顺序存储方式下,若删除其中一个元素,需要将其后的元素逐个前移,使得元素之间没有空闲单元。表长为n时,共有n个可删除的元素,删除元素a1时需要移动n-1个元素,删除元素an时不需要移动元素,因此,等概率下删除一个元素时平均的移动元素次数Edelete为(n-1)/2。线性表若采用单链表存储,插入和删除元素的实质都是对相关指针的修改,而不需要移动元素。
-
二叉查找树又称为二叉排序树或二叉检索树,它或者是一棵空树,或者是具有如下性质的二又树:①若它的左子树非空,则左子树中所有结点的值均小于根结点的值;②若它的右子树非空,则右子树中所有结点的值均大于根结点的值;③左、右子树本身就是二叉查找树。对非空二叉排序树进行中序遍历,得到递增有序的序列,先序和后序序列则不是。因此,选项A的说法是错误的。二叉排序树中结点在左、右子树上的分布并不均匀极端情况下,n个结点的二又排序树的高度为n。因此,选项B的说法是错误的。从根到任意一个叶子结点的路径上结点的关键字随着向左还是向右可能大小交替出现,因此选项C的说法是错误的。
-
构造哈希表时,关键字序列中两个不同的元素被哈希函数映射到同一个哈希单元时,称为冲突。
-
棵有n个结点的树的所有结点的度数之和为()n-1
-
当采用深度优先进行遍历的时候,查找所有邻接点所需要的时间是O(n^2)
-
本题考查数据结构基础知识。普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出(largest-in,first-out)的行为特征。优先队列一般采用二叉堆数据结构实现,由于是二叉堆,所以插入和删除一个元素的时间复杂度均为O(lc
外 -
-棵m阶的B树中每个结点最多有m棵子树,所有的叶子结点都出现在同一层次上,有k颗子树的非叶子结点有k-1个键,键按照递增顺序排列。叶子叶子结点之间不相连。作为对比,B+树有k颗子树的非叶节点有k个键,键按照递增顺序排列。所有的叶子结点中包含了完整的索引信息,包括指向含有这些关键字记录的指针,中间节点每个元素不保存数据,只用来索引。叶子结点本身依关键码的大小自小而大的顺序链接
-
分治方法是一种重要的算法设计技术(设计策略),该策略将原问题划分成n个规模较小而结构与原问题相似的子问题;递归地解决这些子问题;然后再合并其结果,最终得到原问题的解。分治算法往往用递归技术来实现,但并非必须。分治算法最理想的情况是划分为k个规模相等的子问题,但很多时候往往不能均匀地划分子问题。分治算法的代价在划分子问题和合并子问题的解上,根据不同的问题,划分的代价和合并的代价有所不同。例如归并排序中,主要的计算代价在合并解上,而在快速排序中,主要的计算代价在划分子问题上。
-
13个值肯定是13个叶子结点,又因为哈夫曼树没有单分支结点,所以双分支结点的个数为13-1=12个,因此总结点数是13+12=25个。
-
对图进行深度遍历类似于二叉树的先序遍历
-
当两个字符构造哈夫曼树,就会多出一个节点,若是三个字符则多出两个节点,若是四个字符则多出三个节点,以此类推,若是有n个字符构造哈夫曼数,则会多出n-1个节点。因此哈夫曼树的节点数就是n+n-1个,由此计算出字符数为64.
第二节 算法设计与分析
- 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。
在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出(1argest-first-out)的行为特征。
优先队列一般采用二叉堆数据结结构实现,由于是二叉堆,所以插入和删除一个元素的时间复杂度均为O(lgn)。 - Prim算法和Kruscal算法都是基于贪心算法的应用。
Prim算法的时间复杂度为O(n2),与图中边数无关,该算法适合于稠密图。
Kruskal算法的时间复杂度只和边有关系,为O(elog2e),由于Kruskal算法只与边有关,因此适合求稀疏图的最小生成树。 - 1、分治法特征:对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决;否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。
2、动态规划法:在求解问题中,对于每一步决策,列出各种可能的局部解,再依据某种判定条件,舍弃那些肯定不能得到最优解的同部解,在每一步都经过筛选,以每一步都是最优解来保证全局是最优解。本题情景没有列出所有的可能解进行筛选,因此,本题不属于动态规划法。
3、回溯法:回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当搜索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择。这种走不通就退回再走的技术就是回溯法。本题情最没有探索和回退的过程,因此,本题不属于回溯法。
4、贪心法:总是做出在当前来说是最好的选择,而并不从整体上加以考虑,它所做的每步选择只是当前步骤的局部最优选择,但从整体来说不一定是最优的选择。由于它不必为了寻找最优解而穷尽所有可能解因此其耗费时间少,一般可以快速得到满意的解,但得不到最优解。在本题情最中,没有给出每步选择的局部最优判断条件,因此,本题属于贪心法。 - 贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择。
分数背包即部分背包问题,物品可选择部分或全部放进背包,直至装满背包,通过贪心算法求解可将放入单位价值最大的物品优先放入背包,以实现背包物品价值的最大化;
0-1背包指物品整体放入或不放入背包,因此不一定能完全装满背包,采用贪心算法可以取得局部最优解,但不一定是全局最优解;
旅行商问题是指旅行商要到若干个城市旅行,每访问一个城市后都会回到最初开始的城市,用贪心法不一定能求得最优解;最长公共子序列用贪心法也不一定能求得最优解; - 非静态局部变量存储在栈区。
- 冒泡排序算法的原理如下:
1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3、针对所有的元素重复以上的步骤,除了最后一个。
4.、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
第三章 系统开发
第一节 软件工程基础知识
- 瀑布模型将开发阶段描述为从一个阶段瀑布般地转换到另一个阶段的过程。
瀑布模型突出的缺点是不适应用户需求的变动,
模型工程与 软件结构、运行平台 程序语言 关系不大瀑布模型突出的缺点是不适应用户需求的变动,模型工程并不和软件结构、运行平台程序语言有很大的关系。。
原型模型中,开发人员快速地构造整个系统或者系统的一部分以理解或澄清问题。
螺旋模型将开发活动和风险管理结合起来,以减小风险。
喷泉模型开发过程模型以用户需求为动力,以对象为驱动,适合于面向对象的开发方法。
在这几种开发过程模型中,原型模型不适宜大规模软件的开发。 - 可移植性包含:适应性、易安装性、共存性和易替换性四个特性。
- 如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。
- 模块结构图中的模块类型如下:
①传入模块:从下属模块取得数据,经过某些处理再将其结果传给上级模块。
②传出模块:从上级模块取得数据,经过某些处理再将其结果传给下属模块。
③变换模块:也叫加工模块。它从上级模块取得数据,进行特定的处理,转换成其他形式,再传回上级模块。它加工的数据流称作变换数据流。
④协调模块:对所有下属模块进行协调和管理的模块。在系统的输入输出部分或数据加工部分可以找到这样的模块。在一个好的模快结构图中,协调模块应在较高层出现。 - COCOMO用3个不同层次的模型来反映不同程度的复杂性,它们分别为
基本模型(Basic Model):是一个静态单变量模型,它用一个以已估算出来的源代码行数(LOC)为自变量的函数来计算软件开发工作量。
中级模型(IntermediateModel):则在用LOC为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。
详细模型(Detailed Model):包括中级COCOMO型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中分析、设计等各步骤的影响。 - 事务具有原子性、一致性、隔离性和持久性。
原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。
一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态。
隔离性表示在事务执行过程中对数据的修改,在事务提交之前对其他事务不可见。
持久性表示已提交的数据在事务执行失败时,数据的状态都应该正确。 - 数据库的设计过程,按照规范的设计方法,一般分为以下六个阶段:
①需求分析:分析用户的需求,包括数据、功能和性能需求;
②概念结构设计:主要采用E-R模型进行设计包括画E-R图;
③逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;
④数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径;
⑤数据库的实施:包括编程、测试和试运行;
⑥数据库运行与维护:系统的运行与数据库的日常维护。 - 敏捷开发方法分别描述如下.
极限编程 (XP) :敏捷开发的典型方法之一,是一种轻量级(敏捷)高效,低风险、柔性、可预测的、科学的软件开发方法,它由价值观、原则、实践和行为4个部分组成。其中4大价值观为沟通、简单性、反馈和勇气。
水晶法(Crystal):水晶方法体系与XP一样,都有以人为中心的理念,但在实践上有所不同。水晶方法体系考虑到人们一般很难严格遵循一个纪律约束很强的过程,认为每一种不同的项目都需要一套不同的策略、约定和方法论。因此,与XP的高度纪律性不同,水晶方法体系探索了用最少纪律约束而仍能成功的方法,从而在产出效率与易于运作上达到一种平衡。也就是说,虽然水晶系列不如XP那样的产出效率,但会有更多的人能够接受并遵循它。
并列争球法(Scrum):用迭代的方法,其中把每30天一次的迭代称为一个“冲刺”,并按需求的优先级来实现产品。多个自组织和自治小组并行地递增实现产品。协调是通过简短的日常会议来进行的。
自适应软件开发(ASD): ASD的核心是三个非线性的、重迭的开发阶段:猜测,合作与学习。 - 软件配置管理(Software Configure Management,SCM)用于整个软件工程过程。
主要目标是标识变更,控制变更,确保变更正确地实现,报告有关变更。
SCM是一组管理整个软件生存期各阶段中变更的活动。
软件配置管理的内容包括版本控制、变更控制及过程支持,不包括质量控制。 - 集成测试(integrationtesting)也称为组装测试,在单元测试的基础之上,把所有的模块组装成一个系统进行测试。主要测试设计阶段产生的错误,集成测试计划应在概要设计阶段制定。
非渐增式集成测试,首先将每个模块分别进行单元测试,再把所有的模块组装成一个完整的系统进行测试。目前在进行集成测试时已普遍采用渐增式集成。
渐增式集成测试,又可以分为自顶向下集成和自底向上集成。自顶向下集成先测试上层模块,再测试下层模块,由于测试下层模块时上层模块已经测试过,所以不必要另外编写驱动模块。自底向上集成,先测试下层模块,再测试上层模块。
顶层模块测试时不需要驱动模块,底层模块测试时不需要桩模块。软件的集成测试最好由不属于该软件开发组的软件设计人员承担,以提高集成测试的效果。
三明治测试,从系统的三个角往中间包围测试的方法。自底向上的集成测试不需要编写桩模块,但需要编写驱动模块,而自顶向下的集成测试需要编写桩模块,不需要编写驱动模块。 - 包过滤技术是一种基于网络层、传输层的安全技术,优点是简单实用,实现成本较低同时,包过滤操作对于应用层来说是透明的,它不要求客户与服务器程序做任何修改。但包过滤技术无法识别基于应用层的恶意入侵,如恶意的Java小程序以及电子邮件中附带的病毒。
代理服务技术基于应用层,需要检查数据包的内容能够对基于高层协议的攻击进行拦截,安全性较包过滤技术要好。缺点是处理速度比较慢,不适用于高速网之间的应用。
另外,代理使用一个客户程序与特定的中间节点连接,然后中间节点与代理服务器进行实际连接。因此,使用这类防火墙时外部网络与内部网络之间不存在直接连接,即使防火墙发生了问题,外部网络也无法与被保护的网络连接。 - 接口设计的主要依据是数据流图,
接口设计的任务主要是描述软件与外部环境之间的交互关系,软件内模块之间的调用关系。定义软件的主要结构元素及其之间的关系是架构阶段的任务;
确定软件涉及的文件系统的结构及数据库的表结构是数据存储设计阶段的任务;
确定软件各个模块内部的算法和数据结构是详细设计阶段的任务。 - 在结构化设计中,系统由多个逻辑上相对独立的模块组成,在模块划分时需要遵循如下原则:
(1)模块的大小要适中。系统分解时需要考虑模块的规模,过大的模块可能导致系统分解不充分,其内部可能包括不同类型的功能,需要进一步划分,尽量使得各个模块的功能单一,过小的模块将导致系统的复杂度增加,模块之间的调用过于频繁,反而降低了模块的独立性。一般来说,一个模块的大小使其实现代码在1~2页纸之内,或者其实现代码行数在50~200行之间,这种规模的模块易于实现和维护
(2)模块的扇入和扇出要合理。一个模块的扇出是指该模块直接调用的下级模块的个数;扇出大表示模块的复杂度高,需要控制和协调过多的下级模块。扇出过大一般是因为缺乏中间层次,应该适当增加中间层次的控制模块,扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。一个模块的扇入是指直接调用该模块的上级模块的个数;扇入大表示模块的复用程度高。设计良好的软件结构通常顶层扇出比较大,中间扇出较少,底层模块则有大扇入。一般来说,系统的平均扇入和扇出系数为3或4,不应该超过7,否则会增大出错的概率。
(3)深度和宽度适当。深度表示软件结构中模块的层数,如果层数过多,则应考虑是否有些模块设计过于次上的模块总数的最大值,一般说来,宽度越大系统越复杂,对宽度影响最大的因素是模块的扇出。在系统设计时,需要权衡系统的深度和宽度,尽量降低系统的复杂性,减少实施过程的难度,提高开发和维护的效率。 - 内聚按强度从低到高有以下几种类型
(1)偶然内聚
又称巧合内聚,如果一个模块的各成分之间毫无关系,则称为偶然内聚,也就是说模块完成一组任务,这些任务之间的关系松散,实际上没有什么联系。
逻辑内聚几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。如一个模块读取各种不同类型外设的输E汉IG厂7E又 \EI汉的模块务成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。
(3)时间内聚
如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。
(4)通信内聚
如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。
(5)顺序内聚
如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入,则称为顺序内聚。
(6)过程内聚
构件或者操作的组合方式是,允许在调用前面的构件或操作之后,马上调用后面的构件或操作,即使两者之间没有数据进行传递。
模块完成多个需要按一定的步骤一次完成的功能。(过程相关---控制耦合)。例如:在用程序流程图设计模块时,若将程序流程图中的一部分划出各自组成模块,便形成过程内聚。
(7)信息内聚
模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。这个模块将根据不同的要求,确定该模块执行哪一个功能。由于这个模块的所有功能都是基于同一个数据结构(符号表),因此,它是一个信息内聚的模块。
(8)功能内聚
模块的所有成分对于完成单一的功能都是必须的,则称为功能内聚。 - 路径覆盖需要把程序中的所有路径覆盖遍,
整个程序流程图转化为结点图之后,一共11个结点,13条边,
根据环路复杂度公式有:13-11+2=4。
环路复杂度公式:边-点+2 - 软件开发过程中,需求分析阶段的输出包括数据流图、实体联系图、数据字典。
- 仓库风格优点包括:
1、解决问题的多方法性
2、具有可更改性和可维护性
3、有可重用的知识源
4、支持容错性和健壮性
缺点:测试困难、不能保证有好的求解方案、效率低、开发成本高、缺少对并行机的支持。
仓库风格包括:数据库系统、黑板系统、超文本系统
编译器可用多种架构风格实现。 - 配置管理是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的目标是记录软件产品的演化过程,确保软件开发者在软件生命周期中各个阶段都能得到精确的产品配置。
配置管理的活动包括:制定配置管理计划、配置库管理、配置控制、配置状态报告、配置审计、发布管理和交付。
风险管理是与配置管理并列的项目管理过程。 - 极限编程是一种轻量级(敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式。
4大价值观:
沟通、简单性、反馈和勇气。
5个原则:
快速反馈、简单性假设、逐步修改、提倡更改和优质工作。
12个最佳实践:
计划游戏(决速制定计划、随着细节的不断变化而完善)、
小型发布(系统的设计要能够尽可能早地交付)、
隐喻(找到合适的比喻传达信息)、
简单设计(只处理当前的需求,使设计保持简单)、
测试先行(先写测试代码,然后再编写程序)、
重构(重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求)、
结队编程、集体代码所有制、持续集成(可以按日甚至按小时为客户提供可运行的版本)、
每周工作40个小时、
现场客户
编码标准。 - 系统开发中,原型是系统的一个早期可运行的版本,它反映最终系统的部分重要特性。
从原型是否实现功能来分,可分为水平原型和垂直原型两种。
水平原型也称为行为原型,用来探索预期系统的一些特定行为,并达到细化需求的目的。水平原型通常只是功能的导航,但未真实实现功能。水平原型主要用在界面上。
垂直原型也称为结构化原型,实现了一部分功能。垂直原型主要用在复杂的算法实现上。
从原型的最终结果来分,可分为抛弃式原型和演化式原型。抛弃式原型也称为探索式原型,是指达到预期目的后,原型本身被抛弃。抛弃式原型主要用在解决需求不确定性、二义性、不完整性、含糊性等。
演化式原型为开发增量式产品提供基础,逐步将原型演化成最终系统,主要用在必须易于升级和优化的场合,适合于Web项目。 - ①改正性维护改正性维护是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
②适应性维护适应性维护是指使用软件适应信息技术变化和管理需求变化而进行的修改。
③完善性维护完善性维护是为扩充功能和改善性能而进行的修改,主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。
④预防性维护预防性维护为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能#,以使应用系统适应各类变化而不被淘汰。 - (1)环境类,指软件开发环境或软件维护环境,例如编译器、操作系统、编辑器、数据库管理系统、开发工具、项目管理工具、文档编制工具等;
(2)定义类,是需求分析与定义阶段结束后得到的工作产品,例如需求规格说明、项目开发计划、设计标准或设计准则、验收测试计划等:
(3)设计类,设计阶段结束后得到的工作产品,例如系统设计规格说明、程序规格说明、数据库设计、编码标准、用户界面标准、测试标准、系统测试计划、用户手册等;
(4)测试类,系统测试完成后的工作产品,例如系统测试数据、系统测试结果、操作手册、安装手册等
(5)维护类,进入维护阶段以后产生的工作产品。系统方案建议书是系统分析阶段结束后得到的工作产品。 - 确认测试包括:内部角认测试以及Alpha测试与Beta测试。
- 软件能力成熟度集成模型能力成熟度集成模型,CMMI是CMM模型的最新版本,基于连续式表述的CMMI共有6个(0-5)能力等级,对应于未完成级、已执行级、已管理级、已定义级、量化管理级、优化级。每个能力等级对应到一个般目标,以及一组一般执行方法和特定方法。
能力等级0
指未执行过程,表明过程域的一个或多个特定目标没有被满足;
能力等级1
指过程通过转化可识别的输入工作产品,产生可识别的输出工作产品,关注于过程域的特定目标的完成;
能力等级2
指过程作为已管理的过程制度化,针对单个过程实例的能力;
能力等级3
指过程作为已定义的过程制度化,关注过程的组织级标准化和部署;
能力等级4
指过程作为定量管理的过程制度化;
能力等级5
指过程作为优化的过程制度化,表明过程得到很好地执行且持续得到改进 - 辅助软件维护工具辅助维护人员对软件代码及其文档进行各种维护活动。软件维护工具主要有:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具。
- 一般来讲,概要设计的内容可以包含系统架构、模块划分、系统接口、数据设计4个方面的主要内容,不包括模块内算法设计。
- 归纳法是指从测试所暴露的问题出发,收集所有正确或不正确的数据,分析它们之间的关系,提出假想的错误原因,用这些数据来证明或反驳,人而查出错误所在。
- 范围定义的输入包括以下内容:
①项目章程。如果项目章程或初始的范围说明书没有在项目执行组织中使用,同样的信息需要进一步收集和开发,以产生详细的项目范围说明书。
②项目范围管理计划。
③组织过程资产。
④批准的变更申请。 - 软件开发模型中的螺旋模型的概念。
1988年,Barry Boehm正式发表了软件系统开发的"螺旋模型",它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动:
①制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
②风险分析:分析评估所选方案,考虑如何识别和消除风险;
③实施工程:实施软件开发和验证;
④客户评估:评价开发工作,提出修正建议,制定下一步计划。
螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。但是,螺旋模型也有一定的限制条件,具体如下:
①螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,因此,这种模型往往适应于内部的大规模软件开发。
②如果执行风险分析将大大影响项目的利润,那么进行风险分析毫无意义,因此,螺旋模型只适合于大规模软件项目。
③软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险。
首先是确定一个阶段的目标,完成这些目标的选择方向 - 白盒测试按照程序内部逻辑测试程序,检验程序中每条通路是否按预定要求正确工作。
典型的白盒测试方法包括:静态测试、动态测试。
其中静态测试包括代码检查法、静态结构分析法、静态质量度量法。 - 软件设计要遵循的基本原则包括
①模块化 ②抽象 ③信息隐蔽 - 瀑布模型从一种非常高层的角度描述了软件开发过程中进行的活动,并且提出了要求开发人员经过的事件序列。
原型模型允许开发人员快速地构造整个系统或系统的一部分以理解或澄清问题。
增量开发是把软件产品作为一系列的增量构件来设计、编码、集成和测试,系统功能在增量中不断完善或者增加。
螺旋模型把开发活动和风险管理结合起来,以将风险减到最小并控制风险。 - (1)组合结构图描述结构化类 (例如,构件或类)的内部结构,包括结构化类与系统其余部分的交互点。组合结构图用于画出结构化类的内部内容。
(2)定时图也称计时图,定时图也是一种交互图,它强调消息跨越不同对象或参与者的实际时问,而不仅仅只是关心消息的相对顺序。
(3)制品图描述计算机中一个系统的物理结构。制品包括文件、数据库和类似的物理比特集合。制品图通常与部署图一起使用。制品也给出了它们实现的类和构件。
(4)交互概览图是活动图和顺序图的混合物。 - 白盒测试也称为结构测试,主要用于软件单元测试阶段,测试人员按照程序内部逻辑结构设计测试用例,检测程序中的主要执行通路是否都能按预定要求正确工作。
白盒测试方法主要有控制流测试、数据流测试和程序变异测试等。
控制流测试根据程序的内部逻辑结构设计测试用例,常用的技术是逻辑覆盖。主要的覆盖标准有语句覆判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖、修正的条件/判定覆盖和路径覆盖等。
语句覆盖是指选择足够多的测试用例,使得运行这些测试用例时,被测程序的每个语句至少执行一次。
判定覆盖也称为分支覆盖,它是指不仅每个语句至少执行一次,而且每个判定的每种可能的结果(分支)都至少执行一次。
条件覆盖是指不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取得各种可能的结果。
条件/判定覆盖同时满足判定覆盖和条件覆盖。它的含义是选取足够的测试用例,使得判定表达式中每个条件的所有可能结果至少出现一次,而且每个判定本身的所有可能结果也至少出现一次。
条件组合覆盖是指选取足够的测试用例,使得每个判定表达式中条件结果的所有可能组合至少出现一次。
修正的条件/判定覆盖。需要足够的测试用例来确定各个条件能够影响到包含的判定结果。
路径覆盖是指选取足够的测试用例,使得程序的每条可能执行到的路径都至少经过一次(如果程序中有环路,则要求每条环路路径至少经过一次)。 - COCOMO用3个不同层次的模型来反映不同程度的复杂性,它们分别为:
基本模型(Basic Model):是一个静态单变量模型它用一个已估算出来的源代码行数(LOC)为自变量的函数来计算软件开发工作量,与本题内容符合。
中级模型(Intermediate Mlodel):则在用LOC为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。
详细模型(Detailed Model):包括中级COCOMO型的所有特性。但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中分析、设计等各步骤的影响。 - 甘特图(Gantt图)内在思想简单,即以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间。基本是一条线条图,横轴表示时间,纵轴表示活动(项目),线条表示在整个期间上计划和实际的活动完成情况。它直观地表明任务计划在什么时候进行,及实际进展与计划要求的对比。管理者由此可便利地弄清一项任务(项目)还剩下哪
些工作要做,并可评估工作进度。
优点:能清晰地描述每个任务从何时开始,到何时结束,以及各个任务之间的并行性。
缺点:不能清晰地反映出各任务之间的依赖关系,难以确定整个项目的关键所在,也不能反映计划中有潜力的部分。 - 软件修改后要进行退化测试((Regression Test),因为在修改过程中纠正了老的错误又会引入新的错误,退化测试就是用来防止出现新错误的。
退化测试包括以下步骤:
①插入新代码,程序成为新版本。
②测试可能受新代码影响功能。
③测试修改前的基本功能。
④测试新版本的功能。 - QFD确认了3类需求,分别是基本需求(常规需求)、期望需求和意外需求(兴奋需求)。
其中期望需求指的是那些隐含在产品或系统中,可能由于非常基础以至于用户没有显式说明的需求。 - 系统流程图是表达系统执行过程的描述工具;
IPO图描述了模块的输入输出关系、处理内容、模块的内部数据和模块的调用关系;
HIPO图是层次图和IPO图的结合,描述了系统自顶向下的模块关系;模块结构图描述了系统的模块结构以及模块间的关系,同时也描述了模块之间的控制关系。 - 面向对象开发方法有Booch方法、Coad方法和OMT方法。
Jackson方法是一种面向数据结构的开发方法。 - 在结构化分析方法中,数据流图用于功能建模;
E-R图用于数据建模;
状态转换图用于行为建模 - 敏捷统一过程(Agile Unified Process,AUP)采用“在大型上连续”以及在”在小型上选代"的原理来构建软件系统。采用经典的UP阶段性活动(初始、精化、构建和转换)提供了一系列活动,能够使团队为软件项目构想出一个全面的过程流。
第二节 开发方法(结构化与面向对象)(设计模式)
- 5种创建型口诀:抽象工厂 按照 工厂方法,生成 单例 原型
7种结构型口诀:外观 装饰 按照 适配 的方式 桥接 组合,给 亨元 代理
记住前面的12种,剩下的都是行为型常见设计模式及其关键单词 设计模式(23种) 关键单词 创建型
(5种)
抽象工厂模式 AbstractFactory 生成器模式 Builder 工厂方法模式 Factory Method(Product、Creator) 原型模式 Prototype 单例模式 Singleton 结构型
(7种)
适配器模式 Adaptee、Adapter 桥接模式 Abstraction、Implementor 组合模式 Composite 装饰模式 Decorator 外观模式 Facade 享元模式 Flyweight 代理模式 Proxy 行为型
(11种)
责任链模式 Handier 命令模式 Command 解释器模式 interpreter(AbstractExpression) 迭代器模式 Iterator 中介者模式 Mediator 备忘录模式 Memento 观察者模式 Observer 状态模式 State 策略模式 Strategy 模板方法模式 Template method
(AbstractClass、ConcreteClass)
访问者模式 Visitor -
创建型模式
-
结构型模式
-
行为型模式(1)
-
行为型模式(2)
-
在结构化开发方法中,(详细设计)主要包含对数据结构和算法的设计。
-
对于较大型软件系统的需求往往难以在前期确定,所以瀑布模型最不适合。
-
动态绑定是实现多态的基础
-
状态图(Statechart Diagram)是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应。转换是两个状态之间的关系,它表示当发生指定事件并且满足指定条件时,第一个状态中的对象将执行某些操作并进入第二个状态。
-
事物:模型中的基本成员。U中包括结构事物、行为事物、分组事物和注释事物。
①结构事物:
模型中静态部分。
[类Class]+[接口Interface]+[协作Collaboration]
+[用例UseCase]+[活动类]+[组件component]+[结点Node]
②行为事物:
模型中的动态部分。
[交互]+[状态机]
③分组事物:
可以把分组事物看成是一个"盒子",模型可以在其中被分解。目前只有一种分组事物,即包(Package)。结构事物、动作事物、甚至分组事物都有可能放在一个包中。包纯粹是概念上的,只存在于开发阶段,而组件在运行时存在。
④注释事物:
注释事物是WL模型的解释部分。 -
本题考查面向对象UML建模语言知识点。
UML用关系把事物结合在一起,主要有下列四种关系:
依赖(Dependency)。
依赖是两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。
关联(Association)。
关联描述一组对象之间连接的结构关系。
泛化(Generalization)。
泛化是一般化和特殊化的关系,描述特殊元素的对象可替换一般元素的对象。
实现(Realization)。
实现是类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。 -
本题考查面向对象UML建模语言知识点。在UM中,有9种基本的图形。其中,
用例图:
用例图以图形化的方式描述系统与外部系统及用户的交互,其以图形化的方式描述了谁将使用系统,以及用户期望以什么方式与系统交互,主要用在面向对象需求分析阶段。
部署图:
部署图描述系统中硬件和软件的物理架构,它描述构成系统架构的软件结构、处理器和设备, -
采用面向对象方法进行软件开发,分析阶段,架构师主要关注系统的行为,即系统应该做什么。
-
两个类之间可以由不同角色标识存在多个关联。
-
在UML用例图中,参与者是指存在于系统外部并直接与系统进行交互的人、系统、子系统或类的外部实体的抽象。
-
类图用于对项目的静态设计视图建模。这种视图主要支持系统的功能需求,即系统要提供给最终用户的服务。当对系统的静态设计视图建模时,通常以下述3种方式之一使用类图
系统的词汇
简单的协作
逻辑数据库模式 -
在用例模型中,用例之间的关系主要有包含、扩展和泛化,利用这些关系,把一些公共的信息抽取出来,以便于复用,使得用例模型更易于维护。
①包含关系。当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们。其中这个提取出来的公共用例称为抽象用例,而把原始用例称为基本用例或基础用例。
②扩展关系。如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样使描述可能更加清晰。
③泛化关系。当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。 -
UML用系统视图描述系统的组织结构,具体来说,就是指以下5个系统视图:
①逻辑视图。逻辑视图也称为设计视图,它表示了设计模型中在架构方面具有重要意义的部分,即类、子系统、包和用例实现的子集。
②进程视图。进程视图是可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构。
实现视图。实现视图对组成基于系统的物理代码的文件和构件进行建模。
④部署视图。部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。
③用例视图。用例视图是最基本的需求分析模型 -
用户需求不清晰且经常发生变化”所以只有原型化方法适用
-
在面向对象系统中,对象是基本的运行时的实体,它既包括数据(属性),也包括作用于数据的操作(行为)。所以,一个对象把属性和行为封装为一个整体。
封装是一种信息隐蔽技术,它的目的是使对象的使用者和生产者分离,使对象的定义和实现分开
从程序设计者来看对象是一个程序模块;从用户来看,对象为他们提供了所希望的行为。
在对象内的操作通常叫做方法。
对象通常可由对象名、属性和方法三部分组成。
一个类定义了一组大体上相似的对象。一个类所包含的方法和数据描述一组对象的共同行为和属性,这些对象共享这些行为和属性。
一个类产生的对象共享属性和行为。 -
覆盖:子类重写父类的方法。
重载:一个类可以有多个同名而参数类型不同的方法 -
在收到消息时,对象要予以响应。不同的对象收到同一消息可以产生完全不同的结果,这
一现象叫做多态(polymorphism)。
在使用多态的时候,用户可以发送一个通用的消息,而实现的细节则由接收对象自行决定。这样,同一消息就可以调用不同的方法。
绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。在一般的程序设计语言中,绑定是在编译时进行的,叫做静态绑定。
动态绑定则是在运行时进行的,因此,一个给定的过程调用和代码的结合直到调用发生时才进行。动态绑定是和类的继承以及多态相联系的。
在继承关系中,子类是父类的一个特例,所以,父类对象可以出现的地方,子类对象也可以出现。因此在运行过程中,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法进行连接,即动态绑定。 -
瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。它包括可需求分析设计、编码、测试、运行和维护。
瀑布模型的优点是:容易理解,管理成本低,强调开发的阶段性早期计划及需求调查和产品测试。
不足之处是:客户必须能够完整、正确和清晰地表达他们的需要,需求或设计中的错误往往只有到了项目后期才能够被发现。
增量模型融合了瀑布模型的基本成分和原型实现的迭代特征,它假设可以将需求分段为一系列增量产品,每一增量可以分别地开发。该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。
而瀑布模型难以适应这种需求的不确定性和变化,于是出现了快速原型这种新的开发方法。
原型是预期系统的一个可执行版本,反映了系统性质的一个选定的子集。一个原型不必满足目标软件的所有约束,其目的是能快速、低成本地构建原型。
螺旋模型将瀑布模型和演化模型结合起来,加入了两种模型均忽略的风险分析,弥补了这两种模型的不足。螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有了解,继而做出应有的反应,因此特别适用于庞大、复杂并且具有高风险的系统与瀑布模型相比,螺旋模型支持用户需求的动态变化,为用户参与软件开发的所有关键决策提供了方便,有助于提高软件的适应能力,并且为项目管理人员及时调整管理决策提供了便利,从而降低了软件开发的风险。 -
结构化开发方法是自顶向下的开发方式,适用于那些需求明确,但技术难度不大的系统开发;原型化开发方法适用于需求不明确的情况。
-
统一建模语言(UML)师一种可视化的建模语言,而不是编程语言,适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具。它比较适合用于迭代式的开发过程,是为支持大部分现存的面向对象开发过程而设计的。
-
扩展关系与包含关系的区别是:离开子用例,基用例是否可以完成一个完整的功能。
-
对象的状态标识了该对象的所有属性(通常是静态的)以及每个属性的当前值(通常是动态的)。
行为是对象根据它的状态和消息传递所采取的行动和所作出的反映;
操作则代表了一个类提共给它的对象的一种服务 -
静态结构:主要包括用例图、类图和包图;
动态视图:主要包括活动图、状态图、序列图和协作图。
动态视图中,交互视图描述了执行系统功能的各个角色之间相互传递消息的顺序关系,主要包括序列图、协作图。 -
软件开发模型大体上可以分为三种类型。
第一种是以软件需求完全确定为前提的瀑布模型;
第二种是在软件开发初始阶段只能提供基本需求时采用的迭代式或渐进式模型,例如喷泉模型、螺旋模型、统一开发过程和敏捷方法等;
第三种是以形式化为基础的变换模型。 -
参数多态:应用广泛、最纯的多态。
包含多态:同样的操作可用于一个类型及其子类型。包含多态一般需要进行运行时的类型检查。
过载多态:同一个名(操作符、函数名)在不同的上下文中有不同的类型。
强制多态:编译程序通过语义操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求。 -
末端有一个完整的圆周的接口符号代表组件需求接口
在末端只有半个圆的接口符号代表组件提供接口 -
类可以分为三种类型,分别是实体类、边界类和控制类。
1、实体类
实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关。
2、控制类
控制类用于描述一个用例所具有的事件流控制行为,控制一个用例中的事件顺序。例如,用例“身份验证”可以对应于一个控制类“身份验证器”它提供了与身份验证相关的所有操作。控制类用于对一个或几个用例所特有的控制行为进行建模,控制对象(控制类的实例)通常控制其他对象,因此,它们的行为具有协调性。通常情况下,控制类没有属性,但一定有方
3、边界类
边界类用于描述外部参与者与系统之间的交互,它位于系统与外界的交接处,包括所有窗体、报表、打印机和扫描仪等硬件的接口,以及与其他系统的接口。要寻找和定义边界类,可以检查用例模型,每个参与者和用例交互至少要有一个边界类,边界类使参与者能与系统交互。边界类是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。常见的边界类有窗口、通信协议、打印机接口、传感器和终端等。实际上,在系统设计时,产生的报表都可以作为边界类来处理。 -
组合结构图(composite structure diagram)。描述结构化类(例如构件或类)的内部结构,包括结构化类与系统其余部分的交互点。它显示联合执行包含结构化类的行为的构件配置。组合结构图用于画出结构化类的内部内容。
包图(package diagram)。描述由模型本身分解而成的组织单元,以及它们的依赖关系。
部署图(deployment diagram)。描述对运行时的处理节点及在其中生存的构件的配置。部署图给出了架构的静态部署视图,通常一个节点包含一个或多个部署图。
构件图(component diagram)。描述一个封装的类和它的接口、端口,以及由内嵌的构件和连接件构成的内部结构。构件图用于表示系统的静态设计实现视图。对于由小的部件构建大的系统来说,构件图是很重要的。构件图是类图的变体。
类图展现了一组对象、接口1、协作和它们之间的关系
定时图强调消息跨越不同对象或参与者的实际时间,而不仅仅只是关心消息的相对顺序。
部署图软件和硬件组件之间的物理关系以及处理节点的组件分布情况。
包图描述由模型本身分解而成的组织单元,以及它们之间的依赖关系。 -
结构化方法(Structured Method)是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。针对软件生存周期各个不同阶段,它包括结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。结构化分析方法给出一组帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等,其中不包括问题分析
-
用例之间的关系主要有包含、扩展和泛化三类。
(1)包含关系。当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们。“课程学习”与“检查权限”是包含关系o
(2)扩展关系。如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样使描述可能更加清晰。“课程学习”与“缴纳学费”是扩展关系。
(3)泛化关系。当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。“课程注册”与“网络注册”是泛化关系。 -
系统结构图是软件概要设计阶段的工具。反映系统的功能实现和模块之间的联系与通信,包括各模块之间的层次结构,反映了系统的总体结构
-
耦合表示模块之间联系的程度。紧密耦合表示模块之间联系非常强,松散耦合表示模块之间联系比较弱,
非耦合则表示模块之间无任何联系,是完全独立的。
模块的耦合类型通常分为7种,根据耦合度从低到高排序如下表所示。
这里数据耦合和标记耦合的区别是,数据耦合传递的是简单参数。 -
内聚表示模块内部各成分之间的联系程度,是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做目标单一的一件事情。模块的内聚类型通常也可以分为7种,根据内聚度从高到低的排序如下表所示。
-
控制对象、实体对象、边界对象
-
模型一视图一控制器(MVC)中各个部分的基本功能。
在MVC模式中,
Model主要负责数据和业务逻辑,而
View主要负责呈现,也就是用户界面,
Controller主要负责Model和View的交互。 -
在UML的各种视图中,
用例视图从外部参与者的角度描述系统功能:
逻辑视图从系统的静态结构和动态行为角度显示系统内部如何实现系统功能;
而源代码结构和实际的执行代码则是通过实现视图反映。 -
Jackson设计方法是一种面向数据结构的软件设计方法,
Jackson分析方法是通向数据流的分析方法。 -
组合与聚合的联系和区别。
组合与聚合都体现着“部分“和“整体”的关系,但组合是一种很强的“拥有“关系,“部分“和“整体”的生命周期通常一样。整体对象完全支配其组成部分,包括它们的创建和销毁等;
而聚合有时候“部分“对象可以在不同的“整体“对象之间共享,并且“部分“对象的生命周期也可以与“整体“对象不同,甚至“部分“对象可以脱离“整体”对象而单独存在。组合与聚合都是关联关系的特殊种类。 -
XML:是一种用于标记电子文件,使其具有结构性的标记语言。
C++:是在C语言的基础上发展起来的,主要增加了类的功能,使其成为面向对象的程序设计语言。
Prolog:是以特殊的逻辑推理形式回答用户的查询,经常用于数据库和专家系统。
Python:是一种面向对象的解释型计算机程序设计语言。Python语法简洁而清晰,具有丰富和强大的类库。它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地结合在一起。 -
OOA基于用例模型,通过对象建模记录确定的对象,对象封装的数据和行为,以及对象之间的关系。OOA包括3个活动,分别是建模系统功能、发现并确定业务对象、组织对象并确定对象间的关系,
-
在对实际应用问题建立数学模型并求得结果后,还需要根据建模的目的和要求,利用相关知识,结合研究对象的特点,进行模型分析。模型分析工作主要包括模型的合理性分析、模型的误差分析和参数的灵敏性分析等,一般不包括模型的先进性分析。
-
调用组件,实现接口
-
在UML中,有两种类型的图:结构图和行为图。
结构图用来描述事物之间的关系;包括类图、对象图、组件图和部署图。
行为图用来描述参与者和用例之间的交互或者描述参与者如何使用系统;
行为图包括用例图,顺序图、活动图、状态图和通信图。 -
事物:是对模型中最具有代表性的成分的抽象。结构事物,如类(Class)、接口(Interface)、协作(Collaboration)、用例(UseCase)、主动类(ActiveClass)、组件(Component)和节点(Node);行为事物,如交互(Interaction)、状态机(Statemachine);分组事物(包,Package);注释事物(注解,Note)
-
数据流图或称数据流程图(Data Flow Diagram,DFD)是一种便于用户理解、分析系统数据流程的图形工具。它摆脱了系统的物理内容,精确地在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分。DFD由数据流、加工、数据存储和外部实体4个要素构成。
外部实体是指存在于软件系统之外的人员或组织,它指出统所需数据的发源地和系统所产生数据的归宿地。 -
属于类行为模式的只有:
创建型模式中的工厂方法;
结构型模式中的适配器模式;
行为型模式中的解释器模式与模板方法模式。 -
软件设计包括4个既独立又相互联系的活动,
分别为体系结构设计 、接口设计、数据设计和过程设计。 -
SCRUM MASTER职责的6大职责:教练、服务型领导、过程权威、保护伞、清道夫、变革代言人。A是保护伞职责;C是过程权威职责;D是服务型领导职责。
(1)教练
ScrumMaster通过对研发团队和产品负责人进行指导,消除两者之间的隔阂,是产品负责人能够直接驱动产品开发。
ScrumMaster重点观察团队使用Scrum的过程,全力帮助团队达到更高级别的工作效能。ScrumMaster驱动团队发现并自主解决问题,当团队遇到无法解决的障碍时,才由ScrumMaster负责解决。ScrumMaster使用Scrum帮助负责人取得最大的业务成果,管理预期,确保负责人提供团队的必需品,倾听负责人抱怨和变更请求,最终将这些信息转换为团队可以落地的改进措施。
(2)服务型领导
ScrumMaster是团队的服务者,提供的服务要确保满足团队最高优先级的需要。服务型领导从来不会问今天你准备为我做什么?“相反,服务型领导会问"为了帮助你和团队更加有效,今天我能做什么?
(3)过程权威
确保Scrum团队使用特定的方法实施并遵循Scrum的价值观、原则和实践,ScrumMaster需要被充分授权。ScrumMaster需要持续帮助团队改进过程,实现交付的业务价值最大化。
(4)保护伞
ScrumMaster保护开发团队免受外部干扰,让团队可以集中精力在每个冲刺交付业务价值。(5)清道夫
ScrumMaster需要扫清妨碍团队生产效率的一切障碍(当团队成员自己搞不定的时候)
(6)变革代言人
ScrumMaster要帮助他人理解变革的需要,在Scrum团队之外Scrum所带来的影响及Scrum能帮助达到的广泛而深远的收益。ScrumMaster还要确保组织的名个层面都发生有效的变革,不仅能够促成短期的成功,而且能够得到长期的收益
第四章 标准与知识产权
- 保护期限不受限制的有:署名权,修改权,保护作品完整权。
保护期限为作者终身及死后50年的,包括:发表权、使用权和获得报酬权。 - 根据我国法律法规的规定必须使用注册商标的是烟草类商品。
- 根据《著作权法》第二十条作者的署名权、修改权保护作品完整权的保护期不受限制
- 著作权是提高对作品,包括文学、艺术、自然科学、社会科学和工程技术领域内具有独创性并能以某种有形形式复制的智力成果。
专利权保护的是具有创造性的发明及设计等成功。
商业秘密权用来保护商家的秘密,而软件的技术信息及经营信息正属于商业秘密的范畴,因此需要用商业秘密权来保护。 - 我国保护计算机软件著作权的两个基本法律文件是
《中华人民共和国著作权法》和《计算机软件保护条例》 - 专利申请具有三个原则:书面原则,是指专利申请人及其代理人在办理各种手续时都应当采用书面形式;
先申请原则,
是指两个或者两个以上的人分别就同样的发明创造申请专利的,
专利权授给最先申请人;
单一性原则,是指一份专利申请文件只能就一项发明创造提出专利申请,
即“一申请一发明”原则。 - 根据专利法实施细则,职务发明创造是指
①在本职工作中做出的发明创造;
②履行本单位交付的本职工作之外的任务所做出的发明创造:
③退职、退休或者调动工作后1年内做出的,与其在原单位承担的本职工作或者原单位分配的任务有关的发明创造。 - 发明专利权的期限为二十年
实用新型专利权的期限为十年,
外观设计专利权的期限为十五年,
均自申请日起计算。 - 商标专用权应当授予符合法定条件的申请人。
第五章 专业英语
第六章 案例分析
- 活动图主要描述行为的动作。
状态图主要描述行为的结果。 - 结构化分析一般包括以下工具:
数据流图(Data Flow Diagram,DFD)、数据字典(Data DictionaryDD)、结构化语言、判定表、判定树。 - 附件属于弱实体。一个实体的键是由另一个实体的部分或全部属性构成,这样的实体叫做弱实体。附件的外键邮件号是属于邮件这个实体的,所以它属于弱实体,依赖于邮件这个实体。
- (1)类的关系有4种 依赖,泛化,聚合,实现
(2)用例的关系有3种 包含,扩展,泛化
版权声明:本文标题:软考----软件设计师 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726804450h1031538.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论