欢迎来到天天文库
浏览记录
ID:32765315
大小:200.87 KB
页数:14页
时间:2019-02-15
《广工操作系统课设17》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、操作系统课程设计学院计算机学院题目两级调度专业班级学号姓名指导教师(2016年1月)目录1设计思想说明1.1设计环境VC6.01.2设计思想实现作业与进程的两级调度,其屮作业调度是高级调度。使用读取文件的input函数模拟输入井,在制定位置放置一个写有作业信息的txt文件,因为是作业调度是高级调度,所以首先对输入井的内容进行作业调度,作业调度模块使用结构体数组WORKmodel实现,对其该结构体数组进行FCFS或短作业优先的算法排序(根据结构体数组内的成员信息进行数组的排序),就绪队列由双向链表实现,满足要求的作业能进入到该队列,即在链表中占有一节点,同时,该链表也实现进
2、程调度的功能,使用FCFS或短进程优先算法,即对队列中的节点按照耍求排序,最后计算平均周转时间、执行的队列以及打卬有关信息2系统结构内存空间磁盘机数目就绪队列占用cpu的进程3数据结构的说明typedefstructWORKmodel//结构体数组,模拟各个作业的信息{intname;//作业名字intarrivetime;//到达时间intserve!ime;//服务吋间charstate;//状态intsize;//需要占用的内存intneedmachine;//需要的磁带机数目intstarttime;//开始执行时间}WORK;typedefstructAI.RE
3、ADY//链表,实现就绪队列以及进程排序功能{intname;/作业名字intarrivetime;//到达时间intservetime;//服务时间structALREADY*front;structALREADY*ncxt;}READY;4算法流程图读入函数结构体数组5主耍函数列表函数原型功能入口、出口参数说明intinput(void)读取数据voidsetstate()设置作业的初始状态voidFCFSzuoye()作业的FCFS调度voidDJCzuoyc()作业的短作业优先调度intcreat(inti)创建链表函数,增加节点队列中第i个作业voidrange
4、(intn)将作业插入就绪队列,更改内存等资源信息voidFCFSJinchengO/进程的FCFS算法intDJCJinchengO短进程优先调度voidrunning(intn)运行函数,当前占用CPUC的进程信息第n个作业正在运行voiddisplay(intn)打卬函数释放第n个作业voidfreelist()释放函数,进程完成后从链农屮释放以及状态更改为'F4测试与分析.exe—・"D:MicrosoftVisualStudio'os•果设Debug两级凋度隅趣已完成'嬲懿时Er,"D:MicrosoftVisualStudioos课设Debug两
5、级凋度欢迎使用,预输入已完成,请冋使用以下哪种作业调度算法:乳先来先服务算法b.短作业优先算法备间使用以下哪种进程调度算法:乳先来先服务算法b.短进程优先算法孑wD:MicrosoftVisualStudioos课设Debug两级凋度】0prrnr^q^.flWArninn<<;^7用户使用说明把测试文档(txt)放到指定路径中,宜接运行程序即可。8附录带注释的源程序。如果提交源程序软盘,可以只列出程序文件名清单。#include#include#include#include#defin
6、eSIZE5typedefstructWORKmodel//结构体数组,模拟各个作业的信息intname;intarrivetime;intscrvctimc;charstate;intsize;intneedmachine;intstarttime;}WORK;WORKviews[SIZE];FILE*f;charbuf[256];char*p;typedefstmctALREADY//链表,实现就绪队列以及进程排序功能{intname;intarrivetime;intscrvctimc;structALREADY*front;stmctALREADY*next;{R
7、EADY;READY名head二NULL;intWORKSIZE=100;intMachineNumber=4;intnowtime;intrunrange⑸;intinput(void)//录入数据函数,模拟输入井功能{if(NULL==(f=fopen(HE:\ljn\test2.txt,',T'))){fprintf(stdcrr,"Cannotopenfile:tcst2.txt");return1;Iintn=0;while(1){讦(n==SIZE)break;if(NULL==fgets(buf,256,f)
此文档下载收益归作者所有