实验5 进程调度算法的模拟实现(5.16实验)
时间:2025-04-14
时间:2025-04-14
实验四进程调度算法的模拟实现
【实验目的】
1.理解和掌握课堂上讲的进程调度算法,并编程模拟实现调度过程。
2.研究进程调度算法的实现方法。
【实验要求】
编程模拟实现传统的进程调度算法:FCFS调度算法、SPF调度算法、RR调度算法、优先级调度等算法。
【实验内容】
1.(基础必做题)编程模拟实现进程调度算法(FCFS与SPF算法,实现80分)
(1)设计一个具有n(5≦n≦10)个并发进程的进程调度程序。每个进程用一个进程控制块(PCB)表示。进程控制块一般包含下列信息:进程名,进程到达时间、进程要求服务的时间,还需占用CPU的时间、进程优先级数以及进程的状态等。具体参数可以根据调度算法的不同进行增删。
(2)调度程序应包含两种不同的调度算法:FCFS和SPF调度算法。运行时,可由用户通过终端任选一种,以便进行各种算法的分析比较。
(3)每个调度算法应能显示和打印:各个进程的PID,状态(运行态“R”、等待态“W”等)和参数(已运行时间/还需运行的时间等)的变化情况,便于观察进程的调度过程。
(4)所有进程结束后,要打印输出各进程的执行次序,各进程的完成时间,各进程的周转时间及带权周转时间等参数指标。
2.(进阶选作题)编程模拟实现进程调度算法(RR时间片轮转与PF优先级调度算法,实现90分)
(1)设计一个具有n(10≦n)个并发进程的进程调度程序。每个进程用一个进程控制块(PCB)表示。进程控制块一般包含下列信息:进程名,进程到达时间、进程要求服务的时间、进程优先级数、占用CPU的时间以及进程的状态等。具体参数可以根据调度算法的不同进行增删。
(2)调度程序采用RR时间片轮转调度算法进行调度。运行时,应能显示和打印:时间
片大小(可自定,或由随机函数确定),各个进程的PID,状态(运行态“R”、等待态“W”等)和参数(已运行时间/还需运行的时间等)的变化情况,便于观察进程的调度过程。
(4)所有进程结束后,要打印输出各进程的执行次序,各进程的完成时间,各进程的周转时间及带权周转时间等参数指标。
3.(进阶选做题)编程模拟实现进程调度算法(高响应比优先调度算法,实现100分)
(1)设计一个具有6个并发进程的进程调度程序,时间片自行设定。每个进程用一个进程控制块(PCB)表示。进程控制块一般包含下列信息:进程名,进程到达时间、进程要求服务的时间、进程优先级数、占用CPU的时间以及进程的状态等。具体参数可以根据调度算法的不同进行增删。
(2)每次进行调度时,调度程序应采用高响应比优先算法进行调度。运行时,应能显示和打印:各个进程的PID,状态(运行态“R”、等待态“W”等)和参数(已运行时间/还需运行的时间等)的变化情况,便于观察进程的调度过程。
(4)所有进程结束后,要打印输出各进程的执行次序,各进程的完成时间,各进程的周转时间及带权周转时间等参数指标。
【实验报告】
1.按实验内容调试运行通过程序。
2. 提交两类文档:①代码文件,例如:diaodu1.c,diaodu2.c ②说明文档(程序说明.doc),文档中要对程序运行结果进行截图,并分析、对比不同算法的特点。
3. 总结上机调试过程中所遇到的问题和解决方法及感想。