实验一进程控制和调度.pdf
实验报告
课程名称操作系统班级实验日期
姓名学号实验成绩
实验名称进程控制和调度
实验
目的
用高级语言编写和调试进程调度的模拟程序,以加深对进程调度算法的理解。
及
要求
实
验
MicrosoftVisualStudio
环
境
1、自定义进程相关的数据结构;
实
2、利用MFC类库中的栈(queue),链表(list),向量(vector)等模板模拟进程控制块队
列、进程控制块优先级队列、统计信息链表及其指令集合;
验
3、利用MSDN和MFCAPI编程实现常见的进程控制和调度策略(先来先服务算法
(FCFS调度法)、短作业(进程)优先调度算法(SJ调度算法)、最高优先权优
内
先调度算法(优先调度算法)、时间片轮转算法(RR调度算法));
4、测试以上进程调度策略的周转时间、带权周转时间、平均周转时间和平均带权周
容
转时间,并定性评价它们的性能。
FCFS调度算法
SJ调度算法
Main()
算优先调度算法
法RR调度算法
描创建和显示进程状态算法:PCB*CreatPCB(intn)
FCFS调度算法
述功能:根据进程到达的顺序进行调度,先到达的进程先执行。在就绪队列中排的
越靠前越先执行
及算法:voidFCFS(PCB*head,PCB*over)
SJ调度算法
实功能:从就绪队列中选出剩余执行时间最短的就绪进程进行执行。执行结束后继
续从就绪队列中选出剩余执行时间最短的。直到所有进程都被执行完。
验算法:voidSJF(PCB*head,PCB*over)//sjf算法
优先调度算法(Prio):
步功能:从就绪队列中选出优先级别最高的进程进行执行。重复进行。直到所有的
所有的进程执行完毕。
骤算法:voidPrio(PCB*head,PCB*over)
RR调度算法:
功能:根据时间片的大小,对每个进程依次执行。时间片用完之后进程进入阻塞
的状态,重新得到时间片后接着执行。直到完成。
算法:voidRR(PCB*head,PCB*over,intt,intk)//时间片轮转法
调
试
过
先来先服务算法(FCFS调度法):
程
及
实
验
结
果
短作业(进程)优先调度算法(SJ调度算法):
最高优先权优先调度算法(优先调度算法):
时间片轮转算法(RR调度算法):
优点:程序中的数组采用了动态开辟的方法,有效地减少了对于空间的占用。提
总高了空间的利用率。输出的界面比较的