1 / 19
文档名称:

多级反馈队列调度.txt

格式:txt   页数:19页
下载后只包含 1 个 TXT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

多级反馈队列调度.txt

上传人:zbfc1172 2015/5/14 文件大小:0 KB

下载得到文件列表

多级反馈队列调度.txt

文档介绍

文档介绍:#include <>
#include <>
#include <>
#include <>//time(),difftime()函数所需头文件
#include <>//system(),Sleep(),GetAsyncKeyState()函数所需头文件
//转载请注明出处:http://hi./liangxiaowen1989/blog/item/
#define TRUE 1
#define FALSE 0
#define BACKSPACE 8//退格键
#define ENTER 13//回车键
#define TAB 9//Tab键
#define ESC 27//Esc键
#define MAX_BIT 10//最大位数
#define QUEUE_NUM 6//就绪队列数
#define FINISH (QUEUE_NUM - 1)//将最后一个就绪队列设为完成队列
enum TypeOfScheduling {FCFS = 1,SJF,HRN,FB};//先来先服务调度,短进程优先调度,高响应比优先调度,多级反馈队列调度
typedef struct PcbNode{//进程控制块
int num;//进程号
char name[111];//进程名称
double reach_time;//到达时间
double serve_time;//服务时间
double begin_time;//开始执行时间
double finish_time;//完成时间
double turnaround_time;//周转时间
double remaining_time;//剩余执行的时间
struct PcbNode * next;
double response_ratio;//响应比,只HRN队列用到
double countdown;//倒计时,只FB队列用到
int exec_status_num;//0为等待执行,1为正在执行,2为执行完毕,只FB队列用到
}PcbNode, * Pcb;
typedef struct QNode{//就绪队列
Pcb front;//队头指针
Pcb rear;//队尾指针
double average_turnaround_time;//平均周转时间
int time_slice;//时间片,只FB队列用到
}QNode, * PQueue;
int pcb_num = 0;//进程数目
time_t first_time;//
//---------------------------------------------------函数申明---------------------------------------------------------------
void Begin();//开始界面
void ClearQueue(PQueue PQ);//清空队列
void CopyPcb(Pcb dest,Pcb src);//source拷贝到destination
void Create(PQueue PQ);//创建进程
int DeQueue(PQueue PQ,Pcb * p);//出队
void DestroyQueue(PQueue * PQ);//销毁队列
void Display(PQueue PQ);//显示队列
void DisplayFB(PQueue ReadyQueue[],int * save_x,int * save_y);//显示FB就绪队列
void EnQueue(PQueue PQ,Pcb p);//入队
void Execute(PQueue PQ,int scheduling_num);//执行FB队列
void ExecuteFB(PQueue ReadyQueue[]);//执行多反馈就绪队列进程
int GetNum(int lower_limit,int upper_limit);//获得(下限,上限)范围间的数字
void getxy(int *x,int *y);//获取当前光标位置
void gotoxy(int x,int y);//使光标到达指定位置
void InitQueue(PQueue * PQ);//构造一个空就绪队列
void Result(PQueue PQ);//显示执行