对某系统进行监测后表明平均每个进程在I/O阻塞之前的运行时间为T。一次进程切换的系统开销时间为S。若采用时间片长度为Q的时向片轮转法,对下列各种情况算出CPU利用率。 1)Q=∞    2)Q>T    3)S<Q<T     4)Q=S    5)Q接近于0

题目

对某系统进行监测后表明平均每个进程在I/O阻塞之前的运行时间为T。一次进程切换的系统开销时间为S。若采用时间片长度为Q的时向片轮转法,对下列各种情况算出CPU利用率。 1)Q=∞    2)Q>T    3)S<Q<T     4)Q=S    5)Q接近于0

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

假设某分时系统釆用简单时间片轮转法,当系统中的用户数为n、时间片为q时, 系统对每个用户的响应时间T=( )。

A.n B.q C.n x q D.n + q


正确答案:C

第2题:

1 mol理想气体在等温T下向真空膨胀,体积从V1变至V2,吸热为Q,其熵变应如何计算?()

A.ΔS=R ln(p2/p1)

B.ΔS=Rln(V2/ V1)

C.ΔS=Q/T>0

D.ΔS=0


正确答案:B

第3题:

在时间t内通过导体横截面的电荷为q,电流,为()

A.q×t

B.q/t

C.q+t

D.q-t


正确答案:B

第4题:

