资源描述:
《操作系统实验1.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《操作系统》实验指导书一、多道程序的转换调度(学时2)实现多道程序的转换调度题目要求:(作业调度和进程调度结合在一起)①、作业流信息是从指定文本文件(TXT文件)中读取作业信息:作业号进入系统时间估计运行时间优先级内存需求量磁带机需求量都为整型②、作业调度算法:1、先来先服务;2、最短作业优先(二者选一)进程调度算法:1、先来先服务;2、基于优先级的算法(静态优先级)(二者选一)③、输出:作业序列格式:作业号时间间隔1800-810(/*8:00-8:10*/)2810-9001900-930平均周转时间:总的周转时间/作业总数周转时间就是作业结束时间减去作业
2、进入系统时间示例:#include#include#include#include#include#definenull0#definelensizeof(structjnote)structjcb{intstate;intnum;intin;intrun;intpri;intmem;inttape;}job[50];structjnote{intid;intin;intstart;intrun;intend;intpri;intsize;inttape;int*
3、maddr;structjnote*next;};intrest=4,memory[101],*mh=memory,logo=0,fid=0;structjcb*p=job;structjnote*jh=null,*rp=null,*jp=null;txt()/*从txt文件中作业流*/{FILE*fp;charpt;inti,space=0,j=0,data[100],h,k,count;charstr[10];for(i=0;i<100;i++)data[i]=-1;for(i=0;i<20;i++){job[i].num=-1;job[i].tape=-
4、1;job[i].state=-1;}i=0;fp=fopen("job.txt","r+");if(fp==NULL){printf("Cann'tthefile");exit(0);}while((pt=getc(fp))!=EOF){if(pt>='0'&&pt<='9'){str[i]=pt;i++;space=0;}else{if(pt==''
5、
6、pt==''){if(space==1)continue;else{str[i]=' ';data[j]=atoi(str);j++;i=0;space=1;}}}}for(h=0,k=0;dat
7、a[k]!=-1;k++,h++){job[h].num=data[k];k++;job[h].in=data[k];k++;job[h].run=data[k];k++;job[h].pri=data[k];k++;job[h].mem=data[k];k++;job[h].tape=data[k];}if(job[h-1].tape==-1){str[i]=' ';job[h-1].tape=atoi(str);}clrscr();for(i=0;job[i].num!=-1;i++);return(i);}rpend(start,run)/*计算进程的
8、结束时间*/intstart,run;{intend=0;inti=start%100+run;end=(start/100+i/60)*100+i%60;return(end);}time_time(end,in)/*计算周转时间或计算剩余的运行时间*/intin,end;{inttime;time=end/100*60+end%100-(in/100*60+in%100);return(time);}int*m_pd(intsize)/*内存判断*/{int*mp,*cp;inti=0;mp=cp=mh;while(*mp!=-1){while(*cp==
9、0){cp++;i++;}if(i>=size)return(mp);while(*cp==1)cp++;mp=cp;}return(null);}zy_div_free(mp,msize,tape,h)/*资源分配与释放*/int*mp,msize,tape,h;{int*cp,i=msize;cp=mp;if(h==1){for(;i>0;i--){*cp=1;cp++;}rest=rest-tape;return(1);}if(h==2){for(;i>0;i--){*cp=0;cp++;}rest=rest+tape;return(2);}}selec
10、trp(plogo,time)/*选择