20天的时间准备软件设计师,期间还要完善一些项目,时间比较仓促,特此总结一下软件设计师常用的考点,以便快速掌握。
本片博客对应于哔哩哔哩视频:软件设计师考试教程,可对应视频,参考学习,感谢UP主分享的视频。
看《软件设计师教程》的感悟:
《软件设计师教程》涵盖的知识面太宽泛了,看完了一遍书只能说大致理了以便思路,但是基本上什么也没记住,刷题的时候该不会还是不会。推荐将《软件设计师教程》作为目录/字典一样,刷题遇到不会的知识点,可以对应深入了解。
2020.11.7开始考试,不充分的准备,希望可以一次就过…,后续会更新考试情况和软考总结。
2020下半年的软件设计师的考试成绩,早在2021年1月份的时候已经出来了,一直没来得及更新,这次考试上午场的选择题考了45分,下午场大题考了57分。按照近三年的分数线都是45分来算的话,推测应该刚好压线可以过。
在2月底的时候就已经可以查询证书,经过查询确实证书已经有效了,但是分数线还没有公布…
只准备了20天,算是比较仓促的吧,但还是可以压线过,一方面是运气,另一方面还是努力和技巧的结果吧,希望这篇博客对正在准备软件设计师的你,有所帮助。
正数的原码、反码、补码都相同
反码:原码除了符号位,取反
补码:在反码基础上+1
移码:补码基础上首位取反(一般用来做浮点运算的接码)
n=8
原码、反码:-127~127 补码:-128~127
因为补码正0和负0一样,少占一位;原码和反码不同。
①算术逻辑单元ALU:数据的算术运算和逻辑运算
②累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数据
③数据缓冲寄存器DR:写内存时,暂存指令或数据
④状态条件寄存器PSW:存状态标志与控制标志(争议:也有将其归为控制器的)
①程序计数器PC:存储下一条要执行指令的地址
②指令寄存器IR:存储即将执行的指令
③指令译码器ID:对指令中的操作码字段进行分析解释
④时序部件:提供时序控制信号
指令对应控制部分,数据对应处理器,主存模块只有单指令单数据的时候是一个。
(1)流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。
(2)流水线建立时间:1条指令执行时间。
(3)流水线周期:执行时间最长的一段。
Cache的相关概念:理论依据(局部性原理),大小、速度、成本等对比。
Cache映射方式:全相联、组相联、直接相联映像的对比(冲突率依次增高,电路复杂度依次降低)。
1、内存单元数计算:最大地址+1-最小地址
2、内存总容量:按字节编址,内存单元数 * 8bit;按字编址,内存单元数 * 机器字长。
3、已知芯片单位容量,求所用芯片的片数,总容量/单位容量;
4、已知所用芯片的片数,求取芯片单位容量,总容量/芯片片数。
磁盘调度管理中,先进行移臂调度寻找磁道,再进行旋转调度寻找扇区。
最短移臂调度算法,即优先响应距离较近磁道的申请。
例:
读取一个记录3ms,处理一个记录3ms。读取完R0之后不能直接处理R1,因为需要处理R0,磁盘会继续转动。处理完R0后,磁头在R2不能直接处理R1,需要等到磁头再次转到R1时进行处理。
除了最后一个记录,其余处理为:(33+3)x10
最后一个记录:3+3(读取时间+处理时间)
最长时间:(33+3)x10+(3+3)
最短时间:进行信息优化,R0处理完,磁头指向R1(空间处理),依次读取,每有时间浪费。即(3+3)x11
1、数据总线(Data Bus):在CPU与RAM之间来回传送需要处理或是需要储存的数据。
2、地址总线(Address Bus):用来指定在RAM(Random Access Memory)之中储存的数据的地址。
3、控制总线(Control Bus):将微处理器控制单元(Control Unit)的信号,传送到周边设备,一般常见的为 USB Bus和1394 Bus。
1、串联系统计算:R总=R1 * R2;
2、并联系统计算:R总=1-(1-R)^ n;
3、N模混联系统:先将整个系统划分为多个部分串联R1、R2…等,再计算R1、R2内部的并联可靠性,带入原公式。
1、奇偶校验:掌握校验原则等相关概念,只检奇数位错,不能纠错。
2、循环校验码CRC:可查错,不可纠错,运用模二除法计算校验码。
3、海明校验:要求掌握相关概念,可查错,可纠错;要求掌握海明校验码校验位计算:2 ^ r>=r+m-1。
校验位放在2 ^ r,信息位放在其余位置上。
校验位计算方法:二进制计算位号,位号有的数字进行异或操作。
取反纠错
互斥的反义词为共享,同步的反义词为异步。
P:申请一个资源
V:释放一个资源
1、了解死锁的条件和预防概念;
2、根据题干给出的进程和资源分配,判断形成死锁的最小资源数或其他参数:对于这种情况,分配资源时每个进程得到可以完成进程的资源数减一,此时是形成死锁的最差情况,在此情况下多1个资源即可解决死锁问题,即不可能形成死锁。
3、银行家算法:当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程。
进程可以分期请求资源,但请求的总数不能超过最大需求量。
当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源。
根据银行家算法判断相关进程序列是否会形成死锁,是则为不安全序列。
1、页面淘汰时,主要依据原则:先淘汰最近未被访问的(访问位为0),其次淘汰但未被修改的(即修改位为0,因为修改后的页面)。
2、页面淘汰算法有多种,常用的是LRU即最近最少使用原则,依据的是局部性原理。
3、对于多种淘汰算法:最优算法OPT(理想型),随机算法RAND(随机性),先进先出FIFO(可能产生“抖动”),最近最少使用LRU(依据局部性原理)。
1、索引结点对应的索引方式一般题干会给出,没有给出的默认按照如图所示方式理解,下面的文件大小依图给出计算过程。
2、根据物理块大小(假设1KB)和地址项长度(假设4B),可以计算存放间接索引的物理块可以存放的地址项个数:物理块大小/地址项长度,向下取整(1KB/3B=256,注意单位和进制转换)。
3、直接索引(即索引结点直接指向实际存储文件的物理块),能够表示的逻辑页号范围是0~9,能够表示的文件大小时10*1KB。
4、一级间接索引(即索引结点指向的物理块存放的是地址项,对应地址项个数256个,可以指向256个实际存储文件的物理块),能够表示的逻辑页号范围是10~265,能够表示的文件大小是256*1KB。
5、二级间接索引(即索引结点指向的物理块存放的是间接索引的地址项,共256个,可以指向256个存放地址项的物理块,每个物理块指向实际存储文件的地址项有256个,最终指向的物理块共有256*256个),能够表示的逻辑页号范围是266~65801,能够表示的文件大小是65536KB。
1、对于位示图,每一个bit位可以表示一个磁盘的占用情况,“0”表示空闲,“1”表示占用。
2、对于字的长度与具体机器字长有关,有题目指定,假设机器字长16位,则每个字可以表示16个磁盘块的占用情况;
3、指定序号为n或第n+1个磁盘,占用情况需要用m=(n+1)/16(向上取整)个字表示,字的序号为m-1。注意其中磁盘序号、字的序号、对应位号都是从0开始,计算过程中会有加1或减1处理。
本知识点的考查形式有:计算磁盘数据的读取时间;优化存储后的数据读取时间;磁盘调度算法的相关概念判断正误
1、存取时间=寻道时间+等待时间,寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。有时还需要加上数据的传输时间。
2、在处理过程中,如果有关于缓冲区的使用,需要了解对于单缓冲区每次只能被一个进程使用,即向缓冲区传输数据的时候不能从缓冲区读取数据,反之亦然。
3、对于磁盘存储的优化,是因为磁头保持转动的状态,当读取数据传输或处理时,磁头会移动到超前的位置,需要继续旋转才能回到逻辑下一磁盘块,优化存储就是调整磁盘块的位置,让逻辑下一磁盘块放到磁头将要开始读取该逻辑块的位置。
4、磁盘调度算法:先来先服务FCFS(谁先申请先服务谁);最短寻道时间优先SSTF(申请时判断与磁头当前位置的距离,谁短先服务谁);扫描算法SCAN(电梯算法,双向扫描);循环扫描CSCAN(单向扫描)。
1、对于I/O传输控制方式:
程序查询方式(CPU一直处于询问、等待的过程,占用CPU时间最长,CPU利用率最低);
中断方式(I/O完成后向CPU发送中断请求信号,CPU和I/O可以并行);
DMA(CPU只做初始化,不参与具体数据传输过程);通道方式、I/O处理机,专用硬件方式。
2、对于I/O软件:
1、SPOOLING技术的应用场景和相应概念:SPOOLing是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。 SPOOLing技术通过磁盘实现。
2、对于SPOOLING技术的过程:
本知识点的主要考查方式是判断模式(外模式、模式、内模式)与产物(视图、库表、文件)的对应关系,或给定一些概念描述判断正误。
1、三级模式:外模式对应视图,模式(也称为概念模式)对应数据库表,内模式对应物理文件。
2、两层映像:外模式-模式映像,模式-内模式映像;两层映像可以保证数据库中的数据具有较高的逻辑独立性和物理独立性。
3、逻辑独立性:即逻辑结构发生改变时,用户程序对外模式的调用可以不做修改;物理独立性:即数据库的内模式发生改变时,数据的逻辑结构不变。
参考:https://www.cnblogs.com/buxingzhelyd/p/7842907.html
无损分解:
选择题,可直接使用特殊值代入法。
表尾是除了表头的所有元素。
先序遍历:根节点、左子树、右子树
中序遍历:左子树、根节点、右子树
后序遍历:左子树、右子树、根节点
有前序、中序或者有中序后序,可以反向构造;但是只有前序、后序则不能构造。
主要用于哈夫曼编码,即带权路径长度最短。
最后计算所有叶子结点(圆)的权值和,不计算矩形(设想的)。
为什么?空闲大量的节点。
利用没有左/右孩子节点的节点,指向特定节点。
图的节点为n,边最少为n-1。
邻接矩阵大小取决于节点数量。
不能形成环(树与图的最大区别)
代入法求解。
先构造二叉树,然后进行相应的遍历。
小写k1000,大写K1024,单位换算。