《操作系统》课程设计说明书-进程调度模拟设计——先来先服务、优先级法.doc
《《操作系统》课程设计说明书-进程调度模拟设计——先来先服务、优先级法.doc》由会员分享,可在线阅读,更多相关《《操作系统》课程设计说明书-进程调度模拟设计——先来先服务、优先级法.doc(20页珍藏版)》请在三一文库上搜索。
1、武汉理工大学操作系统课程设计说明书学 号: 0120810340102课 程 设 计课程名称操作系统程序设计题 目进程调度模拟设计先来先服务、优先级法班 级计算机0801班学 号姓 名指导教师2010年01月17日课程设计任务书学生姓名: 专业班级: 计算机0801 指导教师: 工作单位: 计算机科学与技术学院 题 目: 进程调度模拟设计先来先服务、优先级法 初始条件:1预备内容:阅读操作系统的处理机管理章节内容,对进程调度的功能以及进程调度算法有深入的理解。2实践准备:掌握一种计算机高级语言的使用。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1模拟进程调
2、度,能够处理以下的情形: 能够选择不同的调度算法(要求中给出的调度算法); 能够输入进程的基本信息,如进程名、优先级、到达时间和运行时间等; 根据选择的调度算法显示进程调度队列; 根据选择的调度算法计算平均周转时间和平均带权周转时间。2设计报告内容应说明: 需求分析; 功能设计(数据结构及模块说明); 开发平台及源程序的主要部分; 测试用例,运行结果与运行情况分析; 自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他方法(如果有,简要说明该方法)
3、;v)对实验题的评价和改进意见,请你推荐设计题目。时间安排:设计安排一周:周1、周2:完成程序分析及设计。周2、周3:完成程序调试及测试。周4、周5:验收、撰写课程设计报告。(注意事项:严禁抄袭,一旦发现,一律按0分记)指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日进程调度模拟设计先来先服务、优先级法1需求分析1.1设计目的1.阅读操作系统的处理机管理章节内容,对进程调度的功能以及进程调度算法有深入的理解。2.掌握一种计算机高级语言的使用。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.2设计要求1.能够选择不同的调度算法(要求中给出的调
4、度算法);2.能够输入进程的基本信息,如进程名、优先级、到达时间和运行时间等;3.根据选择的调度算法显示进程调度队列;4.根据选择的调度算法计算平均周转时间和平均带权周转时间。2. 功能设计2.1数据结构1.进程的结构定义:struct processchar name10; /进程名int no; /进程序号double arriveTime; /进程到达时间double needTime; /进程运行时间int state; /进程状态int priority; /进程优先级double startTime; /进程开始执行时间double endTime; /进程执行完毕时间proces
5、s *next;2.使用链表储存进程并按照到达时间排列顺序开始链表空?插到链头比较当前结点的到达时间与连续两个结点(p1,p1-next)的到达时间。在两结点之间?插入它们之间p1=p1-next结束void insert(process *current)if(head!=NULL)/如果只有一个节点if(head-next=NULL)/如果比链头到达时间早,则插入链头if(current-arriveTimearriveTime)current-next=head;head=current;else current-next=NULL;head-next=current;/如果至少有两个结
6、点elseprocess *p1=head;if(head-arriveTimecurrent-arriveTime)current-next=head;head=current;else int flag=1;while(p1-next!=NULL)/如果在两个结点之间则插入if(p1-arriveTimearriveTime&p1-next-arriveTimecurrent-arriveTime)current-next=p1-next;p1-next=current;flag=0;break;else p1=p1-next;/如果到达时间最大,则插入到最后if(flag=1)p1-ne
7、xt=current;current-next=NULL;else head=current;2.2先来先服务算法设计2.2.1创建进程 void createFCFS()process *q1=new process;coutcount;coutendl;int number=1;while(numberno=number;cout进程序号numberendl;coutq1-name;coutq1-arriveTime;coutq1-needTime;q1-next=NULL;insert(q1);number+;coutendlnext;p=NULL?前一个结束,后一个是否到达p结点:开始
8、时间=到达时间结束时间=开始时间+执行时间系统时间=结束时间并计算周转时间和带权周转时间p=p-next;p结点:开始时间=系统时间结束时间=开始时间+执行时间系统时间=结束时间并计算周转时间和带权周转时间p=p-next;结束void printFCFS()process *p=new process;double sysTime=0;/记录系统时间double turn=0;/平均周转时间double turnw=0;/平均带权周转时间if(head=NULL) cout没有进程调度startTime=head-arriveTime;head-endTime=head-arriveTime
9、+head-needTime;sysTime=head-endTime;turn=turn+(head-endTime-head-arriveTime);turnw=turnw+(head-endTime-head-arriveTime)/head-needTime;p=head-next;while(p!=NULL)/如果前一个结束后一个还没到达if(p-arriveTimesysTime)p-startTime=p-arriveTime;p-endTime=p-startTime+p-needTime;sysTime=p-endTime;turn=turn+(p-endTime-p-arr
10、iveTime);turnw=turnw+(p-endTime-p-arriveTime)/p-needTime;p=p-next;elsep-startTime=sysTime;p-endTime=p-startTime+p-needTime;sysTime=p-endTime;turn=turn+(p-endTime-p-arriveTime);turnw=turnw+(p-endTime-p-arriveTime)/p-needTime;p=p-next;cout.setf(ios:left);coutsetw(10)进程序号setw(10)进程名setw(10)到达时间setw(10)
11、开始时间setw(10)执行时间setw(10)结束时间endl;process *temp=head;while(temp!=NULL)cout.setf(ios:left);coutsetw(10)nosetw(10)namesetw(10)arriveTimesetw(10)startTimesetw(10)needTimesetw(10)endTimenext;cout平均周转时间turn/countendl平均带权周转时间turnw/countnext!=NULL)process *t=new process;t=head-next;head-next=t-next;delete t
12、;head=NULL;2.3优先级算法设计2.3.1创建进程void createPRIO()process *q1=new process;coutcount;coutendl;int number=1;while(numberno=number;cout进程序号numberendl;coutq1-name;coutq1-arriveTime;coutq1-needTime;q1-next=NULL;insert(q1);number+;coutendl2)process *n0=head;process *n1=n0-next;process *n2=n1-next;for(int i=0
13、;iprioritypriority)n1-next=n2-next;n0-next=n2; n2-next=n1;n1=n0-next;n2=n0-next-next;n0=n1;n1=n2;n2=n2-next;2.3.3输出调度结果开始链表空?head结点:开始时间=到达时间结束时间=开始时间+执行时间系统时间=结束时间并计算周转时间和带权周转时间p=head-next;p=NULL?p结点:开始时间=系统时间结束时间=开始时间+执行时间系统时间=结束时间标记为已执行并计算周转时间和带权周转时间p=p-next;到达&未执行?结束void printPRIO()process *p=ne
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 说明书 进程 调度 模拟 设计 先来先 服务 优先级
链接地址:https://www.31doc.com/p-3259542.html