操作系统处理机调度实验报告(2)

2019-04-02 14:35

p = p->next; } } void display_round(pcb *p){ printf(\count state\\n\ while(p){ printf(\ printf(\ \ printf(\ printf(\ \ printf(\ printf(\ \ printf(\ printf(\ \ switch(p->process){ case ready:printf(\ case execute:printf(\ case block:printf(\ case finish:printf(\ } p = p->next; } } void round_cal(){ pcb *p; pcb *r; p = get_process_round(); int cpu = 0; r=p; while(!process_finish(p)){ //就绪队列中还有进程 if(r->needtime==1) cpu+=1; else cpu+=2; //时间片长度是2 cpu_round(r); r = get_next(r,p); //获得下一个需要执行的进程 printf(\ display_round(p); //每调度一次就显示次 set_state(p); sleep(2); } free_process(p); //释放所有进程 } main(){ display_menu(); int k; scanf(\ switch(k){ case 1:priority_cal();break; case 2:round_cal();break; case 3: break; default:printf(\ } } 优先级调度: 时间片轮转调度: 先来先服务调度算法及结果: #include #include int SUM=0,K=0; typedef struct link { int time; int averageTime; int priority; struct link *next; }linknode; linknode *creat() { int n,m; linknode *head,*r,*s; head=r=(linknode *)malloc(sizeof(linknode)); printf(\输入各进程的处理时间和优先级并以两个0为结束标志:\\n\ while(scanf(\ { s=(linknode *)malloc(sizeof(linknode)); K++; s->time=n; s->priority=m; s->averageTime=0; r->next=s; r=s; } r->next=NULL; return head; } linknode *seekAverageTime(linknode *head) { int sum=0; linknode *p; p=head->next; while(p) { sum=sum+p->time; p->averageTime=sum; p=p->next; SUM+=sum; } } void print(linknode *head) { linknode *p; p=head->next; printf(\各进程处理时间为:\ while(p) { printf(\ p=p->next; } printf(\ } main() { } linknode *head; head=creat(); seekAverageTime(head); print(head); printf(\平均处理时间为:%d\\n\ 分析与体会: 通过做本实验,让我对进程或作业先来先服务、高优先权、按时间片轮转调度算法以及进程调度的概念和算法,有了更深入的认识!初步理解了操作系统对于作业处理的基本思想!对于时间片轮转法的处理要比优先级调度算法的理解要深。在实验的过程中遇到了很多困难,感谢同学们的帮助。

教师签名: 年 月 日


操作系统处理机调度实验报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:青年拳甲段动作名称及动作说明

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: