软考设计师心得

进程管理
1、进程包含多个线程,进程的资源可以给各个线程共享,但是线程之间不共享
2、临界资源就是互斥资源
3、互斥操作一般S≠0,先P(要资源)后V(释放资源)
4、同步操作一般S=0,先V后P
5、死锁:可能发生死锁的最大资源数=(w-1)m,w为每个进程需要的资源,m为进程数
不可能发生死锁的最大资源数=可能发生死锁最大资源数+1
6、PR图,P(进程),R(资源),R指向P表示R分配一个资源给P,这一定会分配到;P指向R表示向R申请资源,这个不一定能申请到
存储管理
1、应用程序的数据是在硬盘里的,等要用的时候才会放到内存中,这时候,在硬盘的叫做页,在内存叫做块或者页帧,页和块之间有个映射表,就叫做页表
逻辑地址表示的是在页(硬盘)里的位置
物理地址表示的是在块(内存)里的位置
比如某个数据在第一页的第20kb的位置,那逻辑地址表示1,20
假设这时候第一页映射到内存是第5块
那么这个数据的物理地址表示5,20
所以逻辑地址和物理地址的表示只是前面的页和块的区分,KB不用动
例子:页式存储中,每个页的大小是4KB,某个数据的逻辑地址是10 1100 1101 1110
求物理地址:
4KB也就是2的12次方,那么后面12位就是在4KB里的位置,前面的才是表示页,也就是10,换成10进制就是2 ,假如对应的块是6,那么物理地址是:110 1100 1101 1110
也就是后12位不需要动
2、页式存储会造成抖动,当页数有5,但是内存分的块只有3时,依次看状态位,访问位,修改位,比如,分的内存对应的页号是1,2,3,那么如果这时候要访问第四页,这时候就需要看看123的状态位,访问位,修改位,如果123状态位都为1,12的访问位为1,3的访问位为0,那这时候就会下掉第三页,存储第四页
3、段式存储,应用程序分段,比如第一段有30kb,这时候的逻辑地址表示方法:(段号,偏移量),(0,25K)是有效地址,(0,35K)是非法地址;
4、段页式存储,先分段,在分页
这时候的逻辑地址为:段号,页号,页内地址,比如:
下图最多有2的8次方个段,每段最多有2的11次方页,每页固定大小是2的13次方B,也就是2的3次方KB
存储管理
1、存取时间=寻道时间(切换磁道时间)+等待时间(对应扇区转过来的时间)+传输时间
2、磁盘顺序处理逻辑块,最长用时:(转一圈用时+处理用时)
(逻辑块-1)+转一块用时+处理时间
3、优化后最短用时:逻辑块*(转一块用时+处理时间)
设备管理
1、I/O设备管理软件分层次为:用户进程,设备无关程序,设备驱动程序,中断处理程序,硬件
2、单缓冲区时间计算方法:(输入时间+传送时间)个数+处理时间
双缓冲区:输入时间
个数+传送时间+处理时间
文件管理
1、全文件名:绝对路径+文件名
2、如果某个文件修改写回磁盘时发生崩溃,对系统的影响较大,那么这个文件所涉及的范围肯定是更广的,比如目录比某个具体的文本文件,用户程序等,影响更大
带宽是地址总线控制
查找算法
1、二分法,复杂度,log2n
对半查找,low,mid,high
2、哈希(散列)查找
线性探查法就是说当关键码对某个值取余之后的数在表里已经有数据了,那这时候就往后放,如果还有就继续往后放
3、哈希冲突是不同关键码对数取余后被映射到了相同的位置
查找算法
顺序查找O(n)->二分查找O(log2n)->哈希查找
1、二分法,复杂度,log2n(对半查找,low,mid,high),前提:有序,顺序存储(顺序存储就是说数组)
2、哈希(散列)查找
线性探查法就是说当关键码对某个值取余之后的数在表里已经有数据了,那这时候就往后放,如果还有就继续往后放
3、哈希冲突是不同关键码对数取余后被映射到了相同的位置
排序算法
1、分为稳定排序和不稳定排序,简单点就是说,如果比较的时候只是相邻的数据,那么一定是稳定的,如果是跨了,那是不稳定的
2、原始排序和优化排序
直接插入类排序-------希尔排序
直接选择排序-----堆排序
冒泡排序-----快速排序
在这里插入图片描述

