⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class.h

📁 操作系统中实现进程调度中的多级反馈队列调度算法
💻 H
字号:
#ifndef PCB_H
#define PCB_H

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include "time.h"
#include<fstream>

using namespace std;

enum STATUS{RUN,READY,WAIT,FINISH};

struct PCBNode
{		
	int  processID;	          //进程ID
	STATUS  status;	          //进程状态
	int  priorityNum;	      //优先数
	int  reqTime;             //总的需要运行时间
	int  remainTime;          //剩下需要运行时间
	int  arriveTime;          //进入就绪队列时间
	int  startTime;           //开始运行时间
	int  finishTime;          //结束运行时间
	int  totalTime;           //周转时间
    float  weightTotalTime;	  //带权周转时间	
};

struct QueueNode 
{
	int ID;
	struct QueueNode * next;
};

typedef struct LinkQueue
{
	QueueNode *head;
	QueueNode *tail;
}LinkQueue,* ptrLinkQueue;

struct cpu_user 
{
	int ID;
	int exQueue;
	int picRemain;
};

class MFQ
{
public:
	MFQ::MFQ(int QueueNum,int *arr_time,int *req_time,int n);
    void MFQ::schedule();
	void MFQ::search_new_arrProcess();
	void MFQ::enterQueue(int i,int j);
	void MFQ::Initial_Queue(int i) ;  
	void MFQ::outQueue(int exQueue);
	int MFQ::emptyQueue(int QueueID);
	int MFQ::search_first_process(cpu_user &new_user);
	void MFQ::come_into_cpu(cpu_user new_cpu_user);
	void MFQ::run();
	int MFQ::finish_justify();
	void MFQ::kit_out_cpu(cpu_user cpu_cur_user);
	void MFQ::show_result();
	void MFQ::finsh_handle(cpu_user cpu_cur_user);
private:
	PCBNode * Process;
	LinkQueue *Q;
	int cur_time;
	int ProcessNum;
	int QueueNum;
	cpu_user cpu_cur_user;
};


#endif//PCB_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -