软件设计师考试重点难点概要Word格式.docx
- 文档编号:21948743
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:25
- 大小:496.71KB
软件设计师考试重点难点概要Word格式.docx
《软件设计师考试重点难点概要Word格式.docx》由会员分享,可在线阅读,更多相关《软件设计师考试重点难点概要Word格式.docx(25页珍藏版)》请在冰豆网上搜索。
而同时一个系统是否有可进入死锁状态受系统资源数量,需要使用该资源的进程数量等因素影响。
若系统本不可能引起死锁,而我们采用了死锁解决方案,是很不合理的。
所以,考试中常考到这样的题型:
给出系统的资源数,以及需要使用该资源的进程数量等参数,让考生判断系统有无可能产生死锁。
下面我们以例题的方式来说明如何解决这类问题。
例题1:
系统有3个进程:
A、B、C。
这3个进程都需要5个系统资源。
如果系统有多少个资源,则不可能发生死锁。
解答:
在分析这个问题时,我们可以取一些简单的数据代入试题进行验证、分析,以得到相应的规律。
如:
(1)当系统资源数量为9时,若给A与B分别分配了4个资源,C分配了1个资源,则系统中的每个进程都存在资源不足的情况,而都不放手自己拥有的资源。
不能正常运行完毕,发生死锁。
(2)当系统资源数量为12时,若给A、B、C各分配4个资源,则死锁。
(3)当系统资源数量为13时,无论如何分配,总有至少1个进程能得到5个资源,得到5个资源的进程可以正常运行完毕,而后将自己占用的资源分配给其它进程,所以这样能使所有进程运行完毕。
从上面的尝试,我们可以总结出一个规律:
先给所有进程分配他们所需要的资源数减1个资源,然后系统如果能再剩余1个资源,则系统不会发生死锁。
这样解答本题变得非常容易。
(5-1)*3+1=13。
例题2:
系统没有死锁的危险。
A.3B.4C.5D.6
解答
首先从m=6开始考察,首先每个进程分配1台,剩下的4台只能分配给4个进程,还有2个进程没有分配,如果已经分配了2台的4个进程需要3台的话,则系统就会死锁。
同样,如果m=5,也会发生这种情况。
当m=4时,每个进程可以分得2台,还有2个进程可分得3台,则可正常运行,运行完毕后可释放资源,从而不会死锁。
在解这道题时有些学员提出“如果按照答案m=4,则这4个进程都是需要3台磁带机的话,共需要12台磁带机,这样还不会死锁?
”。
这种想法是错误的,因为并不是同时把所有进程都分配给足够的资源才能完成这些进程,可以是一个进程先执行完,释放完资源再执行另一个进程。
例如:
4个进程中,每个进程分配2台磁带机,用去了8台。
剩下2台,仍然可以满足两个进程,直到他们完成,释放他们暂用的磁带机。
软件设计师重点难点——流水线
流水线这个知识点在软件设计师考试中是个重点也是个难点,考查的频率比较高。
之所以说流水线是个难点,有两方面的原因:
一方面是需要理解流水线的理论,了解其工作原理,计算方式;
另一方面是在软考当中,对于流水线的相关计算,标准并不是完全统一的,这一点在后面我们将详细介绍。
流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。
各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。
指令流水线是将指令执行分成几个子过程,每一个子过程对应一个工位,我们称为流水级或流水节拍,这个工位在计算机里就是可以重叠工作的功能部件,称为流水部件。
如图1所示,IF,ID,EX,WD分别是流水线的流水部件。
流水线要求所有的流水级部件必须在相同的时间内完成各自的子过程。
在流水线中,指令流动一步便是一个机器周期,机器周期的长度必须由最慢的流水级部件处理子过程所需的时间来决定。
那么我们为什么要提出流水线这个概念,以及流水线是如何提高系统吞吐量的呢?
下面我们来看几个图,概念自然就清楚了。
图2是一个非流水线结构系统执行指令时空图。
我们从图2中可以看到,任意一个系统时间都有大量的设备处于空闲状态,如第一个时间段有ID,EX,WB空闲,则第二个时间段有IF,EX,WB空闲。
我们再来看采用了流水线结构的时空图3。
显然,采用流水线可以大大提升系统资源的利用率,以及整个系统的吞吐量。
流水线的操作周期取决于基本操作中最慢的那个。
一个3段流水线,各段的执行时间分别为t,2t,t。
则最慢的一段为2t,所以流水线操作周期为2t。
流水线的执行时间公式为:
第1条指令的执行时间+(指令条数-1)*流水线操作周期
例题1
若每一条指令都可以分解为取指、分析和执行三步。
己知取指时间t取指=4△t,分析时间t分
方式执行,执行完100条指令需要
(2)△t。
供选择的答案
(1)A.1190B.1195C.1200D.1205
(2)A.504B.507C.508D.510
试题分析
本题考查的是计算机系统指令流水线方面的基础知识。
根据题意可以看到,在此流水线中按串行方式执行完100条指令要用1200△t。
采用流水方式执行,执行的总时间的关键取决于最长的执行时间,所以执行完100条的时间为:
4Δt+3Δt+5Δt+(100-1)*5Δt=507Δt。
试题答案
CB
例题2
现采用4级流水线结构分别完成一条指令的取指、指令译码和取数、运算,以及送回运算结果4
若有一小段程序需要用20条基本指令完成(这些指令完全适合于流水线上执行)
,则得到第一条指令
A:
①50②70③100④280
B:
①100②200③280④400
C:
①1400②2000③2300④2600
D:
①条件转移②无条件转移③算术运算④访问存储器
E:
①仅影响中断反应时间,不影响程序的正确执行
②不仅影响中断反应时间,还影响程序的正确执行
③不影响中断反应时间,但影响程序的正确执行
④不影响中断反应时间,也不影响程序的正确执行试题分析本题主要考查对流水线技术的掌握。
对于CPU来说,流水线技术实际上是一种以增加硬件换取性能的方式:
把一条指令分解成多条更小的指令,由不同的处理单元来处理,在理想的满负荷运行状态下,执行一条指令的时间虽然没有减少,但是由于多个处理单元同时工作,在同一时间上可以执行不同指令的不同部分,从而使得总体的执行时间大大减少。
这里最慢的是100ns,所以操作周期是100ns。
在流水线中,其实每一条指令的执行时间并没有减少,而第一条指令的执行并没有体现流水线的优势,它在4个操作周期后才能执行完成,这以后每个操作周期都能完成一条指令的执行。
影响流水线效率的重要因素有条件转移指令和中断,因为它们打断了流水线,使得流水线不得不重新装载。
不精确断点法实现简单,但是要等到流水线内的指令完成之后再响应中断。
试题答案
A.③B.④C.③D.①E.②
希赛IT教育专家提示:
上面的两个例题,都是软考当中出现过的真题。
我们可以看出,两个题在计算流水线时间方面,标准并不是统一的。
在例题1中:
而在例题2中:
100ns+100ns+100ns+100ns+(20-1)*100ns=2300ns
这两种计算方法,都是在套用公式:
“第1条指令的执行时间+(指令条数-1)*流水线操作周期”,而对于“第1条指令的执行时间”的理解并不相同。
在例题1中,第1条指令的执行时间是将指令执行时的几个阶段所需时间相加得到,而在例题2中,认为每一个阶段所需时间都是流水线的周期时间。
其中前者是流水线的理论计算方法,而后者是我们在设计硬件流水线时,常用的方式。
两种计算方法,从理论上来讲,都是正确的,但考试时,只有一个是正确答案。
那么我们应该怎么做呢?
由于每次考试中,无论认可的是哪种计算方式,都只会把这种计算方式的正确答案放入选项中,而不会将两个正确答案都放入,所以我们在用一种方式不能得到正确选项时,应采用另一种方式进行计算,来得到正确答案。
软件设计师重点难点——关键路径
关键路径这个知识点在软件设计师考试中,是一个难点。
说到关键路径这个概念,大家应该多少有些印象,可能都知道它是“最长路径”而不是“最短路径”,但说到它为什么是最长路径,提出这个概念的用意何在,它有什么应用,在计算机中关键路径是如何求的等问题却没有几个人能真正搞清楚,甚至书上给出了完整的例子,都有很多人看不懂。
下面我先会简单的说明基本概念,然后以一个例子,结合平时希赛教育学员的疑问,对这个知识点进行
详细的分析。
在AOV网络中,如果边上的权表示完成该活动所需的时间,则称这样的AOV为AOE网络。
例如,图1表示一个具有10个活动的某个工程的AOE网络。
图中有7个顶点,分别表示事件1~7,其中1表示工程开始状态,7表示工程结束状态,边上的权表示完成该活动所需的时间。
下面我们来理解一下关键路径的思想,图1虽节点不多,但是为了让问题变得更为简单、直观,我们画另一个AOE网络,如图2所示。
从图2中我们可以看出,关键路路径实际上是从源点到目的地的最长路径。
为什么是最长路径呢?
因为图中的某些事件是可以并发执行的。
如图2所示,当到达V1后,可以同时往V2,V3,V4三个方向走,而V2,V3,V4都有到Vk的路径,且长度都为1,并且Vk是终点,则关键路径是V1->
V2->
Vk。
因为这条路径最长,只要这条路径到目的地Vk时其他的都已经到达Vk。
而在这条关键路径上的活动a2,a5称为关键活动。
为了找出给定的AOE网络的关键活动,从而找出关键路径,先定义几个重要的量:
Ve(j)、Vl(j):
顶点j事件最早、最迟发生时间。
e(i)、l(i):
活动i最早、最迟开始时间。
从源点V1到某顶点Vj的最长路径长度称为事件Vj的最早发生时间,记为Ve(j)。
Ve(j)也是以Vj为起点的出边<
Vj,Vk>
所表示的活动ai的最早开始时间e(i)。
在不推迟整个工程完成的前提下,一个事件Vj允许的最迟发生时间记为Vl(j)。
显然,l(i)=Vl(j)-(ai所需时间),其中j为ai活动的终点。
满足条件l(i)=e(i)的活动为关键活动。
求顶点Vj的Ve(j)和Vl(j)可按以下两步来做。
(1)由源点开始向汇点递推。
其中,E1是网络中以Vj为终点的入边集合。
(2)由汇点开始向源点递推。
其中,E2是网络中以Vj为起点的出边集合。
对于前面的两个概念很多人不能理解:
从源点开始到汇点递推以后,我们已经得到了关键路径的长度,按理把这些点记录下来,就得到了关键路径,为什么在此时,还要从汇点到源点进行递推,来求关键路径,这样岂不多此一举?
其实不是这样的,一个AOE网络中可能有多条关键路径,若我们只正推过去,只能求得一条关键路径,而不能找出所有的关键路径。
要求一个AOE的关键路径,一般需要根据以上变量列出一张表格,逐个检查。
例如,求图1所示的求AOE关键路径的过程如表1所示。
因此,图1的关键活动为a1,a2,a4,a8和a9,其对应的关键路径有两条,分别为(V1,V2,V5,V7)和(V1,V4,V5,V7),长度都是10。
其实从学员的疑问可以看出,最关键的问题就在于此表如何填写。
首先值得我们注意的一点是,对于顶点的V1,V2等事件,有最早,最迟发生时间;
对于边a1,a2,a3,等活动,有最早,最迟开始时间。
Ve(j)表示的是顶点j的最早发生时间,Vl(j)表示的是顶点j的最迟发生时间,e(i)表示的是活动i的最早开始时间,l(i)表示的是活动i的最迟开始时间。
总的来说填这个表有以下四个步骤。
由源点开始递推计算出表1-1中的Ve(j)列;
由Ve(7)=10,回算Vl(j)列;
Vl(j)列算出后用公式l(i)=Vl(j)-(ai所需要的时间);
由l(i)=e(i)找出关键活动,求出关键路径。
下面来填写表格,首先我们来填最早发生时间和最早开始时间。
因为由源点V1到顶点V2的最长路径长度是3(到V2只有一条路径,长度为3,这个很好判断),所以V2的最早发生时间是3,从V2出发的活动有a4,a5,所以a4,a5的最早开始时间也是3。
又比如,到顶点V4的最长路径长度是6,所以V4的最早发生时间是6,从V4出发的活动有a8,a8的最早开始时间也是6,其余的依次类推。
最迟发生时间和最迟开始时间要先求出关键路径的长度后,再进行逆推。
通过上面求最早发生时间,我们可以求得关键路径长度为10。
现在可以开始逆推了。
首先由于关键路径长度为10,所以V7的最迟发生时间是10,再看V6,V6到V7有a10,长度为4,所以V6的最迟发生时间是10-4=6,同样V5到V7有a9,长度为3,所以V5的最迟发生时间是10-3=7,依次类推,此项值对应表1中的Vl(j)。
接下来求最迟开始时间。
V7的最迟开始时间为10,a9,a10都指向V7,a9=3,a10=4,所以a9的最迟开始时间为10-3=7,a10的最迟开始时间为10-4=6。
V6的最迟开始时间为6,a7指向V6,a7=3,所以a7的最迟开始时间为6-3=3。
此项值对应表1中的l(i)。
上面的这个实例是一个难度较高的例子,在我们的实际考试中,难度并没有这么高。
下面看一个考试真题。
例题:
某工程计划如下图所示,各个作业所需的天数如下表所示,设该工程从第0天开工,则该工程
供选择的答案:
(1)A.17B.18C.19D.20
(2)A.11B.13C.14D.16
这是一个带权的AOE网。
与AOV网不同之处在于,AOE网所关心完成该工程至少需要多少时间,哪些活动是影响整个工程进度的关键。
由于AOE网中的某些活动能够并行地进行,所以完成整个工程所需要的时间是从开始顶点到结束顶点的最长路径的长度,称为关键路径。
本题的关键路径有两条:
(1)S→2→5→4→D;
(2)S→2→5→D,路径的长度均为20。
作业J最迟要在什么时候开工?
由于完成作业J后就到了汇点D了,所以要看关键路径多长,J的需要天数是多少。
J的最迟开工=20-7=13。
DB
软件设计师重点难点——系统可靠性计算
系统可靠性计算是软件设计师考试的一个重点,近些年几乎每次考试都会考到,但这个知识点的难度不高,了解基本的运算公式,即可轻松应对。
可靠性计算主要涉及三种系统,即串联系统、并联系统和冗余系统,其中串联系统和并联系统的可靠性计算都非常简单,只要了解其概念,公式很容易记住。
冗余系统要复杂一些。
在实际的考试当中,考得最多的就是串并混合系统的可靠性计算。
所以要求我们对串联系统与并联系统的特点有基本的了解,对其计算公式能理解、运用。
下面将对这些计算的原理及公式进行详细的说明。
1.串联系统假设一个系统由n个子系统组成,当且仅当所有的子系统都能正常工作时,系统才能正常工作,这种系统称为串联系统,如图1所示。
设系统各个子系统的可靠性分别用。
如果系统的各个子系统的失效率分别用
。
2.并联系统
假如一个系统由n个子系统组成,只要有一个子系统能够正常工作,系统就能正常工作,如图2所示。
来表示,则系统的失效率表示,则系统的可靠性
设系统各个子系统的可靠性分别用
假如所有子系统的失效率均为λ,则系统的失效率为μ:
表示,则系统的可靠性
在并联系统中只有一个子系统是真正需要的,其余n-1个子系统都被称为冗余子系统。
该系统随着冗余子系统数量的增加,其平均无故障时间也会增加。
3.串并混合系统
串并混合系统实际上就是对串联系统与并联系统的综合应用。
我们在此以实例说明串并混合系统的可靠性如何计算。
例1:
给出的软件冗余容错结构,其中P1和P2均有一个与其完全相同的冗余备份。
若
P1的可靠度为0.9,
A.0.6561B.0.81C.0.9801D.0.9
当系统采用串联方式时,其可靠度R可由公式R=R1R2„Rn求得。
当系统采用并联方式时,其可靠度R可由公式R=1-(1-R1)*(1-R2)„(1-Rn)求得。
这个系统总的来说是串联,但分成两个并联部分。
第一部分的可靠度为:
R1=1-(1-0.9)*(1-0.9)=0.99;
第二部分的可靠度也为:
R2=0.99;
所以整个系统的可靠度为:
R=R1*R2=0.9801,C答案。
C
上面的例题是属于常规形式的可靠性计算题,如果把这种试题再拨高一个层次,可以。
例2:
1台服务器、3台客户机和2台打印机构成了一个局域网(如图4所示)。
在该系统中,服务器根据某台客户机的请求,数据在一台打印机上输出。
设服务器、各客户机及各打印机的可靠度分别为
A.abcB.a(1-b)(1-c)
C.a(1-b)(l-c)D.a(1-(1-b))(1-(l-c))
例题分析在试题给出的系统中,客户机之间是并联的(任何一台客户机出现故障,对其他客户机没有影响),
同理,打印机之间是也并联关系。
然后,客户机、服务器、打印机之间再组成一个串联关系。
因此,我们可以把该系统简化为:
32323332
已知服务器、各客户机及各打印机的可用性分别为a、b
、c,因此整个系统的可用性为:
例题答案
D
4.模冗余系统
m模冗余系统由m个(m=2n+1为奇数)相同的子系统和一个表决器组成,经过表决器表决后,m个子系统中占多数相同结果的输出可作为系统的输出,如图5所示。
在m个子系统中,只有n+1个或n+1个以上的子系统能正常工作,系统就能正常工作并输出正确结果。
假设表决器是完全可靠的,每个子系统的可靠性为R0,则m模冗余系统的可靠性为:
软件设计师重点难点——多媒体
多媒体重点和难点
1.图形和图象的各种格式、几个主要的概念:
2.音频采集计算:
声音文件的存储量=采样频率×
采样位数×
声道数
3.视频图象的容量计算和国家标准:
图像文件的存储量=分辨率×
色彩数(位)。
4.视频的几种集中压缩格式:
MPEG-I编码器输出视频的数据率大约为__C__。
PAL制式下其图像亮度信号的分辨率为_A__,帧速为__B__。
(多媒体)
(44)A.128Kb/sB.320Kb/sC.1.5Mb/sD.15Mb/s
(45)A.352×
288B.576×
352C.720×
576D.1024×
720
(46)A.16帧/秒B.25帧/秒C.30帧/秒D.50帧/秒
在多媒体的音频处理中,由于人所敏感的声频最高为A赫兹(Hz),因此数字音频文件对音频的采样频率为B赫兹(Hz)。
对一个双声道的立体声,保持1秒钟声音,其波形文件所需的字节数为C,这里假设每个采样点的量化位数为8位。
MIDI文件是最常用的数字音频文件之一,MIDI是一种D,它是该领域国际上的一个E。
A:
①50②10k③22k④44k
①44.1k②20.05k③10k④88k
①22050②88200③176400④44100
①语音数字接口②乐器数字接口③语音模拟接口④乐器模拟接口
①控制方式②管理规范③通信标准④输入格式
在音频处理中,采样频率是决定音频质量的一个重要因素,它决定了频率响应范围。
对声音进行采样的三种标准以及采样频率分别为:
语音效果(11kHz)、音乐效果(22kHz)、高保真效果(44.1kHz),目前声卡的最高采样率为44.1KHz。
另外,一般人的听觉带宽为20Hz~20kHz,人敏感的声频最高为22kHz。
信号编码的位数是决定音频质量的另一个重要因素,它决定数字采样的可用动态范围和信噪比。
16位声卡的采样位数就是16。
声音文件的存储量等于采样频率×
声道数。
如本题所求波形文件的字节数计算公式如下:
44.1kHz×
8bit×
2×
1秒=705.6Mbit/8=88.2MB=88200Byte
[答案]
③B:
①C:
②D:
②E:
③
软件设计师重点难点——操作系统
一、进程相关的概念:
进程、线程和管程
这是三个看起来似乎比较容易混淆的概念,所以在复习的时候一定要牢记其定义和相互之间的区别。
*进程
进程是一个可并发执行的程序在一个数据集合上的运行过程。
也就是说,它是运行中的程序,是程序的一次运行活动。
在操作系统中,进程是进行系统资源分配、调度和管理的最小单位。
*线程
对于一些多线程程序来讲,其包含两条或两条以上并发运行的部分,每个部分就称作一个线程,每个线程都有独立的执行路径。
线程是处理器分配资源的最小单位。
*管程管程是一种并发性的构造,它包括用于分配一个共享资源或一组共享资源的数据和过程。
为了完成分配资源的功能,进程必须调用特定的管程入口。
操作系统中,多任务处理一般有两种方式:
基于进程和基于线程。
基于进程的多任务处理的特点是允许计算机同时运行两个或更多的程序。
而基于线程的多任务处理是指一个程序可以同时执行两个或者多个任务的功能。
多线程程序比多进程程序需要更少的管理费用。
进程是重量级的任务,需要分配它们自己独立的地址空间。
进程间的通信和相互转换需要很多的开销。
而线程是轻量级的任务,它们共享相同的地址空间并且分享同一个进程。
线程间的通信和转换开销要小很多。
二、信号量处理:
信号量和P-V操作为了解决进程同步的问题,提出了信号量机制。
这一机制取得了很大的发展,从整型信号量到记录型信号量,再进而发展为“信号量集”机制。
不过,在原理上和考试中,一般我们都只涉及整型信号量机制。
对于互斥临界区的管理要求:
n有空则进
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 设计师 考试 重点难点 概要