直接插入排序复杂度:O(n²),在原始数组已经是排好序的情况下,最优是O(n),是稳定的排序
希尔排序:分组,组内先排序,是不稳定排序,复杂度:O(n^1.3)
直接选择排序复杂度:O(n²),不稳定排序
堆排序复杂度:构造成根为最小值的树,然后最上面的根就是最值,复杂度:O(nlogn)不稳定排序
冒泡排序:O(n²),稳定排序
快速排序:O(nlogn)不稳定排序,取一个基数,一般是第一个或者中位数,然后和其他比较,小的放左边,大的放右边,然后分成两个组后再继续该操作,如果原数组本身是有序的数组,那么这是最差情况,复杂度来到了O(n²)
归并排序:复杂度O(nlogn),稳定排序,两两相邻的数据先排序,然后四四相邻的比…,没有最坏情况,复杂度一直是O(nlogn)
贪心算法能解决部分背包问题获得最优解,不能解决1-0背包问题
面向对象
1、开发流程:面向对象分析,面向对象设计,面向对象程序设计,面向对象测试
出现对象的字眼是处于面向对象分析
如果出现识别,定义等是面向对象设计,如果同时出现识别和对象字眼,以识别为主,属于面向对象设计
类分为三种:边界类(接口类,功能类,我理解是service层),实体类(PO层),控制类(control层)
2、面向对象设计原则:
重用发布等价原则、共同封闭原则、共同重用原则、无环依赖原则
共同封闭就是说一个变化若对一个包产生影响,则将对改包的所有类产生影响,对其他的包不造成影响
共同重用就是说如果重用了包里的一个类,那就要重用包里的所有类
UML
1、类图和对象图都有对象,如何区分:一般类图中的对象,类名是大写的,对象图中,在上面一般是类名加冒号加对象名,对象名可能不写,但是冒号一定会有,以次区分
UML四种关系:依赖、关联、泛化和实现
依赖:两个事物间的语义关系
关联:一组对象间连接的结构关系
泛化:一般和特殊关系
实现:类之间的语义关系
2、结构图(静态图):类图,对象图,构件图,部署图
3、行为图(动态图):用例图,顺序图,通信图,状态图
4、关键字:
顺序图----时间
组合结构图:内部关系
通信图:对象之间的关系
设计模式
1、创建型(5),结构型(7),行为型(11)
创建型:工厂,抽象工厂,单例,原型,构建器
结构型:口诀:四桥组装外箱带(每个模式名称的开头)
即:适配器模式,桥接模式,组合模式,装饰者模式,外观模式,享元模式,代理模式
有四个模式是针对类的,口诀:公司模姐:工厂模式,适配器模式,模板方法模式,解释器模式
适配器既可以是类,也可以是对象
工厂方法和抽象工厂区分:描述里有一系列的就是抽象工厂,单指一个是工厂
构建器模式(生成器模式):过程相同,结果(对象)不同,比如厨师炒菜,过程都是,选择菜,炒,但是传入的菜不同,最后出的也不同
桥接模式:其实就是对象引用,比如先写好拍照功能的接口imp,然后手机类里就将imp作为自己的一个属性
装饰者模式:额外添加一些东西
23设计模式关键字及英文
抽象工厂模式:一系列,对象,关键英文:AbstractFactory
构建器模式(生成器):复杂类,复杂对象,表示与构造分离,相同的构建过程,不同的结果;有菱形,是一对多关系,关键英文:builder
工厂方法模式:动态,一个对象,关键英文:ConcreteProduct
原型模式:克隆对象,拷贝,关键英文:clone
单例模式:单实例
适配器模式:转换接口,一种转另一种接口,关键英文:adapter
桥接模式:抽象和实现分开,独立,关键英文:Bridge
组合模式:层级,树形结构,整体-部分,关键英文:Composite,leaf
装饰者模式:添加额外的功能,扩展的功能,灵活,附加职责
外观模式:为一组接口提供一个接口,外界只感知一个,关键英文:Facade
享元模式:共享数据,轻量级
代理模式:提供代理,关键英文:proxy
职责链模式:多个处理对象,连接起来,关键英文:handler
命令模式:将方法封装为对象,参数化,关键英文:command
解释器模式:语言,解释器
迭代器模式:统一的,不暴露对象信息,关键英文:iterator,Aggregate
中介者模式:中介,一系列对象交互,低耦合,关键字:Mediator,Colleague
备忘录模式:保存一个状态,可以恢复到这个状态,关键英文:Memento,Originator
观察者模式:状态发生改变,通知其他对象,数据更新,关键英文:Observer
状态模式:对象内部,状态改变时,行为也改变,状态变成类;和桥接模式一样,也是一个功能类,然后通过作为属性传入主类,关键英文:state
策略模式:算法,封装,独立,多方案切换,关键英文:Strategy
模板方法模式:算法骨架
访问者模式:不改变的前提下,新操作
信息安全
1、对称加密:特点:发送方和接收方的密钥是一样的,不能公开,所以也叫非公开加密
对称加密的强度不高,但是效率高,适合明文很多很大的场景,缺点时密钥分发困难,因为要保证密钥不被其他人获得
常见的对称加密:DES、AES、3DES、RC-5、IDEA
口诀:3S+51,S表示结尾
对称加密分为分组加密和流加密
RC-5是流加密
2、非对称加密:分公钥和私钥,加密时使用对方的公钥加密,然后接收方用自己的私钥解密
非对称加密的强度较高,适合明文不大的场景,常见的非对称加密:RSA、DSA、ECC
口诀:AACC
3、数字认证(数字签名)和信息摘要
数字认证就是用发送者自己额私钥加密,然后接收者用对方的公钥解密,能解开就说明这个消息是对方发的,对方无法抵赖
数字认证可以保证发送者和接收者都是对的人
信息摘要就是一种简化压缩手段,能确保接收者收到的数据是完整的
信息摘要的算法:MD5,SHA,简记:妈的,傻
MD5是压缩成128位,SHA是160位,SHA更安全,简记:傻的程度更重
数字证书(身份认证)
1、发数据的时候会向对方确认对方身份的合理性,这时候就需要从对方下载数字证书,这个证书是CA中心给的,里面有CA签名,使用CA的私钥加密的,获取到对方的证书后,再从CA中心获取公钥,用公钥能解开就是合法的身份,这时候再去传输数据
2、如果A和B分别在C1和C2取得了各自证书,那么要使A和B互信,那么C1和C2两个CA中心就得交换公钥
数字证书使用CA的私钥进行加密,通过数字证书可以获取到用户的公钥
数字签名和数字证书容易混淆:数字证书主要是针对身份,数字签名主要是保证消息来源不可否认
私钥用途:签名+解密
公钥用途:认证+加密
网络安全协议
HTTP和HTTPS区别:HTTP端口用的是80,HTTPS用的是443,HTTPS=HTTP+SSL,HTTPS比HTTPS安全很多
网络攻击
1、分为被动攻击和主动攻击
被动攻击不会立即造成伤害,主动会
被动攻击主要是获取你的消息内容,业务分析等
主动攻击会立马对你造成损失,比如中断,篡改,伪造
2、被动攻击:窃听,业务流分析,非法登录
3、主动攻击:假冒身份,抵赖(认证可防御),旁路控制,重放攻击(时间戳可防御),DOS(拒绝服务),SQL注入
4、病毒和木马
病毒往往都会造成破坏,而木马更偏向于控制你的计算机
计算机病毒的特点:隐蔽性,传染性,潜伏性,触发性和破坏性
5、常见的计算机病毒:
引导型病毒,文件型病毒,宏病毒,网络型病毒,混合型
网络安全控制技术
1、用户识别技术:口令认证,生物技术认证,U盾认证,多因子认证
2、访问控制技术:控制不同用户对信息资源的访问权限
3、访问控制列表ACL:基于访问控制技术,可以和防火墙结合使用
4、漏洞扫描技术:只识别,不修复
5、入侵检测技术:专家系统
IDS:检测到入侵后会报警,但是不会修复
IPS:检测到入侵后会做对应的拦截或修复
6、防火墙包括以下功能:
访问控制功能(ACL)(权限)
内容控制功能
全面的日志功能
集中管理功能
自身的安全和可用性
流量控制
网络地址转换(IP 映射)
VPN
7、防火墙分类
网络级和应用级
网络级:防火墙只涉及到网络层,分为包过滤和状态检测,网络级的防火墙不需要很强的算力,所以不需要主机,只要一个路由器就行了,层次相对较浅,效率高,安全性差
应用级:涉及到应用层,需要较强的算力,需要主机,层次较深,效率低,安全性高
分类:双穴主机,屏蔽主机 ,屏蔽子网
双穴主机是在内外网络之间加了一个主机,然后内外两端都赔了一个网卡
屏蔽主机就是双穴主机再加了一个屏蔽路由,双穴主机处理应用级,屏蔽路由处理网络级
屏蔽子网:在内网里分两块,一块是绝对不能让外网访问,一块是可以被访问,这一块可以被访问的称为DMZ
安全防范体系层次
从下到上:
物理环境安全性,如雷击,线路,机房
操作系统的安全性:访问控制,系统漏洞,病毒
网络的安全性:身份认证,入侵检测,路由系统
应用的安全性:应用软件,电子邮件
管理的安全性
数据的表示
原码:带有符号位的进制表示数,0表示正数,1表示负数
反码:如果原码的符号位是0,则原码和反码一样,如果符号位是1,则除符号位的其他数值全部取反
补码:如果原码是0,也就是正数,那么原码=补码,如果原码是负数,补码=反码+1
+0和-0的反码表示和反码表示都不一样,但是补码是一样的
移码:在补码的基础上,针对符号位取反,不能对小数操作移码,+0和-0的移码是一样的
补码适合做数字的加减法
移码适合表示浮点数阶码
原码和反码范围:-127~127
补码范围:-128~127
因为原码和反码的+0和-0表示是不一样的,但是补码是一样的
总结:正数:原码=反码=补码,移码不能操作小数
操作顺序是原码-》反码》补码》移码,后一项都是在前一项结果的基础上操作
海明码校验:假设原数据信息是16位,则需要插入K位校验码,使得2的k次方-1大于等于16+k
流水线周期是执行时间最长的一段
流水线耗时:一条指令完整执行的时间+(n-1)周期
流水线吞吐率:单位时间内流水线完成的任务数,公式:任务数/流水线所用时间
建立时间:流水线经过一段时间后才能达到最大吞吐率的时间
公式:若m个子过程所用时间一样,均为t,建立时间公式:m
t
流水线加速比:不使用流水线耗时/使用流水线耗时
CPU与外设之间的数据传输方式:直接存储器存取方式(DMA):不需要CPU的任何干涉,完全由硬件DMA完成IO操作
算法的五个特性:确定性(相同的输入只能有相同的输出),有穷性(有限时间内完成),可行性(执行有限次操作),输入(零个或多个输入),输出(一个或多个输出)
图像
亮度,色调,饱和度
数据库系统
三级模式两级映射
模式:内模式(存储文件),概念模式(基本表),外模式(视图)。外模式也叫用户模式或子模式
零级映射:概念模式-内模式映射,外模式-概念模式映射
数据库分析与设计过程
需求分析、概念结构设计、逻辑结构设计、物理设计
需求分析:数据流图,数据字典需求说明书
概念结构设计:ER模式,用户的数据模型
逻辑结构设计:关系模式
需求分析、概念设计、逻辑设计、物理设计
概念设计:ER图,逻辑设计:关系模式和范式,物理设计:数据库
ER模型:
实体,联系和属性
ER模型的每一个实体都可以转换成一个关系模式
如果实体间的关联是多对多,则ER模型中的联系也要转换成一个关系模式,如果是1对多,只要把多的一方的id放到1一方的属性中就可以了
数据库锁:
排他锁(X锁),也叫写锁,如果事务T对数据库加了写锁,那么数据库允许T读和修改,其他的事务不能对数据库加任何锁
共享锁(S锁),也叫读锁,如果事务T对数据库加了读锁,那么T只能对数据库读取,不能修改,那么其他的事务做多只能加读锁,不能加写锁
数据库备份和回复
静态转储,动态转储,静态转储不能对数据库访问,修改,动态可以
判断是否无损分解:
该方法只适合分解成两个子关系场景:
设R={ABC},F={A->B},分解成R1(AB),R2(AC)
先对R1和R2取交集,结果为A,然后分别做差,R1-R2=B,R2-R1=C
如果交集->差只要有一个满足 F里的关系,就是无损的
编译正确的程序一定不会有词法和语法错误

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值