您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 42操作系统课程设计
操作系统课程设计2008-02-2701:48:38|分类:资料库|标签:|字号大中小订阅操作系统课程设计,用C语言实现操作系统的进程的模拟调度,设计时间一周,这个我一天时间就写出来了,而且还是A,我们那班就只有两个A,拿出来分享一下~~希望有帮助~题目如下批处理系统的作业调度模拟一、课程设计目的1、加深对作业概念的了解;2、深入了解批处理系统如何组织作业、管理作业和调度作业;3、巩固相关的理论知识;二、课程设计预备知识1、作业控制块的概念和结构;2、作业的创建;3、作业的调度算法;4、c语言的相关知识三、课程设计内容要求1、编写程序完成批处理系统中的作业块的建立、初始化和调度;2、要求采用响应比高优先的作业调度算法、短作业优先算法;四、具体要求1、首先确定作业控制块的内容;2、要求建立两个算法(调度)的子函数,并输出已分配作业的作业名;3、要求在主函数中创建JCB内容,并输出已创建的作业信息;4、要求设计菜单:可供用户进行选择,分别执行不同的调度;5、尽量使用C语言中的window函数来实现;源代码:#includestdlib.htypedefstructjcb{charname[4];intlength;intprinter;inttape;intruntime;intwaittime;structjcb*next;}JCB;JCB*head;inttape,printer;longmemory;shedule(){floatw,k;JCB*p,*q,*s,*t;do{p=head;s=NULL;q=NULL;k=0;while(p!=NULL){if(p-length=memory&&p-tape=tape&&p-printer=printer){w=(float)(p-waittime)/p-runtime;if(q==NULL||wk){k=w;q=p;t=s;}}s=p;p=p-next;}if(q!=NULL){if(t==NULL)head=head-next;elset-next=q-next;memory=memory-q-length;tape=tape-q-tape;printer=printer-q-printer;printf(Selects:%s\n,q-name);}}while(q!=NULL);}inital(){intw,k;JCB*p,*q,*s,*t;do{p=head;s=NULL;q=NULL;k=0;while(p!=NULL){if(p-length=memory&&p-tape=tape&&p-printer=printer){w=1/(p-runtime);if(q==NULL||wk){k=w;q=p;t=s;}}s=p;p=p-next;}if(q!=NULL){if(t==NULL)head=head-next;elset-next=q-next;memory=memory-q-length;tape=tape-q-tape;printer=printer-q-printer;printf(Selects:%s\n,q-name);}}while(q!=NULL);}main(){inti;intx,n;charname[4];intsize,tcount,pcount,wtime,rtime;JCB*p;memory=65536;tape=4;printer=2;head=NULL;printf(\npleaseinputsthequantityofJCB...\n);scanf(%d,&n);printf(---------------------------------------------------------------\n);for(i=0;in;i++){printf(|name|length|tape|printer|waittime|runtime|\n);scanf(%s\t%d\t%d\t%d\t%d\t%d,&name,&size,&tcount,&pcount,&wtime,&rtime);p=(JCB*)malloc(sizeof(JCB));strcpy(p-name,name);p-length=size;p-printer=pcount;p-tape=tcount;p-runtime=rtime;p-waittime=wtime;p-next=head;head=p;}printf(---------------------------------------------------------------\n[1]_TheresponsecomparesfirstthealgorithmHRN\n[2]_ShortworkfirstalgorithmSJF\n---------------------------------------------------------------\npleasechose[1]or[2]...\n);scanf(%d,&x);switch(x){case1:shedule();printf(---------------------------------------------------------------\n);break;case2:inital();printf(---------------------------------------------------------------\n);break;default:printf(\nerror..pleasetryagain!\n);main();}}附件里有程序说明这是运行结果:第一次执行程序:------------------------------------------------------------------------------------------------------输入作业名、作业大小、所需磁带机数、打印机数、等待时间、运行时间S14002114S22562131运行结果:采用高相应比算法调度的结果:为S2采用高相应比算法调度的结果:为S1Pleasepressanykeytocontinue…-------------------------------------------------------------------------------------------------------第二次执行程序:-------------------------------------------------------------------------------------------------------输入作业名、作业大小、所需磁带机数、打印机数、等待时间、运行时间S12261135S26003133运行结果:采用短作业优先调度算法的执行结果:S2采用短作业优先调度算法的执行结果:S1Pleasepressanykeytocontinue…---------
本文标题:42操作系统课程设计
链接地址:https://www.777doc.com/doc-5862711 .html