fcfs.cpp
来自「CPU调度算法---模拟OS所使用的所有调度算法,包括创建一个kernel,PC」· C++ 代码 · 共 91 行
CPP
91 行
# if !defined(__PCB_H)
#include "CPU\PCB.h"
# endif
# if !defined(__KERNEL_H)
#include "CPU\Kernel.h"
# endif
# if !defined(__READYQUEUE_H)
#include "CPU\ReadyQ~1.h"
# endif
# if !defined(__SCHEDULER_H)
#include "CPU\Schedu~1.h"
# endif
# if !defined(__DOS_H)
#include <dos.h>
# endif
void getJobs();
class FCFS : public Scheduler
{
public:
FCFS()
{
}
void start()
{
while(ReadyQueue.NoOfJobs)
{
if(!Kernel.JobStatus)
{
PCB *p = ReadyQueue.getPCB(1);
if(p != NULL)
Kernel.changePCB(p);
else
getJobs();
}
else
break;
}
}
void addJob(char * filename)
{
PCB *p = new PCB(filename);
ReadyQueue.addPCB(p);
}
};
FCFS fs;
void getJobs()
{
char command[100] = "";
char file[10][100];
int i=0;
while( (strcmp(command,"e")!=0) && (strcmp(command,"E")!=0) )
{
printf("\nPrompt >");
scanf("%s",command);
if( (strcmp(command,"s") ==0) || (strcmp(command,"S")==0) )
{
for(int j=0;j<i;j++)
fs.addJob(file[j]);
i = 0;
fs.start();
}
else
{
strcpy(file[i],command);
i++;
}
if(i>=10)
{
for(int j=i;j<i;j++)
fs.addJob(file[i]);
i=0;
fs.start();
}
}
}
void main()
{
fs = FCFS();
getJobs();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?