中级软件设计师-易错易混淆知识及复习建议(计算机技术与软件专业技术资格(水平)考试)

本文涵盖了计算机科学和技术领域的多个基础概念,包括位示图的计算、存储区域的容量估算、PV操作在同步中的应用、索引文件的最大长度、物理内存页地址的计算、进程资源图的分析、高速缓存命中率的计算、数据库的三大范式、面向对象设计模式的分类、原码、反码和补码的转换规则、算法的时间和空间复杂度、树的遍历顺序以及UML中的各种图表及其用途。

1、计算位示图大小

问题: 某文件系统采用位示图(bitmap)记录磁盘的使用情况。若计算机系统的字长为64位,磁盘的容量为1024GB,物理块的大小为4MB,那么位示图的大小需要( )个字。
解析: 计算机字长为64位,那么利用位示图表示时每个字能够表示64个物理块的存储情况:
磁盘的容量为1024GB,物理块的大小为4MB,则共有1024GB/4MB=(256x1024)个物理块。(注意单位转换)
256x1024个物理块,每64个物理块占用一个字,所以需要256x1024/64=4096个字。

2、计算区域存储容量

问题: 内存按字节编址从B3000H到DABFFH的区域其存储容量为( )。
解析: 本题考查计算机组成基础知识,本题是按字节编址,因此一个存储单元容量为1B,直接计算16进制地址包含的存储单元个数即可。
DABFFH-B3000H+1=27C00H=12x162+ 7x163+2x164=159K,按字节编址,故此区域的存储容量为159KB。

3、PV操作

前趋图中,进程存在明确的前趋和后继关系。前趋进程完成后以V()操作通知后继进程。后继进程开始前需要以P()操作检查前趋进程是否已完成。也可以直接在图示中进行标注,结点间的一>表示二者关系,箭头流出的结点是前趋进程,结束后也就是箭头流出位置,标注为V()操作以通知后继进程;箭头流入的结点是后继进程,开始前也就是箭头流入的位置,标注为P()操作以检查前趋进程。
题目: 完善下图①~⑥处的内容:
前趋图
题目
解析: P1没有前趋,有1个后继,P1执行后需要1个V()操作通知后继进程,即①填写V()操作;
P2有1个前趋,有2个后继,P2执行前需要有1个P0操作检查前趋,P2执行后需要2个V0操作通知后继进程,即②填写2个V()操作。
P3有1个前趋,有2个后继,P3执行前需要有1个P0操作检查前趋,P3执行后需要2个V0操作通知后继进程,即③填写2个V()操作。
P4有2个前趋,有1个后继,P4执行前需要有2个P()操作检查前趋,④缺少1个P()操作,P4执行后需要1个V()操作通知后继进程,即⑤填写1个V()操作。
P5有2个前趋,没有后继,P5执行前需要有2个P()操作检查前趋
即⑥填写2个P()操作。

4、索引文件单文件最大长度计算

题目: 某文件系统采用索引节点管理,其磁盘索引块和磁盘数据块大小均为1KB字节且每个文件索引节点有8个地址项iaddr[0] ~ iaddr[7],每个地址项大小为4字节,其中iaddr[0] ~ iaddr[4]采用直接地址索引,iaddr[5]和iaddr[6]采用一级间接地址索引,iaddr[7]采用二级间接地址索引。若用户要访问文件userA中逻辑块号为4和5的信息,则系统应分别采用( ),该文件系统可表示的单个文件最大长度是( )KB。
解析:
根据题干可得:其中0 ~ 4 号节点为直接索引,对应逻辑块号为0 ~ 4。其中5 ~ 6号节点为一级间接索引方式,对应逻辑块号从5开始。
每个索引盘大小为1KB,地址项大小为4B,故每个索引盘有(1KB/4B)=256个索引。
一级间接索引有2个盘块,共有512个索引,对应512个逻辑盘块。
其中7号节点为二级间接索引,共有256*256=65536个索引,对应65536个逻辑盘块。
单个文件最大为:(5+512+65536)*1KB=66053KB

5、计算物理内存页地址

问题: 某操作系统采用分页存储管理方式,下图给出了进程A和进程B的页表结构。如果物理页的大小为1K字节,那么进程A中逻辑地址为1024(十进制)的变量存放在( )号物理内存页中。假设进程A的逻辑页4与进程B的逻辑页5要共享物理页4,那么应该在进程A页表的逻辑页4和进程B页表的逻辑页5对应的物理页处分别填( )。
在这里插入图片描述
解析:
问题1: 逻辑地址是逻辑页号+页内地址(都是用二进制来表示的),页内地址是题目所给出的1K,为210,说明页内地址占用10位。物理地址是物理页号+页内地址(都是用二进制来表示的),页内地址和逻辑地址的大小相同。
在这里,逻辑地址是1024,即210,转换为2进制为:10000000000。那么,根据页内地址占10位,剩余的1即是它的逻辑页号。查找页表,1对应的物理页号是3。

问题2: 共享页4,在进程A页表的逻辑页4和进程B页表的逻辑页5对应的物理页都是4。

6、进程资源图的堵塞点、是否可化简

问题: 在如下所示的进程资源图中,P1、P2、P3哪个属于堵塞结点、哪个属于非堵塞结点?该进程资源图是否可化简?
在这里插入图片描述

解析:
矩形框表示资源,里面的小圆圈数即为初始资源数。图示有3类资源R1、R2、R3,资源数分别为2、3、2。

大圆圈表示进程结点。图示有3个进程结点P1、P2、P3。

资源框指向进程表示已分配资源,箭头个数即为已分配资源数。R1已分配2个出去,剩余0;R2已分配3个出去,剩余0;R3已分配1个出去,剩余1。

剩下的就是当前可用资源数。R1、R2、R3分别剩余0、0、1。

进程指向资源框的箭头表示当前仍需申请的资源数,P1仍需1个,R2,P2仍需1个R1,P3仍需1个R3。根据仍需资源判断,P1、P2无法满足要求,因此是阻塞结点,P3可以申请到足够的资源,因此是非阻塞的结点。

接下来从非阻塞结点尝试化简,也就是将资源分配给进程结点,让进程完成后下一步释放自己的所有资源以支持其他进程的执行,最终按照某个序列可以让所有进程都执行完成,就是可化简、非死锁的。

此时P3先执行,接下来P3–>P1–>P2的顺序可以执行完成,即为化简顺序。

7、计算高速缓存命中率

平均存取时间=命中率*Cache存取时间+(1-命中率)*主存存取时间
高速缓存Cache与主存间采用全相联地址映像方式,高速缓存的容量为4MB,分为4块,每块1MB,主存容量为256MB。若主存读写时间为30ns,高速缓存的读写时间为3ns,平均读写时间为3.27ns,则该高速缓存的命中率为()。
高速缓存Cache的存储系统的平均存取时间为TA=HTA1+(1-H)TA2。其中cache的存取时间TA1、主存的存取时间TA2及平均存取时间为TA己知后,利用以上公式可以求出cache的命中率为99%。

8、数据库三大范式

第一范式:数据表中的每个字段的值是不可再拆分的最小数据单元。
第二范式:满足第一范式,所有非主键完全依赖主键,不能只依赖主键的一部分。
第三范式:满足第二范式,且所有非主属性之间不能有依赖关系,它们是互相独立的。
BCNF范式:满足第三范式,且只有一个候选键,或者它的每个候选键都是单属性。

9、面向对象常见设计模式

创建型模式:原型、单例、简单工厂、生成器、建造者、工厂方法、抽象工厂
结构型模式:适配器、外观、装饰、桥接、组合、享元、代理
行为型模式:观察者、策略、状态、迭代器、责任链、访问者、命令、备忘录、解释器、模版方法

10、原码、反码、补码

1. 原码转反码:正数时,反码等于原码。负数时,反码等于原码取反(符号位不变)。 例如:
x=+0.1101,则[x]反=0.1101;x=+1101,则[x]反=01101
x= -0.1111,则[x]反=1.0000;x= -1111,则[x]反=10000

2. 原码转补码 :正数时,补码等于原码。负数时,补码等于原码取反再加1(符号位不变) 。 例如:
x=+0.0101,则[x]补=0.0101;
x= -0.0101,则[x]补=1.1011;
x= -0.0000,则[x]补=0.0000;
x= -1.0000,则[x]补=1.0000;

