软件设计师考试试题分析Word文档下载推荐.docx
- 文档编号:20007422
- 上传时间:2023-01-15
- 格式:DOCX
- 页数:18
- 大小:40.62KB
软件设计师考试试题分析Word文档下载推荐.docx
《软件设计师考试试题分析Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《软件设计师考试试题分析Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
进程的互斥与同步可以很好的通过信号量和PV原语来实现。
通过读一些同步与互斥的例子,你会体会到PV原语的精妙,也会感到一种乐趣。
并发进程的资源竞争不当还会导致死锁现象。
如何用PV原语实现进程间的互斥与同步
08年软考需要做什么?
如何快捷通过软考?
软考时间安排:
软考视频教程:
软考各科指定教材:
软考考试大纲汇总:
软考过关完全攻略:
软考历年试题汇总:
软考资料下载:
提交资料赚希赛币:
免费赚取希赛币:
PV原语的含义
P操作和V操作是不可中断的程序段,称为原语。
PV原语及信号量的概念都是由荷兰科学家E.W.Dijkstra提出的。
信号量sem是一整数,sem大于等于零时代表可供并发进程使用的资源实体数,但sem小于零时则表示正在等待使用临界区的进程数。
P原语操作的动作是:
(1)sem减1;
(2)若sem减1后仍大于或等于零,则进程继续执行;
(3)若sem减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转进程调度。
V原语操作的动作是:
(1)sem加1;
(2)若相加结果大于零,则进程继续执行;
(3)若相加结果小于或等于零,则从该信号的等待队列中唤醒一等待进程,然后再返回原进程继续执行或转进程调度。
PV操作对于每一个进程来说,都只能进行一次,而且必须成对使用。
在PV原语执行期间不允许有中断的发生。
用PV原语实现进程的互斥
由于用于互斥的信号量sem与所有的并发进程有关,所以称之为公有信号量。
公有信号量的值反映了公有资源的数量。
只要把临界区置于P(sem)和V(sem)之间,即可实现进程间的互斥。
就象火车中的每节车厢只有一个卫生间,该车厢的所有旅客共享这个公有资源:
卫生间,所以旅客间必须互斥进入卫生间,只要把卫生间放在P(sem)和V(sem)之间,就可以到达互斥的效果。
以下例子说明进程的互斥实现。
例1生产围棋的工人不小心把相等数量的黑子和白子混装载一个箱子里,现要用自动分拣系统把黑子和白子分开,该系统由两个并发执行的进程组成,功能如下:
(1)进程A专门拣黑子,进程B专门拣白子;
(2)每个进程每次只拣一个子,当一个进程在拣子时不允许另一个进程去拣子;
分析:
第一步:
确定进程间的关系。
由功能
(2)可知进程之间是互斥的关系。
第二步:
确定信号量及其值。
由于进程A和进程B要互斥进入箱子去拣棋子,箱子是两个进程的公有资源,所以设置一个信号量s,其值取决于公有资源的数目,由于箱子只有一个,s的初值就设为1。
实现:
begin
s:
semaphore;
=1;
cobegin
processA
begin
L1:
P(s);
拣黑子;
V(s);
gotoL1;
end;
processB
L2:
P(s);
拣白子;
gotoL2;
coend;
判断进程间是否互斥,关键是看进程间是否共享某一公有资源,一个公有资源与一个信号量相对应。
确定信号量的值是一个关键点,它代表了可用资源实体数。
如下实例:
例2
某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,厅外的购票者可立即进入,否则需要在外面等待。
每个购票者可看成一个进程。
分析:
售票厅是各进程共享的公有资源,当售票厅中多于20名购票者时,厅外的购票者需要在外面等待。
所以进程间是互斥的关系。
只有一个公有资源:
售票厅,所以设置一个信号量s。
售票厅最多容纳20个进程,即可用资源实体数为20,s的初值就设为20。
实现:
begin
=20;
processPI(I=1,2,……)
begin
进入售票厅;
购票;
退出;
coend
当购票者进入售票厅前要执行P(s)操作,执行后若s大于或等于零,说明售票厅的人数还未满可进入。
执行后若s小于零,则说明售票厅的人数已满不能进入。
这个实现中同时最多允许20个进程进入售票厅购票,其余进程只能等待。
用PV原语实现进程的同步
与进程互斥不同,进程同步时的信号量只与制约进程及被制约进程有关而不是与整组并发进程有关,所以称该信号量为私有信号量。
利用PV原语实现进程同步的方法是:
首先判断进程间的关系为同步的,且为各并发进程设置私有信号量,然后为私有信号量赋初值,最后利用PV原语和私有信号量规定各进程的执行顺序。
下面我们将例1增添一个条件,使其成为进程间是同步的。
例3在例1的基础之上再添加一个功能:
(3)当一个进程拣了一个棋子(黑子或白子)以后,必让另一个进程拣一个棋子(黑
子或白子)。
由功能
(1)
(2)(3)可知,进程间的关系为同步关系。
进程A和B共享箱子这个公有资源,但规定两个进程必须轮流去取不同色的棋子,因而相互间要互通消息。
对于进程A可设置一个私有信号量s1,该私有信号量用于判断进程A是否能去拣黑子,初值为1。
对于进程B同样设置一个私有信号量s2,该私有信号量用于判断进程B是否能去拣白子,初值为0。
当然你也可以设置s1初值为0,s2初值为1。
实现:
s1,s2:
s1:
s2:
=0;
P(s1);
V(s2);
P(s2);
V(s1);
另外一个问题就是P原语是不是一定在V原语的前面?
回答是否定的。
下面看一个例子。
例4
设在公共汽车上,司机和售票员的活动分别是:
司机:
启动车辆,正常行车,到站停车。
售票员:
上乘客,关车门,售票,开车门,下乘客。
用PV操作对其控制。
司机到站停车后,售票员方可工作。
同样,售票员关车门后,司机才能工作。
所以司机与售票员之间是一种同步关系。
由于司机与售票员之间要互通消息,司机进程设置一个私有信号量run,用于判断司机能否进行工作,初值为0。
售票员进程设置一个私有信号量stop,用于判断是否停车,售票员是否能够开车门,初值为0。
stop,run:
semaphore
stop:
run:
driver:
P(run);
启动车辆;
正常行车;
到站停车;
V(stop);
conductor:
上乘客;
关车门;
V(run);
售票;
P(stop);
开车门;
下乘客;
用PV操作还可以实现进程同步与互斥的混合问题,典型的如:
多个生产者和多个消费者共享容量为n的缓存区。
这个例子在很多书中都有介绍,在这里就不说了。
数据库
数据库基础知识包括数据库模型,关系数据库的基础知识,数据库系统的结构,SQL的使用,常用数据库管理系统的知识。
考生在复习时除了看教材相关部分外,还应该多做历届相关真题,同时可参考《数据库系统概论》萨师煊(第三版),因为该书中有更详细的一些概念说明,而教材中有些地方没有讲到。
1.在数据库逻辑结构的设计中,将E-R模型转换为关系模型应遵循相关原则。
对于三个不同实体集和它们之间的多对多联系m:
n:
p,最少可转换为____个关系模式。
A.2B.3C.4D.5
C
解析:
书本上讲过两个不同实体集和它们之间的多对多联系时,可把两个不同实体集转换成两个关系模式,多对多的联系可以转换成一个关系模式。
p,也是把三个不同实体集转换成三个关系模式,其中的两个多对多的联系最少可以转换成一个关系模式,所以共4个关系模式。
2.给定关系模式R(U,F),U={A,B,C,D,E},F={B→A,D→A,A→E,AC→B},其属性AD的闭包为__
(1)__,其候选关键字为__
(2)__。
(1)A.ADEB.ABDC.ABCDD.ACD
(2)A.ABDB.ADEC.ACDD.CD
(1)A
(2)D
(1)闭包的定义在教材中没有给出,具体的闭包定义考生可参考《数据库系统概论》萨师煊(第三版),第184页。
求属性集的闭包可由固定的算法推出:
设X(0)=AD;
计算X
(1);
逐一扫描F集合中各个函数依赖,找左部是A、D或AD的函数依赖,得到:
A→E,D→A。
于是X
(1)=X(0)∪EA=ADE。
由于X(0)≠X
(1),所以再逐一扫描F集合中各个函数依赖,找左部是ADE的子集的那些函数依赖,得到A→E,D→A。
于是X
(2)=X
(1)∪EA=ADE。
由于X
(2)=X
(1),所以算法到此为止,其属性AD的闭包为X
(2),即ADE。
(2)对于键和函数依赖的关系,有两个条件:
设关系模式R(A1,A2...An),F是R上的函数依赖集,X是R的一个子集,①X→A1A2...An∈F+(它的意思是X能够决定唯一的一个元组)②不存在X的真子集Y,使得Y也能决定唯一的一个元组,则X就是R的一个候选键(它的意思是X能决定唯一的一个元组但又没有多余的属性集)。
可以利用Armstrong的推理规则,求出X使得X→ABCDE。
由D→A和AC→B,可得:
DC→B,由B→A得:
DC→A,又由A→E得:
DC→E。
而DC→C,DC→D。
所以由上可知:
DC→ABCDE。
故候选关键字为CD。
3.若有关系模式R(A,B,C)和S(C,D,E),对于如下的关系代数表达式:
E=∏A,D(σB<
'
2003'
∧R.C=S.C∧E='
80'
(R×
S))
E=∏A,D(σR.C=S.C(σB<
(R)×
σE='
(S)))
(R)σE='
(S))
∧E='
(RS))
正确的结论是__(20)__,表达式__(21)__的查询效率最高。
(1)A.E1≡E2≡E3≡E4B.E3≡E4但E1≠E2
C.E1≡E2但E3≠E4D.E3≠E4但E2≡E4
(2)A.E1C.E3B.E2D.E4
(1)A
(2)C
(1)这道题的查询含义是:
找出R.C=S.C时,其中B<
且E='
,只含A、D属性的这些记录。
从E1、E2、E3、E4式子中看出它们是等价的。
(2)查询优化的目的就是为了系统在执行时既省时间又能提高效率。
优化的策略主要有以下几点:
①在关系代数表达式中尽可能早地执行选择操作(早选择)(这是最总要最基本的一条)②把笛卡尔积和随后的选择操作合并成F联接运算(F联接)③同时计算一连串的选择和投影操作(同时算)④保留同一子表达式的结果⑤适当对关系文件进行预处理⑥计算表达式之前先估计一下怎么计算合算。
根据第一条可知E3是查询效率最高的。
4.集合A={d.b.c}上的二元关系R为:
R={<
a,a>
<
c,c>
a,b>
)},则二元关系R是____。
A.自反的B.反自反的C.对称的D.传递的
D
http:
//boo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 设计师 考试 试题 分析