从观察记录开始就启动秒表,在每个作业要素结束时记下结束时刻,直至作业结束停止秒表的计时方法为()
A.连续测时法
B.反复测时法
C.循环测时法
D.抽样测时法
A.连续测时法
B.反复测时法
C.循环测时法
D.抽样测时法
第1题
A.缩短项目关键线路作业时间
B.缩短项目每个作业所需时间
C.计划是得到双方认可后才实施的,回绝客户的更改要求
D.与顾客方详细沟通,争取顾客方做出调整
第2题
A.启用循环,启动转发器指向每个Web服务器
B.禁止循环,启动转发器指向每个Web服务器
C.禁止循环,添加每个Web服务器的主机记录
D.启用循环,添加每个Web服务器的主机记录
第3题
在Windows Server 2003的DNS服务器中通过()操作,实现多台Web服务器构成集群并共享同一域名。
A.启用循环(Round Robin),添加每个Web服务器的主机记录
B.禁止循环(Round Robin),启动转发器指向每个Web服务器
C.启用循环(Round Robin),启动转发器指向每个Web服务器
D.禁止循环(Round Robin),添加每个Web服务器的主机记录
第4题
第5题
A.启用循环,启动转发器指向每个Web服务器
B.禁止循环,启动转发器指向每个Web服务器
C.禁止循环,添加每个Web服务器的主机记录
D.启用循环,添加每个Web服务器的主机记录
第6题
阅读以下说明和C程序,将应填入(n)处的字句写在对应栏内。
【说明】
并行计算中需要将N个作业分配给N个处理器同时去完成,每个处理器都能承担这N个作业,但耗时不同。下面的程序用回溯法计算总耗时最小的一种作业分配方案,在该方案中为每个处理器分配1个不同的作业。
程序中,N个作业从0开始依次编号,N个处理器也从0开始依次编号,主要的变量说明如下:
c[i][j]:将作业i分配给处理器j的耗时;
job[i]:值为0表示作业i未分配,值为j表示作业i分配给处理器j;
processor[k]:值为0表示处理器k未分配作业,值为1表示处理器k已分配作业;
mincost:最小总耗时。
【C程序】
include<stdio.h>
define N 8/*N表示作业数和处理器数*/
int c[N][N];
unsigned int mincost=65535/*设置min的初始值,大于可能的总耗时*/
int job[N],temp[N],processor[N];
void Assign(int k,unsigned int cost)
{
int i;
if (1)&& cost<mincost){
mincost = cost
for(i=0;i<N;i++)temp[i]=job[i];
}
else {
for(i=0;i<N;i++)/*分配作业k*/
if (2)&& cost+c[k][i]<mincost){
processor[i]=1;job[k]=(3);
Assign (4),cost+c[k][i]);
(5);job[k]=0;
}/ * if * /
}
}/ *Assign * /
void main()
{
int i,j;
for(i=0;i<N;i++){/*设置每个作业由不同处理器承担时耗时及全局数组的初值*/
processor[i]=0;job[i]=0;temp[i]=0;
for(j=0;j<N;j++)
scanf("%d",&c[i][j]);
}
Assign(0,0);/*从作业0开始分配*/
printf("\n最小耗时=%d\n",mincost);
for(i=0;i<N;i++)
printf("Job%d is assigned to Processor%d\n",i,temp[i]);
}/*main*/
第7题
“秒表”窗体中有两个按钮(“开始/停止”按钮bOK,“暂停/继续”按钮bPus);一个显示计时的标签iNure;窗体的“计时器间隔”设为100,计时糟度为0.1秒。 要求:打开窗体如图1所示;第一次单击“开始/停止”按钮,从0开始滚动显示计时(见图2);10秒时单击“暂停/继续”按钮,显示暂停(见图3),但计时还在继续:若20秒后再次单击“暂停/继续”按钮,计时会从30秒开始继续滚动显示;第二次单击“开始/停止”按钮,计时停止,显示最终时间(见图4)。若再次单击“开始/停止”按钮可重新从0开始计时。相关的事件程序如下: Optioncompare Database Dim flag,pause As Boolean PrivateSub bOK_click flag=__________ Me!bOK.Enabled=True Me!bPus.Enabled=flag End Sub PrivateSub bPus_click pause=Notpause Me!bOK.Enabled=Not Me!bOK.Enabled End Sub PrivateSub Form. Open(Cancel As Integer) flag=False Pause=False Me!b0K.Enabled=True Me!bPus.Enabled=False End Sub PrivateSub Form. Timer Staticcount As Single If flag=TrueThen Ifpause=False Then Me!INum.Caption=Round(count,1) End If Count=__________ Else count=0 End If End Sub 横线处应填写的内容是()。
A.not flag,count+1
B.not flag,count+0.1
C.enable,sum+1
D.enable,sum+1
第8题
以制造为核心的增值服务,运用延迟技术,使配送作业在收到用户订单时才开始启动。()
A.正确
B.错误
第10题
在维护任务开始之前,与维护软件有关的工作就已经开始,首先是()。
A.建立维护机构
B.填写维护记录
C.维护申请报告
D.维护工作流程安排
第11题
试题四(共15分)
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
【说明】
用两台处理机A和B处理n个作业。设A和B处理第i个作业的时间分别为ai和bi。由于各个作业的特点和机器性能的关系,对某些作业,在A上处理时间长,而对某些作业在B上处理时间长。一台处理机在某个时刻只能处理一个作业,而且作业处理是不可中断的,每个作业只能被处理一次。现要找出一个最优调度方案,使得n个作业被这两台处理机处理完毕的时间(所有作业被处理的时间之和)最少。
算法步骤:
(1)确定候选解上界为R短的单台处理机处理所有作业的完成时间m,
(2)用p(x,y,k)=1表示前k个作业可以在A用时不超过x且在B用时不超过y时间 内处理完成,则p(x,y,k)=p(x-ak,y,k-1)||p(x,y-bk,k-1)(表示逻辑或操作)。
(3)得到最短处理时问为min(max(x,y))。
【C代码】
下面是该算法的C语言实现。
(1)常量和变量说明
n: 作业数
m: 候选解上界
a: 数组,长度为n,记录n个作业在A上的处理时间,下标从0开始
b: 数组,长度为n,记录n个作业在B上的处理时间,下标从0开始
k: 循环变量
p: 三维数组,长度为(m+1)*(m+1)*(n+1)
temp: 临时变量
max: 最短处理时间
(2)C代码
include<stdio.h>
int n, m;
int a[60], b[60], p[100][100][60];
void read(){ /*输入n、a、b,求出m,代码略*/}
void schedule(){ /*求解过程*/
int x,y,k;
for(x=0;x<=m;x++){
for(y=0;y<m;y++){
(1)
for(k=1;k<n;k++)
p[x][y][k]=0;
}
}
for(k=1;k<n;k++){
for(x=0;x<=m;x++){
for(y=0;y<=m;y++){
if(x - a[k-1]>=0) (2) ;
if((3) )p[x][y][k]=(p[x][y][k] ||p[x][y-b[k-1]][k-1]);
}
}
}
}
void write(){ /*确定最优解并输出*/
int x,y,temp,max=m;
for(x=0;x<=m;x++){
for(y=0;y<=m;y++){
if((4) ){
temp=(5) ;
if(temp< max)max = temp;
}
}
}
printf("\n%d\n",max),
}
void main(){read();schedule();write();}
【问题1】 (9分)
根据以上说明和C代码,填充C代码中的空(1)~(5)。
【问题2】(2分)
根据以上C代码,算法的时间复杂度为(6)(用O符号表示)。
【问题3】(4分)
考虑6个作业的实例,各个作业在两台处理机上的处理时间如表4-1所示。该实例的最优解为(7),最优解的值(即最短处理时间)为(8)。最优解用(x1,x2,x3,x4,x5,x6)表示,其中若第i个作业在A上赴理,则xi=l,否则xi=2。如(1,1,1,1,2,2)表示作业1,2,3和4在A上处理,作业5和6在B上处理。