题目详情

在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下程序,其中:

[程序1]:实现两个变量值互换;

[程序2]:完成某功能C语言程序;

[程序3]和[程序4]:是P、V操作形式化定义,设S为信号量。在多道程序系统中,进程是并发执行。这些进程间存在着不同相互制约关系,主要表现为同步和互斥两个方面。信号量是解决进程间同步与互斥有效方法。[程序1]void swap (int n1, int n2){int tmp=n1;n1=n2;n2=tmp;}[程序2]#include image.pngstdio.h>int fun (int n){int f0=0, f1=1, f, i;if (n==0) return 0;if (n==1) return 1;for(i=2; iimage.png=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]形式化定义。

正确答案及解析

正确答案
解析

问题1:两个变量不能交换值原因:因为函数是传值,函数形参值交换,并不影响到实参值变化。正确函数编写如下(下面只是范例,变量名称不作要求):void swap (int *pn1, int *pn2){int tmp=*pn1;*pn1=*pn2;*pn2=tmp;}

问题2:第一次输出:fun(5)=5 第二次输出:fun(7)=13 第三次输出:fun(9)=34

问题3:临界资源:一次只能使一个进程访问资源称为临界资源。 临界区:进程中访问临界资源那段代码称为临界区。 (1)S-- (2)S<0 (3)S++ (4)S<=0

问题1本题考查嵌入式C/C++语言编程基础知识。函数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则从该信号量等待队列中移出第一个进程,使其变为就绪状态并插入就绪队列,然后再返回原进程继续执行。PV操作过程如下图所示:

中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习

你可能感兴趣的试题

单选题

EAI(企业应用集成)可以包括表示集成、数据集成、控制集成和业务流程集成等多个层次和方面,下图所便是的是( ),适合于使用这种集成方式的情况是(请作答此空)。

高级系统分析师,章节练习,信息化基础知识

  • A.表示集成
  • B.数据集成
  • C.控制集成
  • D.业务流程集成
查看答案
问答题

某公司要建设一个网站,下表是建设中各项活动时间需求及人员需求预算值。

中级电子商务设计师,章节练习,基础复习,中级电子商务设计师综合

13、[问题1]

按每项活动最早开始时间画出该项目计划安排甘特图。

中级电子商务设计师,章节练习,基础复习,中级电子商务设计师综合

14、[问题2]计算:(1)该项目每周所需人工数

中级电子商务设计师,章节练习,基础复习,中级电子商务设计师综合

(2)周人工数最大差值。

15、[问题3]为使资源配置均衡,调整项目活动起始时间,使每周所需人工数最大差值为7。调整结果为:活动(3)推后(4)周开始,活动(5)推后(6)周开始。

查看答案
问答题

某建材公司电子商务网站主要完成网上直销、产品宣传、技术咨询、信息收集和客户管理等工作。网站管理小组一方面负责网站推广、信息发布和信息采集,另一方面负责网站管理和维护。

10、[问题1]公司前期研制了一种新型建材产品,决策层想通过在线问卷调查方式了解这种产品推广情况。请叙述实施在线问卷调查关键步骤及每个步骤主要完成任务(不超过200字)。

11、[问题2]公司网站推广碰到一些问题,网站管理小组发现在搜索引擎中公司网站排名靠后。公司要求对网页进行优化,以提高网站在搜索引擎列表中排名。请叙述如何对网页进行优化(不超过300字)。

12、[问题3]电子商务网站正常运行离不开必要监控。请指出:(1)对Web站点三种监视尺度分别是什么?(2)它们各自主要监控内容是什么?

查看答案
问答题

某测试小组对两个网站进行了系统测试。以下是连接速度测试界面。

中级电子商务设计师,章节练习,基础复习,中级电子商务设计师综合

7、[问题1]右图是该测试小组对网站制定测试流程图,请将其补充完整。

8、[问题2]Web测试包括:Cookie测试、数据库测试、连接速度测试、设计语言测试、负载测试、表单测试、压力测试、链接测试等。请将它们按功能测试和性能测试进行分类。