有以下程序 void f(int *x,int *y) { int t; t=*X; *X=*y; *y=t; } main() { int a[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a; q=&a[7); while(p>q) { f(p,q); p++; q--; } for(i=0; i<8; i++) printf("%d,",a[i]); } 程序运行后的输出结果是

A.8,2,3,4,5,6,7,1,

B.5,6,7,8,1,2,3,4,

C.1,2,3,4,5,6,7,8,

D.8,7,6,5,4,3,2,1,


正确答案:D
解析:在C语言中,函数参数的默认传递方式是传值,即函数内部的形参只是调用时的实参的一个拷贝,改变形参,实参不会被改变.如果想要实现传址调用只能使用传递指针的方式来实现.利用指针作函数的参数时,无论形参指针还是实参指针所指的都是同一个内存地址,所以形参如果改变了这个地址中的内容,也就是改变了实参所指的地址内容.本题程序开头定义了一个函数f(),在函数中用一个临时变量t交换了两个指针参数所指的地址内容,所以该函数的作用就是交换两个参数所指的内容。在主函数中,首先定义了一个int型数组a,并定义了两个int型指针p、q分别指向数组a的第一个元素和最后一个元素。然后使用一个while循环调用函数f()不断交换两个指针所指的内容,每次交换后p往后移动一个元素,q往前移动一个元素,直到q不再大于p,即直到两个指针在数组a的中间相遇为止。所以,程序最终运行的结果是数组a中的所有元素全被反序排列一次。故应该选择选项D。

第5题:

在一个使用循环调度的系统中,s表示执行进程切换所需要的时间,q表示循环的时间片,r表示进程在发生I/O阻塞前平均运行时间。(a)如果q=∞,CPU 效率是(31);(b)如果q>r,那么,CPU的效率是(32);(c)s<q<r,CPU的效率是(33);(d)s=q<r,效率为(34);(e)q几乎为零时,CPU的效率是(35)。

A.0

B.1/2

C.q/(q+s)

D.r/(r+s)


正确答案:D

第6题:

设数组data[0…m]作为循环队列S q的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为( )。

A.S q↑.front:=S q十.front+1;

B.S q↑.front:=(S q十.front+1)%maxsize;

C.S q↑.rear:=(s q十.rear+1)%maxsize;

D.S q↑.front:=(s q十.front+1)%(maxsize+1);


正确答案:B
B。【解析】循环队列采用的方法是:假设向量sq↑.data[maxsize]是一个首尾相接的圆环,即sq↑.data[0]接在sq↑.data[maxsize-1]之后,我们将这种意义下的向量称循环向量,并将循环向量中的队列称为循环队列。若当前尾指针等于向量的上界,则再做入队列操作时,令尾指针等于向量的下界,这样就利用到已被删除的元素空间,克服假上溢现象。因此入队操作时,在循环意义下的尾指针加l操作可描述为:if(Sq↑.rear>=maxsize)sq↑.near:=0;elsesq↑.rear++;如果利用“模运算”,上述循环意义下的尾指针加l操作,可以更简洁地描述为:sq↑.rear=(sq↑.rear+1)%maxsize。同样,出队操作时,在循环意义下的头指针加1操作,也可利用“模运算”来实现:sq↑.front:=(sq↑.front+1)%max-size。

第7题:

设数组data[0…m]作为循环队列s q的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为( )。

A.S q↑.front:=s q↑.front+1;

B.S q↑.front:=(S q↑.front+1)%maxsize;

C.S q↑.rear:=(S q↑.rear+1)%maxsize;

D.S q↑.front:=(s q↑.front+1)%(maxsize+1);


正确答案:B
循环队列采用的方法是:假设向量Sq↑.data[maxsize]是一个首尾相接的圆环,即Sq↑.data[0]接在Sq↑.data[maxsize—1]之后,我们将这种意义下的向量称循环向量,并将循环向量中的队列称为循环队列。若当前尾指针等于向量的上界,则再做入队列操作时,令尾指针等于向量的下界,这样就利用到已被删除的元素空间,克服假上溢现象。因此入队操作时,在循环意义下的尾指针加1操作可描述为:if(Sq↑.rear>=maxsize)sq↑.near:=0;elsesq↑.rear++;如果利用“模运算”,上述循环意义下的尾指针加l操作,可以更简洁地描述为:Sq↑.rear=(sq↑.rear+1)%maxsize。同样,出队操作时,在循环意义下的头指针加1操作,也可利用“模运算”来实现:sq↑.front:=(sq↑.front+1)%max—size。

第8题:

下列程序的输出结果是( )。 void f(int*x,int*y) {int t; t=*x,*x=*y;*y=t; } main() {int a[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a;q=&a[7]; while(p<q) {f(p,q);p++;q--;} for(i=0;i<8;i+)printf("%d,",a[i]); }

A.8,2,3,4,5,6,7,1

B.5,6,7,8,1,2,3,4

C.1,2,3,4,5,6,7,8

D.8,7,6,5,4,3,2,1


正确答案:D
解析: 函数f()的功能是对两个数据互换。在主函数中指针变量p和q分别指向数组a[8)的首和尾,在 while循环中实现从首尾开始数组元素的互换操作。

第9题:

设栈S的初始状态为空,队列Q的初始状态如图所示。

对栈S和队列Q进行下列两步操作: (1)删除Q中的元素,将删除的元素插入S,直至Q为空。 (2)依次将S中的元素插入Q,直至S为空。在上述两步操作后,队列Q的状态是【 】。


正确答案:a4a3a2a1
a4a3a2a1 解析:队列的删除是从队头开始的,所以在执行第一步后,S中的内容及顺序应为a1a2a3a4。但栈的出栈顺序是先进后出,所以出栈/顷序为a4a3a2a1。队列的内容及顷序也与出栈情况一致。

第10题:

有以下程序: void f(int*x,int*y) { int t; t=*x;*x=*y;*y=t; } main() { int a [8]={1, 2,3,4,5, 6, 7,8},i,*p,*q; p=a;q=&a[7]; while(p<q) {f(p,q);p++;q-;} for(i=0;i<8;i++)printf("%d,"a[i]); } 程序运行后的输出结果是 ______。

A.823,4,5,6,7,1,

B.5,6,7,8,12,3,4,

C.1,2,3,4,5,6,7,8,

D.8,7,6,5,4,3,2,1,


正确答案:D
解析:本程序中函数f的作用是交换指针变量x和y所指向的存储单元的值。

更多相关问题