我们课程设计,我选择了一个进程调度模拟,希望大家给看看,多提意见,好久没来发帖子了。
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
#include<stdio.h>
#include<string.h> const int MAXCOMMANDLEN =50; /////////////////////////////////////////////////////////////////////////////////////
//
// PROCESS
//
/////////////////////////////////////////////////////////////////////////////////////
class Process //进程类
{
friend class CPU;
protected:
static int init_ID; //随机进程ID
int ID; //进程ID
char runText[MAXCOMMANDLEN]; //进程指令数组
int IP; //进程指令指针,保存进程指令执行到的具体位置
bool ISuseSource; //此进程是否使用资源,ture:使用中 false : 未使用
bool ISblocked; //此进程是否被阻塞 ture:阻塞 false :未阻塞
int unitTime; //进程单位被cpu执行时间, 默认 1
int blockTime; //进程被阻塞时间
public:
static void RandID(); //随机生成进程ID
Process();
int getID();
int getIP();
void setIP(int);
void Runed(); //进程被cpu执行
int getUnittime(); //得到进程单位执行时间
int getBlcoktime(); //得到进程阻塞时间
void setBlocktime(int); //设置进程阻塞时间
void setUnittime(int); //设置进程单位执行时间
char getResult(int); //得到进程执行结果
char* getRuntext(); //得到进程执行的指令
void setBlockstate(bool); //设置阻塞状态
bool getBlockstate();
bool getISusesource(); //得到资源的状态 使用 未使用
void setISusesource(bool); //设置资源的使用状态
}; int Process::init_ID; void Process::RandID()
{
srand( (unsigned)time( NULL ) );
init_ID=rand();
}
Process::Process()
{
ID=init_ID++;
int commandLen;
IP=0; cout<<"Please in put the text which process runed by CPU [#command#] :> ";
cin>>runText;
if( (commandLen=strlen(runText) ) > MAXCOMMANDLEN )
exit(0);
runText[commandLen]='#'; // 指令结束标志 '#'
runText[commandLen+1]='';
ISuseSource=false;
ISblocked=false;
unitTime=1;
blockTime=0;
}
void Process::Runed()
int Process::getID()
{
return ID;
} int Process::getIP()
{
return IP;
} void Process::setIP(int ip)
bool Process::getISusesource()
{
return ISuseSource;
} void Process::setISusesource(bool s)
char* Process::getRuntext()
{
return runText;
} int Process::getUnittime()
{
return unitTime;
}
int Process::getBlcoktime()
{
return blockTime;
} void Process::setBlocktime(int BT)
新闻热点
疑难解答