• 大小: 3.66MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-01
  • 语言: 其他
  • 标签: 源代码  C++  MFC  

资源简介

1)每一个进程有一个PCB,其内容可以根据具体情况设定。 2)可以在界面设定的互斥资源(包括两种:输入设备与输出设备)的数目 3)进程数、进入内存时间、要求服务时间可以在界面上进行设定 4)进程之间存在一定的同步与互斥关系,可以通过界面进行设定,其表示方法如下:进程的服务时间由三段组成:I2C10O5(表示进程的服务时间由2个时间片的输入,10个时间片的计算,5个时间片的输出) 进程间的同步关系用一个段表示:W2,表示该进程先要等待P2进程执行结束后才可以运行因此,进程间的同步与互斥关系、服务时间可以统一用四段表示为:I2C10O5W2 5)可以在运行中显示各进程的状态:就绪、阻塞、执行 6)采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态以及相应的阻塞队列 7)具有一定的数据容错性

资源截图

代码片段和文件信息

#include “stdafx.h“
#include“linkQueue.h“


int Clinkqueue::QueueEmpty()const//判断队列是否为空
{
 return front==NULL&&rear==NULL;

}

int Clinkqueue::GetQueueLength()const//获取队列长度
{
return count;
}

void Clinkqueue::EnQueue(CString idint arrivetimeint inputtimeint ctimeint outputtimeCString wait)//入队依次将新增的结点插到队尾
{
PCB *p;
p=new PCB;
p->processID=id;
p->arrivetime=arrivetime;
p->inputtime=inputtime;
p->ctime=ctime;
p->outputtime=outputtime;
p->wait=wait;
p->rtime=0;
p->flags1=0; 
p->flags2=0;
p->state=““;
p->finishtime=0;
p->next=NULL;

if(!QueueEmpty())
{
rear->next=p;
rear=p;
}
else
    front=rear=p;

    count++;
}

void Clinkqueue::DeQueue(PCB *p)//删除p元素
{
PCB *q;
q=front;
if(QueueEmpty())
return;
if(rear==front)
{
rear=front=NULL;
count--;
return;
}
if(p==front)
{
front=p->next;
p->next=NULL;
count--;
return;
}

while(q->next!=NULL)
{
if(q->next==p)
{
q->next=p->next;
if(p==rear)
     rear=q;
count--;
break;
}
q=q->next;

}


}

int Clinkqueue::CheckPCB(CString id)    //检查是否存在指定id的节点
{

PCB *p=front;
if(QueueEmpty())
{
return 0;
}

while(p)
{
if(p->processID==id) return 1; 
p=p->next;
}
return 0;
}




CString Clinkqueue::GetProID(PCB *p)const
{
return p->processID;

}


int Clinkqueue::GetCTime(PCB *p)const//CPU
{
return p->ctime;

}

int Clinkqueue::GetRTime(PCB *p)const     //已运行时间
{
return p->rtime;

}

PCB * Clinkqueue::GetFrontPointer()const//获取队头指针
{
return front;

}

int Clinkqueue::GetFinishTime(PCB *p)const//获取某个结点的R时间
{
return p->finishtime;

}

int Clinkqueue::GetATime(PCB *p) const//获取某个结点的到达时间
{
return p->arrivetime;

}
int Clinkqueue::GetITime(PCB *p) const//获取某个结点的I时间
{
return p->inputtime;

}
int Clinkqueue::GetOTime(PCB *p) const//获取某个结点的O时间
{
return p->outputtime;

}
CString Clinkqueue::GetWait(PCB *p)const
{
return p->wait;

}
// CString GetWait(PCB *)const;



CString Clinkqueue::GetState(PCB *p)//获取进程控制块的状态
{
if(!QueueEmpty())//队列不为空
      
return p->state;

else
return ““;

}


void Clinkqueue::EnQueue(PCB *p)
{
if(!p)
   return;
p->next=NULL;
     if(QueueEmpty())
  {
  front=rear=p;
 }
  else
  {
  rear->next=p;
  rear=p;
  }
  // rear->next=NULL;
  count++;
}



int Clinkqueue::alltime(int aint f)//计算两个时间相差的秒数
{
int c;
c=f-a;
return c;
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4909  2012-07-08 10:51  time\Debug\APPMODUL.obj

     文件          0  2012-07-08 10:51  time\Debug\APPMODUL.sbr

     文件      26825  2012-07-09 06:33  time\Debug\linkQueue.obj

     文件          0  2012-07-09 06:33  time\Debug\linkQueue.sbr

     文件     105812  2012-07-08 10:51  time\Debug\StdAfx.obj

     文件    1368165  2012-07-08 10:51  time\Debug\StdAfx.sbr

     文件    4989952  2012-07-09 13:14  time\Debug\time.bsc

     文件     127040  2012-07-09 13:14  time\Debug\time.exe

     文件     237312  2012-07-09 13:14  time\Debug\time.ilk

     文件      27196  2012-07-09 06:33  time\Debug\time.obj

     文件    7272232  2012-07-08 10:51  time\Debug\time.pch

     文件     500736  2012-07-09 13:14  time\Debug\time.pdb

     文件       4456  2012-07-09 09:29  time\Debug\time.res

     文件          0  2012-07-09 06:33  time\Debug\time.sbr

     文件      84749  2012-07-09 13:14  time\Debug\timeDlg.obj

     文件          0  2012-07-09 13:14  time\Debug\timeDlg.sbr

     文件     361472  2012-07-09 14:45  time\Debug\vc60.idb

     文件     421888  2012-07-09 13:14  time\Debug\vc60.pdb

     文件       2638  2012-07-08 16:09  time\linkQueue.cpp

     文件       1545  2012-07-09 06:33  time\linkQueue.h

     文件       3543  2012-07-01 16:28  time\ReadMe.txt

     文件       1078  2012-07-01 16:28  time\res\time.ico

     文件        396  2012-07-01 16:28  time\res\time.rc2

     文件       2153  2012-07-09 09:29  time\resource.h

     文件        202  2012-07-04 15:42  time\StdAfx.cpp

     文件       1052  2012-07-03 20:08  time\StdAfx.h

     文件      24048  2012-07-09 10:01  time\time.aps

     文件       3111  2012-07-09 19:03  time\time.clw

     文件       2206  2012-07-07 21:30  time\time.cpp

     文件       4599  2012-07-08 11:09  time\time.dsp

............此处省略14个文件信息

评论

共有 条评论