问题 单项选择题

采用轮转法调度是为了( )。

A.多个终端都能得到系统的及时响应

B.先来先服务

C.优先级较高的进程得到及时调度

D.占用CPU时间最短的进程先做

答案

参考答案:A

解析: 对于不同的系统和系统目标常采用不同的调度算法,常用的调度算法有,先来先服务算法,可以用在进程调度和作业调度中,其基本思想是按进程或作业到达的前后顺序进行调度;优先级调度算法是为照顾对紧急进程或重要进程进行调度:轮转法调度是分时系统使用的算法。它将CPU处理时间分成一个个时间片,就绪队列中的诸进程轮流运行一个时间片,当时间片结束时,就强迫运行进程让出CPU,该进程进入就绪队列,同时,进程调度选择就绪队列中的另个进程,分配给它一个时间片。如此就绪队列中的各个进程都能及时得到系统的响应.

问答题

已知检查括号匹配及注释、字符串处理的C源程序如下: #include<stdio.h> int brace,brack,paren; void in_quote(int c); void in_comment(void); void search(int c); /*rudimentary syntax checKer for C program*/ int main() { int c; extern int brace,brack,paren; while((c=getchar())!=EOF){ if(c==’/’){ if((c=getchar())==’*’) in_comment(); /*inside comment*/ else search(C) ; }else if(c==’\"||c=="") in_quote(c); /*inside quote*/ else search(c); if(brace<0){ /*output errors*/ printf("Unbalanced braces\n"); brace=0; }else if(brack<0){ printf("Unbalanced brackets\n"); brack=0; }else if(paren<0){ printf("Unbalanced parentheses\n"); paren=0; } } if(brace>0) /*output errors*/ printf("Unbalanced braces\n"); if(brack>0) printf("Unbalanced brackets\n"); if(paren>0) printf("Unbalanced parentheses\n"); return 0; } /*search:search for rudimentary syntax errors*/ void search(int c) { extern int brace,brack,paren; if(c==’{’) ++brace; else if(c==’}’) --brace; else if(c==’[’) ++brack; else if(c==’]’) --brack; else if(c==’(’) ++paren; else if(c==’)’) --paren; } /*in_comment:inside of a valid comment*/ void in_comment(void) { int c,d; c=getchar(); d=getchar(); /*curr character*/ while(c!=’*’||d!=’/’){ /*search for end*/ c=d; d=getchar(); } } /*in_quote:inside quote*/ void in_quote(int c) { int d; while((d=getchar())! =c) /*search end quote*/ if(d==’\\’) getchar(); /*ignore escape seq*/ }

画出程序中main函数的控制流程图。

单项选择题