9、[问题3]说明中链接测试页面实现功能是:如果10秒链接不上指定网站,则显示“链接超时”,否则显示链接时间(单位为秒)。请根据以上功能描述,补齐代码:<script>tim=1//时间初值(1)("tim++",100);//定时调用时间设定bTestFinish=0c=1var b=1var autour1=new Array ( ) autourl[1]="61.236.219.100"autourl[2]="220.181.26.132"//测试网站IP地址function butt(){document.write("<form name=autof>")for(var i=1;i<autour1.1ength;i++){if(i==1|i==3||i==5){document.write("<input type=text class=noborder name==url"+i+"value=http://"+autourl[i]+" ;size=40>→ ; ;<input type=text name=txt"+i+"size=10 class=noborder value=测试中…><br><br>")}else{document.write("<input type=text class=noborder name=url"+i+" value=http://"+autourl[i]+" ;size=40>→&ubsp; ;<input type=text name=txt"+i+" size=10 class=noborder value=测试中…><br><br>")}}document.write("<br><div align='center'><input type=submit value=重新测试></div></form>")//初始测试页面}butt()function auto(c){if(tim>(2) ){document.forms[O]["txt"+c).value="链接超时"}else{document.forms[0]["txt"+c].value="时间"+tim/10+"秒"}}//测试结果判断function run ( ){for(var i=1;i<autour1.1 ength;i++){document.write("<img src=http://"+autourl[i]+"/"+Math.random()+"width=1 height=1 onerror= (3) ("'+i+'")>");}}//运行测试run();</script>

查看答案
问答题

某企业决定开发一个企业仓储管理系统,由李工承担系统设计工作。该系统网络连接如图2-1所示。[图2-1]

中级电子商务设计师,章节练习,基础复习,中级电子商务设计师综合

该企业有多个仓库,图2-1所示中心数据库存储了各个仓库中每种货物库存信息。每个仓库配备一台前端机,进出货物均由前端机辅助实现。管理员每天上班时,通过前端机从中心数据库库存表中读取本仓库各种货物库存数,每个仓库当日业务数据也都暂存在前端机,当天业务结束后,再将前端机中存储数据传输到主机进行存储与汇总。每个仓库可以存放多种货物,但同一种货物不能存放在不同仓库中。每个仓库有多个管理员,但每个管理员只管理一个仓库。货物出库/入库时,由仓库管理员将货物条码通过阅读器输入前端机中,货物数量默认值为1,可以由管理员修改。前端机根据输入货物信息,打印“出库/入库”清单。出库/入库单中同一种货物最多只出现一次,每份出库/入库单由流水号唯一标识。图2-2是一个出库单实例。[图212]

中级电子商务设计师,章节练习,基础复习,中级电子商务设计师综合

管理员:01105出库/入库:出库该系统处理业务过程如下。①初始化:前端机根据仓库号从货物表中读取本仓库中每种货物货物编码、库存量、货物名称和单价;②登记出库/入库信息:由前端机存储每一笔“出库/入库”记录;③汇总:在每个工作日结束前汇总当日各种货物“出库/入库”量至日汇总表;④更新库存表:根据当日汇总信息更新货物库存。李工经过分析,设计出如图2-3所示关系模式。[图2-3]出入库单(流水号,出入库标志,管理员号,时间)出入库记录(货物编码,数量,流水号)日汇总表(日期,货物编码,数量,出入库标志)仓库(仓库号,仓库名,仓库电话)管理员(管理员号,姓名,仓库号)货物((a) )注:时间格式为年-月-日时:分;日期格式为年-月-日。实体联系图表示方法如图2-4所示,其中方框表示实体,菱形表示联系,联系类型在实体与联系边上标出。图2-5为与该系统对应实体联系图。[图2-4]

中级电子商务设计师,章节练习,基础复习,中级电子商务设计师综合

中级电子商务设计师,章节练习,基础复习,中级电子商务设计师综合

4、[问题1]根据题意,补充图2-3中(a)处空缺,即货物关系模式属性。

5、[问题2]根据题意,补充图2-5中缺失联系和联系类型,使其成为完善实体联系图。其中,联系名分别取名为联系1,联系2,联系3,……。

6、[问题3]写出每种关系模式主键,将其填写在答题纸对应栏内。

查看答案

相关题库更多 +