?? fcfs.cpp
字號:
# 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();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -