0%

软考笔记|知识点全集收录

image-20210904121613781

计算机网络

七层模型

1.局域网与广域网差异

题目:

image-20210306191127428

解题步骤:

  • 分析那两台计算机属于同一个局域网

  • Q和R通过物理层的集线器连接,在同一局域网

  • P和Q,R通过数据链路层的网桥连接,在同一局域网

  • S和T通过物理层的交换机连接,在同一局域网

  • P和S,T通过网络层的路由器连接,不在同一局域网,所以只能在局域网进行的广播无法联系这两组成员,所以答案为B

笔记:

  • 广播是在同一局域网内计算机传播信息的方法

  • 通过网络层的设备让局域网连接上互联网

  • 不同层的设备与协议

    image-20210306192055182

网络技术标准与协议

1.DNS协议

题目:

image-20210306193542004

解题步骤:

  • 观察DNS服务器关系,对查询负责到底,还会主动询问其他服务器反馈结果的是递归查询(如图本地域名服务器和中介域名服务器)
  • 不主动询问其他服务器,而是把知道域名对应关系的服务器信息告诉给本地域名服务器,让它去访问,这时迭代查询

笔记:

  • 本地服务器一般采用递归查询,对客户端负责到底,直到查到结果

  • 其他域名服务器一般会用迭代查询,不断踢皮球

网络规划和设计

1.分层设计

image-20210306195501191

IP地址与子网划分

1.子网划分(已知子网个数)

题目:

image-20210307095029964

解题步骤:

  • 将IP地址转为二进制,按分类获得初始的网络号,对应子网掩码为1(本题为B类,则前16位为初始的网络号)
  • 划分子网时,需要取部分主机号当作子网号,因2 ^ 5 > 27,则还需要取5个主机号,对应子网掩码为1
  • 最后再将子网掩码转成十进制
  • image-20210307094820312

笔记:

  • 子网掩码基本概念

    image-20210307094031854

  • A类IP地址前8个为网络号,B类IP地址前16个为网络号,C类IP地址前24个为网络号(一共32个编号,去掉网络号,剩下的为主机号)

2.子网划分(已知主机数)

题目:

image-20210307095210384

  • 将IP地址转为二进制,按分类获得初始的网络号,对应子网掩码为1(本题为B类,则前16位为初始的网络号)
  • 已知每个子网内主机个数有700台,即需要主机号个数大于700;因有2 ^ 10 - 2 > 700,则 有主机号要有10位
  • 最后再将子网掩码转成十进制
  • image-20210307095545832

3.无分类编址

题目:

image-20210307095750040

解题步骤:

  • 可以有20个网络号,还有12个为主机号,网络号相同的主机即可说明在同一子网
  • C类子网前面24个为网络号,该公司中用了20个作为网路号,则剩下4个用于子网的网络号
  • 4个子网号,可以得到2 ^ 4 = 16 ,可以有16个子网

笔记:

image-20210307100306416

4.特殊IP地址

image-20210307100907310

计算机组成原理

数据的表示

1.进制转换

(1)十进制转二进制(短除法)

image-20210308154845157

(2)二进制转八进制,十六进制(分割法)

image-20210308154929141

2.编码问题

题目:
image-20210308155706170

笔记:

  • 数值的二进制编码有八位,第一位作为符号位,符号位为0为正数,符号位为1为负数

  • 正数的原码,反码,补码相等,补码符号位取反得移码

  • 负数的原码在正数的基础上把符号位改成1;负数原码符号位不变,其他位取反即可得反码;反码加1得补码,补码符号位取反得移码

  • 运算中,应该使用补码和移码进行运算

  • 数值表示范围

    image-20210308160402815

3.浮点数运算

解题步骤:

image-20210308162314904

笔记:

  • 对阶的时候,低价转向高阶
  • 结果格式化即保证小数点前的数不为0且小于10

计算机结构

1.主机结构图

image-20210308163334215

2.计算机体系结构分类法——Flynn

image-20210308163719991

计算机指令

1.指令系统比较

流水线

1.基本概念

image-20210308164610404

2.流水线计算

题目:image-20210308165648795

解题步骤:

  • 找执行时间最长的指令作为流水线周期
  • 套入执行指令的时间公式(t1……tk指各个步骤耗费事件,n指需要执行的指令条数,k指执行指令的步骤个数)

3.流水线吞吐率计算

image-20210308170423685

4.流水线加速比

image-20210308170615554

5.流水线的效率

image-20210308170745307

  • n个任务占用的时空区:(所有步骤执行花费时间和)* n
  • k个流水线的总的时空区:流水线花费时间 * k

存储结构

1.层次化存储结构

image-20210308172202705

2.Cache基本内容

image-20210308173547113

  • t3:系统平均周期
  • h:Cache访问命中率
  • t2:主存储器周期时间
  • t1:Cache周期时间

3.局部性原理

参考博文:https://blog.csdn.net/iva_brother/article/details/80463702?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161520232616780261983624%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=161520232616780261983624&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v1~hot_rank-2-80463702.pc_v1_rank_blog_v1&utm_term=%E5%B1%80%E9%83%A8%E6%80%A7%E5%8E%9F%E7%90%86

主存

1.分类

image-20210308192530991

2.编址

题目:

image-20210308192610605

解题步骤:

  • 地址单元数 = 内存地址之差 + 1

  • K = 1024

  • 112K * 16 = 28 * X,求X即为所得

磁盘结构与参数

image-20210308202506958

题目:

image-20210309202746496

解题过程:

  • 最长的情况:

    image-20210309203546207

  • 由于磁头读取完数据后,数据要花3ms的时间来处理,由于是单缓存区,下个数据没地方处理,所以磁盘要转完一圈回来读取下个数据

  • (33 + 3 )* 10 + 6 = 366

  • 最优情况,信息处理完的同时,磁头转到的下个数据头处,只需要转两圈即可读取所有数据f

    image-20210309203623231

计算机总线

image-20210309204026006

系统可靠性分析

R为失效率

1.串联模型

image-20210309204541620

2.并联模型

image-20210309204634998

3.模冗余系统与混合模型

冗余模型,多个模块进行同样计算,取多数的运算结果作为最终结果

image-20210309204934942

差错控制

1.检错和纠错机制

码距:整个编码系统中任意两个码字的最小距离

提高码距可以提高达到检错,纠错的效果

2.循环校验码CRC

在传输数据后面加上一串校验码,用来检验数据

(1)模2除法(按位做异或操作)

image-20210309210000564

(2)题目

image-20210309210210553

(3)解题步骤

  • 生成多项式转成二进制形式,看对应二进制位是0还是1(11011)

  • 进行编码时在原始报文后面加(多项式二进制位数-1)个0

  • 进行模二运算后得到的余数即为CRC

  • CRC代替上一加入的0,最后生成编码后的报文

3.海明校验码

题目:

image-20210309211131147

解题步骤:

  • 确定校验码位数,可以用公式2 ^ r >= 信息位数 + r + 1来求
  • 校验码的填入位置为2的n次方
  • 填入信息位
  • 下面计算校验码的内容
  • 将位数转换成2进制相加的形式,再把它们涉及到的信息位做异或操作得对应校验位
  • 下面时纠错机制
  • 正确校验位与错误的校验位做异或操作,为1的为即为出错位,出错位取反即可纠正

操作系统基本原理

操作系统基本知识

1.操作系统概述

image-20210312074736657

image-20210312074751379

进程管理

1.进程的状态

image-20210312075411086

三态模型现在已经升级到五态模型

image-20210312080355516

2.进程的同步与互斥

image-20210312141729903

互斥问题:生产者和消费者,只能有一个人进入市场操作

同步问题:生产者必须要等待消费者使用完市场资源,才能继续操作市场

3.PV操作

(1)PV操作原理

image-20210312142146098

image-20210312143331131

P操作代表请求、申请、锁定、占用的资源

V操作代表释放资源,V操作可以唤醒P操作

(2)PV操作例题

题目:

image-20210312143437728

解题步骤:

  • 分析流程图,购书者进程与收银员进程有同步关系

  • 分析可得,收银员要收费必须要购书者付款来唤醒,且付款为V操作,收费为P操作

  • 收费过程中,购书者也要等到收银员完成操作才能离开书店,所以这时候购书者会有一个P操作等待收银员完成收费的V操作触发

  • 总而言之,等待的一方会有一个P操作,等待另一个进程的V操作触发

4.PV操作与前趋图

image-20210312160701203