3. 原码转移码:正数时,移码等于原码,符号位要取反。负数时,移码等于原码取反加1,符号位要取反。 例如:
x=+1010110,则[x]移=11010110;
x= -1010110,则[x]移=00101010;

注意:
①0在补码中的表示只有一种
[+0]补码 = 0000 0000
[-0]补码=0000 0000

②0在原码和反码中的表示有两种,零有正负之分
[+0]原码 = 0000 0000、[-0]原码 = 1000 0000
[+0]反码 = 0000 0000、[-0]反码 = 1111 1111

11、McCabe复杂度计算

流图G的环形复杂度有两种计算方式:
V(G)=E-N+2 ,其中,E是流图中边的条数,N是结点数。
V(G)=P+1 ,其中, P是闭环数。

12、常见算法的时间复杂度和空间复杂度

在这里插入图片描述

13、前中后层序遍历遍历顺序

前序遍历:根节点 -> 左子树 -> 右子树
中序遍历:左子树 -> 根节点 -> 右子树
后序遍历:左子树 -> 右子树 -> 根节点
层序遍历:第一层,第二层,…

14、UML中的图及其表示(记不同UML图特有的特殊形状)

①UML活动图:是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动,用来描述一组顺序或者并发的活动。
UML活动图

②UML状态图:用于描述对象具有的各种状态、状态之间的转换过程以及触发状态转换的各种事件和条件。
UML状态图

③UML类图:展现了一组对象、按口、协作和它们之间的关系。给出系统的静态设计视图。
UML类图

④UML通信图:是强调接收和发送消息的对象的结构组织的交互图。
UML通信图

⑤UML组件(构建)图:展现了一组组件之间的组织和依赖。
UML组件(构建)图
⑥UML序列图:序列图是强调消息时间顺序的交互图。
UML序列图

⑦UML用例图:展现了一组用例、参与者(Actor) 以及它们之间的关系。用例图用于对一个系统的需求进行建模
UML用例图

⑧UML部署图:是用来对面向对象系统的物理方面建模的方法,展现了运行时处理结点以及其中构件(制品)的配置。
UML部署图

复习及备考建议:中级软件设计师

计算机技术与软件专业技术资格(水平)考试中的中级《软件设计师》,分为基础知识题和应用技术题:

基础知识题复习方法:

  • 软件设计师考试涉及到的知识面广(涉及计算机组成原理、软件工程、计算机网络、数据库原理、C/Java语言程序设计、数据结构、操作系统等学科)。计算机专业学生且有上述课程的学习经历并基本掌握所学知识的,可以直接用刷题软件开展题海战术(如“软考通”APP,目前该APP免费,若开始收费可换其它APP)。

  • 考前3-6个月,开始在刷题软件去练习题目。每天从零碎时间至少抽出1个小时去练习。练习时,遇到经常答错的题目,先收藏题目(方便后面重复去练习),再总结解题思路(可以上网搜索该类型的题目的答题技巧)。考前把题库的“知识点练习”题目至少刷1遍(有时间的,建议二刷),同时考前2周要重复去刷错题集以及自己收藏的易错难题。

  • 没有计算机相关基础知识的同学,建议先去“哔哩哔哩”观看博主“zst_2001”发布的上午题试题真题解析,所有上午真题都看一遍,再去刷题。

应用技术题复习方法:

  • 考前3-6个月,去“哔哩哔哩”观看博主“zst_2001”发布的软件设计师下午题真题解析,同时提前购买好纸质版软件设计师真题卷,看完一道大题的视频,就马上去练习真题(为了方便后期反复去练习,可在空白的纸张上书写)。
  • 考前1周,需要再看一遍下午题的视频(时间不够的话,只看解题思路的视频,少看或不看真题解析)。
  • 考前2周周提前熟悉机考的流程及机考软件的操作(包括在系统上答题、画图、交卷等操作)。

在这里插入图片描述

值得注意的是:自2023年下半年起,软考改为机考,所以大家考前需要提前了解考试的流程及考试系统的使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

达文汐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值