首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和程序,回答问题1至问题3,将答案填入答题纸的对应栏内。 【说明】 在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下程序,其中: 【程序1】:实现两个变量的值的互换; 【程序2】:完成某功能的C语言程序;
阅读下列说明和程序,回答问题1至问题3,将答案填入答题纸的对应栏内。 【说明】 在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下程序,其中: 【程序1】:实现两个变量的值的互换; 【程序2】:完成某功能的C语言程序;
admin
2016-05-11
96
问题
阅读下列说明和程序,回答问题1至问题3,将答案填入答题纸的对应栏内。
【说明】
在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下程序,其中:
【程序1】:实现两个变量的值的互换;
【程序2】:完成某功能的C语言程序;
【程序3】和【程序4】:是P、V操作的形式化定义,设S为信号量。在多道程序系统中,进程是并发执行的。这些进程间存在着不同的相互制约关系,主要表现为同步和互斥两个方面。信号量是解决进程间同步与互斥的有效方法。
【程序1】
Void swap(int n1, int n2)
{
int tmp=n1;
n1=n2;
n2=tmp;
}
【程序2】
#include
int fun(int n)
{
int f0=0, f1=1, f, i;
if(n==0) return 0;
if(n==1) return 1;
for(i=2; i<=n; i++)
{
f=f0+f1;
f0=f1;
f1=f;
}
return f;
}
void main()
{int n=5;
printf(”fun(%d)=%d\n”,n,fun(n));
n=7;
printf(”fun(%d)=%d\n”,n,fun(n));
n=9;
printf(”fun(%d)=%d\n”,n,fun(n));
}
【程序3】
P操作的形式化定义:
P(S)
{
(1) :
if ( (2) ) {
阻塞该进程;
将该进程插入信号量S的等待队列;
}
}
【程序4】
V操作的形式化定义:
V(S)
{
(3) ;
if ( (4) ) {
从信号量S的等待队列中取出队首进程;
将其插入就绪队列;
}
}
【问题1】
执行【程序1】后,没有能够实现两个变量值的交换,为什么?请修改上述函数,实现两个变量值的交换,要求函数无返回值,形式为:void swap(…)。请将答案填写在答题纸中对应的栏目。
【问题2】
请问【程序2】运行结果是什么?
【问题3】
请简述什么是临界资源?什么是临界区?
请完成【程序3】和【程序4】的形式化定义,将应填入(n)处的内容写在答题纸的对应栏中。
选项
答案
【问题1】 两个变量不能交换值的原因: 因为函数是传值的,函数形参值的交换,并不影响到实参的值的变化。 正确的函数编写如下(下面只是范例,变量名称不作要求): void swap(int*pnl, int*pn2) { int tmp=*pn1; *pnl=*pn2; *pn2=tmp; } 【问题2】 第一次输出:fun(5)=5 第二次输出:fun(7)=13 第三次输出:fun(9)=34 【问题3】 临界资源:一次只能使一个进程访问的资源称为临界资源。 临界区:进程中访问临界资源的那段代码称为临界区。 (1) S-- (2) S<0 (3)S++ (4)S<=0
解析
本题考查嵌入式C/C++语言编程基础知识。
【问题1】
函数swap采用值传递,虽然将形参n1和n2交换了,但是并不影响到实参,所以执行【程序1】后,实参变量并没有完成数据交换。将值传递改成指针传递就可以了。
对应的swap函数应修改如下:
swap (int *pn1, int*pn2)
{
int tmp;
tmp=*pn1;
*pn1=*pn2;
*pn2=tmp;
}
【问题2】
当n=5时,初始:f0=0,f1=1;
for循环计算如下:
i=2:f=0+1=1;f0=1;f1=1
i=3:f=1+1=2;f0=1;f1=2;
i=4:f=1+2=3;f0=2;f1=3;
i=5:f=2+3=5;f0=3;f1=5;
所以,调用fun(5),得到返回值5;
同理,可计算出fun(7)=13; fun(9)=34。
【问题3】
在多道程序系统中,进程是并发执行的,这些进程之间存在着不同的相互制约关系。进程之间的这种制约关系来源于并发进程的合作以及对资源的共享。
进程在运行过程中,一般会与其它进程共享资源,而有些资源的使用具有排他性。系统中的多个进程可以共享系统的各种资源,然而其中许多资源一次只能为一个进程所使用,通常把一次仅允许一个进程使用的资源称为临界资源。许多物理设备都属于临界资源,如打印机、绘图机等。除物理设备外,还有许多变量、数据等都可由若干进程所共享,它们也属于临界资源。
进程中访问临界资源的那段代码称为临界区,也称为临界段。
访问临界资源应遵循如下原则:
①空闲让进(或有空即进):当没有进程处于临界区时,可以允许一个请求进入临界区的进程立即进入自己的临界区;
②忙则等待(或无空则等):当已有进程进入其临界区时,其它试图进入临界区的进程必须等待;
③有限等待:对要求访问临界资源的进程,应保证能在有限时间内进入自己的临界区;
④让权等待:当进程不能进入自己的临界区时,应释放处理机。
信号量是荷兰著名的计算机科学家Dijkstra于1965年提出的一个同步机制,其基本思想是在多个相互合作的进程之间使用简单的信号来同步。
在操作系统中,信号量是表示资源的实体,除信号量的初值外,信号量的值仅能由P操作(又称Wait操作)和V操作(又称Signal操作)改变。
设S为一个信号量,P(S)执行时主要完成:先执行S=S一1;若S≥0则进程继续运行;若S<0则阻塞改进程,并将它插入该信号量的等待队列中。
V(S)执行时主要完成:先执行S=s+1;若S>0则进程继续执行;若S≤0则从该信号量等待队列中移出第一个进程,使其变为就绪状态并插入就绪队列,然后再返回原进程继续执行。
P、V操作的形式化描述如下:
P(S)
{
S 一一;
IF( S<0 ) {
阻塞该进程;
将该进程插入信号量s的等待队列;
}
}
V(S)
{
S++:
IF( S<= 0 ) {
从信号量s的等待队列中取出队首进程;
将其插入就绪队列;
}
}
转载请注明原文地址:https://kaotiyun.com/show/QQWZ777K
本试题收录于:
嵌入式系统设计师下午应用技术考试题库软考中级分类
0
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
下列描述的因素中,不属于数据库物理设计应该考虑的是(64)________________。
主域名服务器在接收到域名请求后,首先查询的是(32)________________。
在网络安全管理中,加强内防内控可采取的策略有(14)________________。①控制终端接入数量②终端访问授权,防止合法终端越权访问③加强终端的安全检查与策略管理④加强员工上网行为管理与违规审计
在索引改进中,一般的调整原则是:当(62)是性能瓶颈时,则在关系上建立索引;当(63)是性能瓶颈时,则考虑删除某些索引;管理人员经常会将有利于大多数据查询的所以设为(64)。(62)
在索引改进中,一般的调整原则是:当(62)是性能瓶颈时,则在关系上建立索引;当(63)是性能瓶颈时,则考虑删除某些索引;管理人员经常会将有利于大多数据查询的所以设为(64)。(64)
(16)是构成我国保护计算机软件著作权的两个基本法律文件。单个自然人的软件著作权保护期为(17)。(16)
并发操作可能带来的数据不一致性有(52),解决的办法是并发控制,主要技术是(53)。(53)
在数据库系统运行中,经常会找出频繁执行的SQL语句进行优化。常见的优化策略有:尽可能减少多表查询或建立(65);用带(66)的条件子句等价替换OR子句;只检索需要的属性列等。(65)
随机试题
胎盘静脉窦发生于下列哪个部位
七情配伍中,可以提高药效的是
患者,女性,70岁。慢性支气管炎病史30年。一周前感冒后再次出现咳嗽、咳痰。痰白质黏,伴有呼吸困难、乏力。以“慢性支气管炎合并慢性阻塞性肺气肿”入院治疗。指导患者加强腹式呼吸的原因是
某道路工程项目,施工总承包单位项目经理部根据该工程作业内容、土质条件、运距和气象条件,综合分析相关工程和设备的情况,对本工程的施工机械进行了选择和协调。具体施工中的部分工程施工机械的配置如下:(1)对于清基和料场准备等路基施工前的准备工作,选择的施
甲、乙两人在某建筑公司的工地工作。某日上班时,甲因疏忽大意,操作不当,致乙右臂伤残。有关该事件的下列表述中,正确的是()。
政府采购监督管理部门,经上级财政部门批准,可以设置集中采购机构。()
电子银行承兑汇票由银行业金融机构、财务公司承兑;电子商业承兑汇票由金融机构以外的法人或者其他组织承兑。()
毫无疑问,真正的批评家应该拥有的是_______的内心和不带任何偏见的眼睛。除了来自自身灵魂深处和纯粹学术性的_______之外,不该成为任何权势或利益集团的代言人和施惠者的吹鼓手。填入划横线部分最恰当的一项是:
行政监督对行政相对方的权利、义务不产生影响。()
(北京大学2006年试题)Anyparentwithachild【1】theagesof3and11cantellyou【2】technologyhascreptintonearly【3】aspectsofpl
最新回复
(
0
)