C语言
#include"head.h"
CPU::CPU()
{
busy=0;
stop=0;
pcruntime=0;
IRTime=0;
sum=0;
wait=0;
};
void CPU::sendin(PCB* L) //将进程信息放入CPU
{
if(L->PSW==0)
L->PSW++;
PC=L->Instruc_ID[L->PSW];
IR=L->Instruc_State[L->PSW-1];
IRTime=L->Instruc_Times[L->PSW-1];
PSW=L->PSW;
pcstate=1;
L->ProState=1;
if(IR==2)
stop=1;
busy=1;
};
//执行指令函数
void CPU::calculate(PCB *L)
{
interrupt(1000*IRTime);
cout<<"执行"<<L->ProID<<"的"<<L->Instruc_ID[PSW-1]<<endl;
pcruntime+=IRTime;
sum+=IRTime;
L->RunTimes+=IRTime;
if(L->AllTime==L->RunTimes)
{
busy=0;
return;
}
PSW++;
L->PSW=PSW;
if(PSW==L->InstrucNum)
PC="";
else
PC=L->Instruc_ID[PSW];
IR=L->Instruc_State[PSW-1];
IRTime=L->Instruc_Times[PSW-1];
if(IR==2)
stop=1;
else
stop=0;
};