资源描述:
《操作系统处理机调度》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1•实验目的:进程调度是操作系统最重要的概念之一,是操作系统核心内容。调度算法好坏将直接影响操作系统的性能。本实验可以加深对进程调度和各种调度算法的理解。要求到达的进程数、各进程到达的时间可以任意选择。通过实验,求出平均周转时间和加权均周转时间。2•内容与要求:根据表格数据求出平均周转时间和加权均周转时间。作业提交时间运行时间开始时间完成时间周转时间带权周转时间1&002.002&50.539.000.1049.50.20平均周转时间平均带权周转时间3•流程图:将用户作业和就绪进程按提交顺序或变为就绪状态的先后排成队列,并按照先来先服务(驻留时间最长)的方式进行调度处理。•对于
2、作业调度:该算法就是从后备作业队列中(按进入的时间顺序排队)选择队首一个或几个作业,调入内存,创建进程,放入就绪队列。•对于进程调度:该算法就是从就绪队列中选择一个最先进入队列的进程,将CPU分配于它。初始化pcb,输入作业信息模拟三个4个作业,并静态权平均周转吋间一丄<结束4•部分代码及截图:#include,fstdio.hH#includeHstdlib.hMtypedefstructPCB{charID[3];〃进程号charname[10];〃进程名doublesubmittime;//提交时间doubleservicetime;//服务时间charstate;//运
3、行状态doublestarttime;//®程开始时间doublefinishtime;//进程结束时间floatzt;〃周转时间floatdzt;//带权周转时间structPCB*next;〃指向下个进程}pcb;doubletime;intn;〃进程个数floatat;//平均周转时间floatadt;〃平均带权周转时间pcb*head=NULL,*p,*q;//进程链表指针voidrun_fcfs(pcb*pl)//运行未完成的进程{time=pl->submittime>time?pl->submittime:time;p1・>starttime=time;print
4、f(H现在时间是%4・2f,开始运行%sM,time,pl->name);time+=p1・>servicetime;pl->state=,F,;pl->finishtime=time;pl->zt=(float)(pl->finishtime-pl->submittime);p1->dzt=(lloat)(p1->zt/pl->servicetime);at+=p->zt;adt+=p->dzt;printf(H名字提交时间服务时间开始时间完成时间周转时间带权周转时间H);printf(M%st%4.2ft%4.2ft%4.2f%4.2ft%4.2ft%
5、4.2fu,pl->name,pl->submittime,pl->servicetime,pl->starttime,pl->finishtime,pl->zt,pl->dzt);}voidgetlnput()intnum;printf(H作业个数:”);scanf(n%dM,&n);for(num=0;numID,&p・>name,&p・>submittime,&p・>serviceti
6、me);if(head==NULL){head=p;q=p;time=p->submittime;}if(p・>submittime
7、「先来先服务算法模拟”);//getlnput();//p=head;fcfs();at/=n;adt/=n;printf(H平均周转时间=%7.3ft平均带权周转时间=%7.3fH,at,adt);}"F:新建文件夹Debugll.exe"唤醒时间在时间2进程调度演示选择进程调度方法江S进程2进程31运行结果:阻塞i-3聽进程瞒进栓功功成鹫塞•・・•果果遐遊结结果果运运〔辽仃运运1112口王口王口汪口王运运运运0-0-0-0nnnMHOMnn1112进进一丁一丁mxxj-丁