readyqueue.h

来自「CPU调度算法---模拟OS所使用的所有调度算法,包括创建一个kernel,PC」· C头文件 代码 · 共 69 行

H
69
字号
# if !defined(__PCB_H)
	#include "CPU\PCB.h"
# endif

# if !defined(__READYQUEUE_H)
	#define __READYQUEUE_H
# endif

class ReadyQueue
{
public:
	PCB head;
	PCB tail;
	int NoOfJobs;

	ReadyQueue()
	{
		head.next = NULL;
		tail.next = NULL;
		NoOfJobs = 0;
	}

	void addPCB(PCB *p)
	{
		NoOfJobs++;
		/*if(NoOfJobs == 1)
		{
			head.next = p;
			tail.next = p;
			return;
		}*/
		PCB * ptr = &head;
		while (ptr->next != NULL)
		{
			ptr = ptr->next;
		}
		ptr->next = p;
		tail.next = p;
	}

	void delPCB(PCB *p)
	{
		PCB * ptr = &head;
		PCB * ptr1 = NULL;
		while (ptr != NULL)
		{
			if(ptr == p)
			{
				ptr1->next = ptr->next;
				delete(ptr);
				NoOfJobs--;
			}
			ptr1 = ptr;
			ptr = ptr->next;
		}
		tail.next = ptr;
	}

	PCB* getPCB(int i)
	{
		PCB * ptr = &head;
		while(i>0)
		{
			i--;
			ptr = ptr->next;
		}
		return ptr;
	}
}ReadyQueue;

⌨️ 快捷键说明

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