内容发布更新时间 : 2024/12/28 8:42:10星期一 下面是文章的全部内容请认真阅读。
操作系统实验报告
学 院 计算机学院 专业班级 网络工程(3)班 学 号 3116005001 姓 名 关启聪 指导老师 彭重嘉
2018年12月
实验一 进程调度
一、目的要求:
用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。
二、基本功能:
本实验实现了四种进程调度算法:采用轮转(RR)、先来先服务(FCFS)、最短进程优先、静态优先级。
每种功能都可以打印每个作业到达时间,完成时间,周转时间,带权周转时间,以及这组作业的平均周转时间和带权平均周转时间。
三、实现思路
短作业优先调度算法,是指对短作业或短进程优先调度的算法。他们可以分别用于作业调度和进程调度,短作业优先的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将他们调入内存运行。而短进程优先调度算法则是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给他,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再度重新调度。 本程序采用了非抢占式短作业优先调度。而非抢占式这种方式,一旦把处理机分配给某进程后,便让该进程一直执行,直至该进程完成或发生某事件而被阻塞时,才再把处理机分配给其它进程,决不允许某进程抢占已经分配出去的处理机。
四.主要的数据结构
struct pcb { /* 定义进程控制块PCB */ char name[10]; //进程名 char state; //状态 int super; //优先数
int ntime; //运行需要的时间 int rtime; //已经运行的时间 struct pcb* link; }*ready=NULL,*p;
五.算法流程图