解题步骤:

  • 在前趋图的路径上标上S1-S4

  • 前趋图的S路径的头为V操作,末端为P操作(箭头指向为V,箭头起始点为P)

  • 则易得a为V(S1),b为V(S2),c为P(S1),P(S2)……

5.死锁问题

参考文章:https://blog.csdn.net/hd12370/article/details/82814348?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161554879916780255272251%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161554879916780255272251&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~hot_rank-1-82814348.first_rank_v2_pc_rank_v29&utm_term=%E6%AD%BB%E9%94%81

(1)死锁概念

​ 所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一 种僵局,当进程处于这种僵持状态时,若无外力作用,它们都 将无法再向前推进。

image-20210312162421562

(2)不发生死锁计算

image-20210312162740249

解题步骤:

  • 每个进程都分配到资源数(n-1),最后还剩下一个资源逐个等待分配
  • 所以总不发生死锁的资源是 每个进程所需(资源数-1)之和 加1

(3)死锁的条件

  • 互斥条件:进程要求对所分配的资源进行排它性控制,即在一段时间内某资源仅为一进程所占用。
  • 请求和保持条件:当进程因请求资源而阻塞时,对已获得的资源保持不放。
  • 不剥夺条件:进程已获得的资源在未使用完之前,不能剥夺,只能在使用完时由自己释放。
  • 环路等待条件:在发生死锁时,必然存在一个进程–资源的环形链。

image-20210312193446990

(4)死锁的预防

  • 资源一次性分配:一次性分配所有资源,这样就不会再有请求了:(破坏请求条件)
  • 只要有一个资源得不到分配,也不给这个进程分配其他的资源:(破坏请保持条件)
  • 可剥夺资源:即当某进程获得了部分资源,但得不到其它资源,则释放已占有的资源(破坏不可剥夺条件)

(5)死锁的避免

  • 资源有序分配法:系统给每类资源赋予一个编号,每一个进程按编号递增的顺序请求资源,释放则相反(破坏环路等待条件),资源利用率比较低

  • 银行家算法:

    image-20210312194338267

题目:

image-20210312194446263

  • 计算系统扣除分配给各个进程的资源后剩余的资源

  • 算得R1=2,R2=1,R3=0

  • 逐个计算每个进程还需资源数,比系统剩余资源数多的往后排

    image-20210313094046147

  • 一个进程完成后会释放资源供下个进程使用

存储管理

1.分区存储组织

image-20210313094709268

  • 首次适应算法:选择第一块空白内存
  • 最佳适应算法:选择空白内存中小且资源够用的
  • 最差适应算法:选择空白内存中最大的
  • 循环首次适应法:将空白块连成一个环,按顺序依次选择其中一个

2.页式存储组织

(1)基本概念

image-20210313100151803

页式存储特点:

  • 优点:利用率高,碎片小,分配及管理简单
  • 缺点:增加了系统开销,可能产生抖动现象

3.页式存储地址换算

(1)基本思路

image-20210313100613841

image-20210313100941223

(2)例题

题目:

image-20210313100709517

解题步骤:

  • 利用页面大小将分开逻辑地址为:页号,页内地址
  • 页面大小为4K = 2 ^ 12,则页内地址为12位,则高于12位的部分为页号
  • 则有逻辑地址5A29中,5为页号,A29为页内地址
  • 逻辑地址的业内地址和物理地址的块地址相同
  • 根据页号5查表得块号(页帧号)为6
  • 淘汰页号需要在内存里面(即又页帧号得)的页号中选择,然后选择其中范围位为0的1

4.段式存储组织

(1)基本概念

image-20210313102504217

段式存储特点:

优点:多道程序共享内存,各段程序修改互不影响

缺点:内存利用率低,内存碎片浪费大

5.段式存储地址换算

image-20210313102837273

6.段页式存储

image-20210313102935041

7.页面置换算法

(1)页面置换典型算法

image-20210313112624921

