首页 > 网站 > 建站经验 > 正文

进程调度模拟程-序

2019-11-02 15:18:43
字体:
来源:转载
供稿:网友

 我们课程设计,我选择了一个进程调度模拟,希望大家给看看,多提意见,好久没来发帖子了。

  #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()

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表