1、 1 课程设计报告课程设计报告 课程名称: 操作系统 课程设计题目: 对处理机的调度 姓 名: 系: 信息与机电工程系 专 业: 计算机科学与技术 年 级: 学 号: 指导教师: 职 称: 2013 年 12 月 31 日 2 目目 录录 1 1 设计目的设计目的4 4 2 2 设计要求设计要求4 4 3 3 设计方案设计方案4 4 3.1 先到先服务算法 4 3.2 短进程优先算法 6 4 4 设计内容设计内容8 8 4.1 输入进程信息 8 4.2 先到先服务算法输出 9 4.3 短进程优先算法输出 9 5 5 总结总结1010 6 6 参考文献参考文献1010 3 对处理机的调度对处理机
2、的调度 1.1.设计目的设计目的 进程是操作系统最重要的概念之一,进程调度是操作系统内核的重要功能, 本实验要求用 C 语言编写一个进程调度模拟程序,使用短作业优先调度算法,高 响应比调度算法,先到先服务算法实现进程调度。可以手动阻塞与唤醒。本实验 可加深对进程调度算法的理解。 在 OS 中,调度的实质是一种资源分配,调度算法即指:根据系统的资源分 配策略所规定的资源分配算法。对于不同的系统和系统目标,通常采用不同的调 度算法,如在批处理系统中,为照顾为数众多的短作业,采用短作业有限调度算 法; 把当前处于就绪队列之首的那个进程调度到运行状态, 采用先到先服务算法。 采用算法时,则要考虑多方面
3、因素,以便达到最佳效果。 2.2.设计要求设计要求 对处理机的调度 设计一个有多个进程共行的进程调度程序。 进程调度算法:先到先服务算法,短作业优先调度算法 每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息: 到达时间,服务时间,完成时间,周转时间,帯权周庄时间,平均周转时间,平 均帯权周转时间。 int ArrivalTimeMax;/到达时间 int ServiceTimeMax;/服务时间 int FinishTimeMax;/完成时间 int WholeTimeMax;/周转时间 double WeightWholeTimeMax;/帯权周转时间 double Av
4、erageWT_FCFS,AverageWT_SJF; /平均周转时间 double AverageWWT_FCFS,AverageWWT_SJF;/平均帯权周转时间 3 3. .设计方案设计方案 3.1 先到先服务算法 4 采用先来先服务 FCFS 调度进程运行,计算每个进程的周转时间,带权周转 时间,并且计算所有进程的平均周转时间,带权平均周转时间 void FCFS()/找最早到达的。 coutendl“ 先 到先 服务算 法(FCFS) “endlendl; for(i=0;iNowTime)/假如进程到达的时间比现在已经运行的 时间 NowTime 大,说明在 NowTime 时刻进程未到达 NowTime=ArrivalTimei;/把进程的到达时间赋给 NowTime NowTime+=ServiceTimei;/把进程的服务时间加到 NowTime 上 FinishTimei=NowTime;/计算完成时间 WholeTimei=FinishTimei-ArrivalTimei;/计算周转时间=完成 时间-到达时间 WeightWholeTimei=(double)WholeTimei/ServiceTimei;/ 计 算 带权周转时间=周转时间/服务时间 SumWT+=WholeTimei;