文档详情

先来先服务调度算法-实验四报告.doc

发布:2018-10-28约1.16千字共4页下载文档
文本预览下载声明
操作系统实验四 设计先来先服务进程调度模拟算法 实验提示: 进程个数至少5个以上(动态),也可让用户动态输入,每个进程由一个进程控制块来标识,进程控制块的内容根据情况自己设计,但至少要有进程名、进程状态、到达时间、估计运行时间信息; 设计一个先进先出队列和系统时间,调度时,总是选择队列头部(到达时间最早)的进程;当进程到达时间小于系统时间时,进程执行,当在当前时间没有到达的进程时,可安排延时来模拟闲逛进程。 由于本实验为模拟实验,所以被选中调度进程并不实际启动运行,而仅执行按估计运行时间延时,并输出进程的开始和结束运行信息模拟进程的运行,而且省去进程的现场保护和现场恢复工作。 在所设计的程序中应有显示或打印语句,能显示或打印就绪队列中的进程、正运行进程的进程名、开始运行时间、结束运行时间等,给出各进程的周转时间和平均周转时间。 实验要求: 实验报告中要给出流程图和源程序,源程序中要附有详细的注释, 给出程序运行时的输入值和运行结果 总结收获或对该题的改进意见和见解。 流程图: P=HEAD ; i=0 P=HEAD ; i=0 P=Q;P=P-NEXT; P=P-NEXT; Q-STARTTIME=TIME Q-STATE=’T 开始 i++;输出执行进程信息 结束 P-STATE==’F’? Q-ARRIVETIME TIME i n ? Q-STARTTIME=ARRIVETIME Q-STATE=’T’ Y N Y N N Y 源程序: 输入值: ID 进程名 到达时间 服务时间 1 A 2 3 2 B 3 4 3 C 4 5 运行结果: 总结收获: 通过本次实验,我了解到如果早就绪的进程排在就绪队列的前面,迟就绪的进程排在就绪队列的后面,那么先来先服务总是把当前处于就绪队列之首的那个进程调度到运行状态。也就说,它只考虑进程进入就绪队列的先后,而不考虑它的下一个CPU周期的长短及其他因素。FCFS算法简单易行,是一种非抢占式策略,但性能却不大好。先来先服务的调度算法:最简单的调度算法,既可以用于作业调度 ,也可以用于程序调度,当作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,优先从后备队列中,选择一个或多个位于队列头部的作业,把他们调入内存,分配所需资源、创建进程,然后放入“就绪队列”,直到该进程运行到完成或发生某事件堵塞后,进程调度程序才将处理机分配给其他进程。有利于长作业(进程)而不利于短作业(进程)和CPU繁忙型作业(进程)而不利于I/O繁忙型作业(进程)。
显示全部
相似文档