(2)先进先出算法(FIFO

基本思路: 当需要淘汰一个页面时,总是选择驻留主存时间最长的页面进行淘汰,即先进入主存的页面先淘汰。其理由是:最早调入主存的页面不再被使用的可能性最大。 即优先淘汰最早进入内存的页面。(往前看)

(3)最近最少使用算法(LRU

基本思路:利用局部性原理,根据一个作业在执行过程中过去的页面访问历史来推测未来的行为。它认为过去一段时间里不曾被访问过的页面,在最近的将来可能也不会再被访问。所以,这种算法的实质是:当需要淘汰一个页面时,总是选择在最近一段时间内最久不用的页面予以淘汰。 即淘汰最近最长时间未访问过的页面(往前看)

(4)例题

两种算法比较:

image-20210313113550052

题目:

image-20210313113911134

解题步骤:

  • 没有使用快表,每读一次程序的块都需要在内存中查表才能读取相应内存块,所以每一块都要进行两次内存的访问(查和读取)
  • 6块 * 2 = 12 (内存访问次数)
  • 指令产生只一次中断,数据横跨两个页面所以有两次中断,所以总缺页中断 = 1 + 2*2 = 5

文件管理

1.索引文件结构

(1)原理图

image-20210313114859091

(2)例题

image-20210313114927467

解题步骤:

  • 0~4号逻辑块采用直接索引,可在图中看出他们的物理块号为50-89
  • 5号处则是采用了一级地址,经过一层的地址索引,可得到5号存在58的物理号,6号则存在59的物理号中
  • 因为一个物理为1K,每个地址存四个字节,所以每个盘块可以存256个地址
  • 5 + 256 = 261,第一个盘已经存满,所以261号正好存在第二个盘的开始187号

2.文件和树形目录结构

(1)基本概念

image-20210313120118190

3.空闲存储空间管理

(1)基本方法:

image-20210313120413285

​ 其中位数图法比较重要

(2)位示图法

题目:

image-20210313120529830

解题步骤:

  • (4195 + 1) / 32 = 131.125,所以前131个填满,当前物理块占的位在第132个字中
  • 系统要占用物理块应该在该处填1,可算得在132字中,0位置位4192,所以3位置对应了4195
  • image-20210313121126473

设备管理:

1.数据传输控制

image-20210313121420639

  • 程序控制方式:对读入的每个字,CPU需要对外设状态进行循环检查,直到确定该字已经在I/O控制器的数据寄存器中
  • 程序中断方式:允许I/O设备主动打断CPU的运行并请求服务,从而“解放”CPU,使得其向I/O控制器发送读命令后可以继续做其他有用的工作
  • DMA方式:在程序中断方式中,I/O设备与内存之间的数据交换必须要经过CPU中的寄存器,所以速度还是受限,而DMA(直接存储器存取)方式的基本思想是在I/O设备和内存之间开辟直接的数据交换通路,彻底“解放” CPU

2.虚设备与SPOOLING技术

image-20210313122125573

微内核操作系统

image-20210313122222620

数据库系统

三级模式-两级映射

1.原理图

image-20210314143038668

2.三级模型

  • 用户级数据库–> 外模式(反映了数据库系统的用户观),它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示【视图】
  • 概念级数据库–> 概念模式(反映了数据库系统的整体观),它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)【表】
  • 物理级数据库 –> 内模式(反映了数据库系统的存储观),它是数据库中全体数据的内部表示或底层描述,描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库

3.两级映射

  • 概念模式/内模式的映像:实现概念模式到内模式之间的相互转换
  • 外模式/概念模式的映像:实现外模式到概念模式之间的相互转换

数据库的设计过程

1.设计流程图

image-20210314145042759

2.E-R模型

(1)E-R模型实例

image-20210314145321377

(2)E-R图集成方法

image-20210314145646133

(3)E-R模型转关系模式

参考文章:https://blog.csdn.net/gaoying_blogs/article/details/16843515?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161570558016780255285810%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161570558016780255285810&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~hot_rank-2-16843515.first_rank_v2_pc_rank_v29&utm_term=E-R%E6%A8%A1%E5%9E%8B

题目:

image-20210314145957620

解题步骤:

  • 分析联系模式:均为多对多模式
  • 所以最少的关系模式为(实体数 +联系数)即4个

笔记:

  • 一个实体型转换为一个关系模式

  • 关系模式个数:一对一型最少的情况为实体数,一对多型最少的情况为实体数,多对多型最少的情况为(实体数 +联系数)

3.关系代数

(1)关系代数基本运算

image-20210314151722551

(2)关系表案例

image-20210314151914046

(3)并,交,差运算

并:

image-20210314151946909

交:

image-20210314152007727

差:

image-20210314152031086

(4)笛卡尔积

​ 笛卡尔积的字段前3个来自于S1表,后3个来自于S2表

​ 笛卡尔积数据实际上是S1,S2两张表的数据进行排列组合(3*3)

image-20210314152223121

(5)投影,选择

投影:投影是选列操作(sql语句中的select)

image-20210314152652982

选择:选择某一行(sql语句中的where)

image-20210314152709163

(6)联接

image-20210314153548698

无条件时做自然联接(相同字段做等值)

image-20210314153340961

规范化理论

1.函数依赖

例如y=f(x),x有唯一对应的y则称y函数依赖于x,记作x->y

(1)部分函数依赖

image-20210314164841918

(2)传递函数依赖

image-20210314165058634

2.价值与用途

image-20210314193504624

(1)非规范关系模式案例

image-20210314193830269

(2)数据冗余:每一名学生的学号、姓名、系名、系主任这些数据重复多次。每个系与对应的系主任的数据也重复多次——数据冗余过大

(3)更新异常:假如李小明转系到法律系,那么为了保证数据库中数据的一致性,需要修改三条记录中系与系主任的数据

(4)插入异常:假如学校新建了一个系,但是暂时还没有招收任何学生(比如3月份就新建了,但要等到8月份才招生),那么是无法将系名与系主任的数据单独地添加到数据表中去的

(5)删除异常:假如将某个系中所有学生相关的记录都删除,那么所有系与系主任的数据也就随之消失了(一个系所有学生都没有了,并不表示这个系就没有了)

3.键

(1)键的关系

image-20210314194550086

(2)求候选键

参考文章:https://blog.csdn.net/as4589sd/article/details/109080855?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161572346216780357243624%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161572346216780357243624&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~hot_rank-6-109080855.first_rank_v2_pc_rank_v29&utm_term=%E6%B1%82%E5%80%99%E9%80%89%E9%94%AE

题目:

image-20210314195241953

解题步骤:

  • 将关系模式转换为有向图的模式,从依赖集入手
  • 找到入度为0的属性,然后从该节点开始尝试遍历有向图,如果可以遍历完则该节点为候选键
  • 如果没有入度为0的节点,尝试找既有入度又有出度的节点,如果能遍历完则该节点为候选键

笔记:

  • image-20210314195211462

4.范式

(1)逐步优化流程图

image-20210314201120528

(2)第一范式

image-20210314201405320

题目:

image-20210314201436636

解题步骤:

  • 表中高级职称人数可以分为教授和副教授两个数据项,则不符合第一范式
  • 移除高级职称人数一栏,教授,副教授和系名称同一行即可

(3)第二范式

image-20210314201834412

题目:

image-20210314202011517

解题步骤:

  • 主键为SN0(学号)与CN0(课程号)的组合键,因为CN0不需要SN0也能确定CREDIT(学分),所以该表存在部分依赖,不符合第一范式

  • 解决方案:将存在部分依赖的项单独建立另一个表,这里是去掉CREDIT一列,和CN0构建另一个表

(4)第三范式

image-20210314202803052

题目:

image-20210314202833312

解题步骤:

  • 非主键中DN0可以确定DNAME,DNAME可以确定LOCATION,所以存在传递依赖,所以不符合第三范式
  • 解决方案:去掉DNAME 与 LOCATION两列,与DN0构建另一个表

(5)BC范式

image-20210314203724832

题目:

image-20210314203737248

解题步骤:

  • 找出候选键SJ组合键,SP组合键

  • 列出函数依赖:SJ -> T,T->J,左边的绝对因素中T不是候选键,所以不符合BC范式

5.规范化理论例题

image-20210315080859705

解题步骤:

  • 不属于第三范式的情况有:不符合第三范式; 不符合第二范式;题目中明显不存在部分依赖,所以符合第二范式。
  • 要把员工和部门联系起来

6.模式分解

(1)保持函数依赖分解

image-20210315082410502

(2)无损分解

image-20210315082432388

image-20210315082440481

(3)推理法

image-20210315082810615

是无损分解,可以进行表格联接来进行还原

image-20210315082927373

(4)表格法

题目:

image-20210315083425454

解题步骤:

  • 写成初始表,第一行列出函数依赖中所有的项,第一列列出要分解出的项;然后按行看,是分解项的子项,填入an(n=所处列数);非子项的填入bmn(m=行数,n=列数)

    image-20210315083758834

  • 然后根据函数依赖修改填b的子项

    image-20210315084125906

(5)公式法

image-20210315084311126

题目:

image-20210315084336470

解题步骤:

  • 该方法只适用于分解成两个的情况
  • 两个集合做交集和差集,并构建出两个关系模式,其中之一能成立,则可证明为无损分解

image-20210315084620536

并发控制

1.基本概念

image-20210315090346349

2.存在问题

image-20210315194405718

  • 丢失更新:两者同时更新某个数据,后者执行的结果会覆盖前者
  • 不可重复读:前后验算的结果可能会因其中一个数据的更新而变得不同
  • 读”脏“数据:读取了临时值

3.封锁协议

参考文章:https://www.cnblogs.com/conanpeng/p/12854299.html

为了解决并发控制出现的以上问题,我们采用封锁协议来解决

image-20210315195107429

数据库完整性约束

1.约束类型

​ 主要用于过滤数据,保证数据可靠性

image-20210315200708816

2.数据库约束简介

  • 实体完整性约束:如用户设置主键,该字段的值不能重复也不能为空
  • 参照完整性约束:如外键,可以和另一个表中的数据比对,可以为空,但是填入数据在参照表中不存在就需要弹出信息
  • 用户自定义完整性:用户自定义填入数据的类型
  • 触发器:触发器是运行在数据库中的脚本,表的操作事件触发表上的触发器的执行,可以用来过滤不符合条件的数据

数据库安全

image-20210315201555152

数据备份

1.备份类型

image-20210315204913135

image-20210315205054584

image-20210315205442073

2.备份方式对比

image-20210315204939376

3.日志文件

image-20210315205518921

4.数据库故障与恢复

image-20210315205646104

数据仓库与数据挖掘

1.关联图

image-20210315205934016

2.数据挖掘分类

image-20210315210714712

反规范化

1.原理

image-20210315210849763

2.技术手段

image-20210315210908917

大数据

1.数据比较

image-20210315211214538

2.大数据处理系统特征

image-20210315211251951

系统安全分析与设计

信息系统安全属性

image-20210318202510615

加密技术

1.对称加密

​ 加密和解密使用同样的密钥

image-20210318203018930

2.非对称加密技术

image-20210318203037879

信息摘要

image-20210318203513688

数字签名

image-20210318204118305

数字信封与PGP

1.数字信封

image-20210318205002055

2.PGP

image-20210318205018048

设置加密系统

image-20210318210102213

网络安全

1.网络各层次安全保障

image-20210318210512632

2.网络威胁与攻击

image-20210318211044069

image-20210318211147834

3.防火墙技术

image-20210318211223131

编译原理

编译过程

高级语言类型:解释型语言,编译型语言

1.编译过程

image-20210321154849368

文法

1.文法样式

一个形式文法是一个有序四元组G=(V,T,S,P)

image-20210321155251742

非终结符为大写字母,终结符为小写字母

2.文法类型

image-20210321155416921

语法推导树

(1)特征

image-20210321155710879

(2)案例

题目:

image-20210321155732680

解题步骤:

  • {a,b}为终结符,{S,A}为非终结符
  • 由题可写出以下的推导式子:S->aAS,S->a,A->SbA,A->SS,A->ba
  • 因为a,b不能推导出任何式子,所以a,b为终结符
  • 将式子展开成推导树

有限自动机

1.原理解析

有限自动机使用状态转换图表示的

image-20210321162009480

该图中S为起点,f为终点(终点有两个圈)

image-20210321162104442

解析态:找一条从起点到终点的路,路上的数值串起来即得到一个解析态

2.例题

image-20210321164053206

按选项的路径一个个尝试,若能从A到C则该选项正确

正规式

有限自动机除了可以用上面的状态转换图表示,也可以使用正规式来表达

题目:

image-20210321162604694

解题步骤:

  • 根据上面的推导式逐个尝试推导(1)中的选项,D选项无法被推导出来
  • (2)可以根据(1)中不能被推导的D选项判断,(2)中的选项可以推导出D的都会被排除

笔记:

  • a|b :可解析出a或b
  • (a|b)*:任意个a,b组合都可以表达出来

表达式

1.基础

image-20210321164325199

类似于树的遍历

2.案例

题目:

image-20210321164655382

解题步骤:

  • 先由表达式构造树(括号表示先后顺序)

    image-20210321164705393

  • 再按要求遍历这颗树

函数调用

函数调用有两种类型

image-20210321164852542

保护期限

image-20210324171458649

知识产权人确定

image-20210324171631453

image-20210324171752251

侵权判断

image-20210324171953843

image-20210324172046092

标准化基础知识

标准分类

image-20210324172153824

标准编号

image-20210324172322316

多媒体基础

音频

image-20210324172825384

媒体种类

image-20210324174143278

多媒体计算

image-20210324174211249

1.图像容量计算

image-20210324174349827

  • 位数为24位,则为3个字节,存储容量为:1600*1200*3B

  • 需要化单位为MB,可得一张相片存储的容量

  • 再用总容量除以单位容量

    image-20210324174826746

2.音频容量计算

image-20210324174938000

  • 44.1 * 16 * 2 = 1411.2
  • 注意单位即可

3.视频容量计算

image-20210324175128277

  • 6.4 * 30 * 10 = 1920

常见多媒体标准

image-20210324175312991

数据压缩

1.压缩原理

image-20210324175859604

2.有损压缩与无损压缩

image-20210324180217920

软件工程

软件开发模型

1.瀑布模型(SDLC)

image-20210329081750551

适用:需求明确,二次开发

缺陷:需求阶段不明确

2.原型演变

image-20210329082152578

原型针对需求不明确的情况,开发一个简易的展示系统

3.增量模型与螺旋模型

(1)增量模型

image-20210329083037136

(2)螺旋模型

image-20210329083021339

特点:风险分析

3.V模型 喷泉模型 RAD

image-20210329083142428

V模型特点:进行多次测试,需求分析阶段就同步写验收测试和系统测试计划,概要设计阶段同步写集成测试计划,详细设计阶段同步写单元测试计划

喷泉模型特点:面向对象模型

RAD:快速构建系统

3.构件组装模型(CBSD)

模块做成构件,最后组装成系统

image-20210329084052347

特点:提高代码复用性

4.敏捷开发方法

image-20210329084130260

适用场景:适合小项目

信息系统开发方法

image-20210329084528060

  • 结构化方法:开发流程不灵活
  • 面向对象:复用性强

需求开发

1.需求分类和需求获取

image-20210329084949330

结构化设计

1.基本原则

image-20210329085644093

image-20210329085707972

模块独立性的衡量指标:高内聚,低耦合

2.内聚和耦合

(1)内聚

内聚即模块中各个部件的连接紧密程度,内聚程度越高越好

image-20210329090028450

(2)耦合

耦合即模块间的联系的紧密程度,耦合程度越低越好

image-20210329090217178

3.系统结构

变换型系统结构

image-20210329090443055

软件测试

1.测试原则与类型

(1)测试原则

image-20210329165202071

(2) 测试类型

image-20210329165221282

2.测试用例设计

(1)黑盒测试法(只看输入输出,内部不管)

image-20210329165642740

  • 等价类划分:划分同样类型的逻辑
  • 边界值分析:边界值测试

(2)白盒测试

image-20210329165725137

image-20210329165739431

  • 路径测试:执行所有可能得穿过程序得控制流程路径,所有路径覆盖

  • 语句测试:至少执行程序中的所有语句一次

  • 条件测试:至少执行程序中的每一分支一次

3.测试阶段

image-20210329170209413

单元测试(内部单个模块测试)-> 集成测试(模块组装联系起来测试)-> 确认测试(确认需求) -> 系统测试

4.McCabe复杂度

image-20210329170925116

复杂度 = 判断框 + 1

有向图转成键线图:

  • 分叉处抽象为节点

系统运行与维护

image-20210329171507631

软件过程改进

1.CMMI

image-20210329172027421

image-20210329172034566

2.项目管理

image-20210329172414687

(1)gantt图

题目:

image-20210329172506560

解题方法:

  • gantt图优点:进度时间清晰明了

  • gantt图缺点:不能清晰描述任务间的依赖关系

  • 最早开始时间:正向推理,完成最早开始时间后从最后一个节点开始逆推得最晚开始时间

3.风险管理

image-20210329173325006

面向对象

1.UML基础

image-20210401073147043

2.面向对象设计原则

image-20210401073901860

  • 单一职责原则:只有一个工作职责

  • 开放-封闭原则:尽量不修改原有类,而是创建新的类

  • 李氏替换原则:不要重写父类,而是使用子类

  • 依赖倒置原则:针对接口,易于扩展和升级

3.设计模式的概念

image-20210401074902454

  • 架构模式:最高决策,全局看方案(框架)
  • 设计模型:构建设计
  • 惯用法:与语言相关

4.设计模式的分类

image-20210401075141629

关于设计模式可参考文章:https://www.runoob.com/design-pattern/abstract-factory-pattern.html

5.创建型模式

image-20210401075331145

  • 抽象工厂:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品
  • 构建器模式:一些基本部件不会变,而其组合经常变化的时候(去肯德基,汉堡、可乐、薯条、炸鸡翅等是不变的,而其组合是经常变化的,生成出所谓的”套餐”)
  • 工厂模式:我们明确地计划不同条件下创建不同实例时(您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现)
  • 原型模式:利用已有的一个原型对象,快速地生成和原型对象一样的实例(细胞分裂)
  • 单例模式:当您想控制实例数目,节省系统资源的时候(Windows 是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行)

6.结构型模式

image-20210401081127485

  • 适配器模式:主要解决在软件系统中,常常要将一些”现存的对象”放到新的环境中,而新环境要求的接口是现对象不能满足的(美国电器 110V,中国 220V,就要有一个适配器将 110V 转化为 220V)
  • 桥接模式:把这种多角度分类分离出来,让它们独立变化,减少它们之间耦合(墙上的开关,可以看到的开关是抽象的,不用管里面具体怎么实现的)
  • 组合模式:树枝和叶子实现统一接口,树枝内部组合该接口(算术表达式包括操作数、操作符和另一个操作数,其中,另一个操作符也可以是操作数、操作符和另一个操作数)
  • 装饰模式:在不想增加很多子类的情况下扩展类( 1、扩展一个类的功能。 2、动态增加功能,动态撤销)
  • 外观模式: 客户端不需要知道系统内部的复杂联系,整个系统只需提供一个”接待员”即可

7.行为模式

image-20210401082208514

image-20210401082903101

  • 职责链模式:有多个对象可以处理同一个请求,具体哪个对象处理该请求由运行时刻自动确定

  • 命令模式:在某些场合,比如要对行为进行”记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将”行为请求者”与”行为实现者”解耦?将一组行为抽象为对象,可以实现二者之间的松耦合

数据流图(DFD)

1.数据流图基本概念

(1)数据流图组成

image-20210407213739002

(2)数据流图分层

image-20210407214121210

结构化开发

2.数据字典

image-20210407214322138

3.数据流图平衡原则

(1)父图于子图的 平衡

(2)子图内的平衡

image-20210407214827079

4.数据流图解题技巧

(1)题目分点解析

image-20210407215045201

(2)利用数据平衡原则检查

image-20210407215232985

数据库设计

1.数据库设计流程

image-20210408074600325

2.ER模型

(1)实体间联系类型

image-20210408074731356

(2)ER图与关系模型的转换

image-20210408074840849

UML建模

1.用例图

  • 包含关系(extend)
  • 扩展关系(include)
  • 泛化关系

image-20210411075016076

2.类图与对象图

  • 填类名

  • 填多重度

    image-20210411075231497

  • 填关系

    image-20210411075347236

3.顺序图

image-20210411075622175

4.活动图

image-20210411075717523

5.状态图

image-20210411075843370

6.通信图

顺序图另一种表达方式

image-20210411080106182

数据结构及算法运用

1.分治法

分治法->递归技术

(1)分治法使用要求:

image-20210411081822777

分治法的基本运用:二分查找。快速排序

2.回溯法

image-20210411082526821

image-20210411082644241

回溯法通过不断回溯参数,吧所有可能性都尝试一遍直到

3.贪心法

image-20210411083313668

在有限时间找到满意的解(找不到最优解)

4.动态规划法

image-20210411083609174

动态规划法会把问题拆成多个子问题,然后会有查表步骤

4.动态规划法

image-20210411083609174

动态规划法会把问题拆成多个子问题,然后会有查表步骤