• 大小: 679KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-12-20
  • 语言: C/C++
  • 标签: MFC  

资源简介

操作系统实验,用一个MFC界面实现了页面置换算法,功能挺强大的,希望对大家有用

资源截图

代码片段和文件信息

#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 nameint supperint needtime)//入队依次将新增的结点插到队尾
{
PCB *p;
p=new PCB;
    CTime t=CTime::GetCurrentTime();//获取当前时间
CString NowTime=t.Format(“%H:%M:%S“);

p->name=name;
p->atime=NowTime;
p->ntime=needtime;
p->supper=supper;
p->state=“等待“;
p->rtime=0;
p->Number=1;
p->next=NULL;

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

    count++;
}

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

int Clinkqueue::CheckPCB()//检查队头元素时间片到时若运行时间到则删除队头若未到则将队头插到队尾
{

PCB *p=front;
if(QueueEmpty())
{
AfxMessageBox(“队列为空“);
return 0;
}
else
{

if(p->rtimentime)//进程未完成
{
if(rear!=front)//不止一个结点时
{
rear->next=p;
front=p->next;
rear=p;
rear->next=NULL;
rear->state=“等待“;//将其原先的运行状态置回等待状态
}
front->state=“运行中...“;

}
else
{
front=p->next;
             
     if(rear==p)
    rear=NULL;
     count--;
     delete p;
 
 }
return 1;

}
}

CString Clinkqueue::GetProName(PCB *p)const
{
return p->name;

}

int Clinkqueue::GetProSupper(PCB *p)const
{
return p->supper;

}

int Clinkqueue::GetProNTime(PCB *p)const
{
return p->ntime;

}

int Clinkqueue::GetProRTime(PCB *p)const
{
return p->rtime;

}

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

}

PCB * Clinkqueue::GetRearPoint()const//获取队尾指针
{
     return rear;
}

void Clinkqueue::SetRearPoint(PCB * p)
{
    rear=p;
}
void Clinkqueue::SetFrontPoint(PCB * p)
{
    front=p;
}

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

}

/*void Clinkqueue::JumpQueue(CString name int supper int needtime)//按优先数大小插队
{
PCB *p;
p=new PCB;
    CTime t=CTime::GetCurrentTime();//获取当前时间
CString NowTime=t.Format(“%H:%M:%S“);

p->name=name;
p->supper=supper;
p->atime=NowTime;
p->ntime=needtime;
p->rtime=0;
p->state=“等待“;
p->next=NULL;

if(!queueempty())
{
if(p->supper>front->supper)//插入到队首
{
p->next=front;
front=p;

}
else
{
PCB *q*r;
    q=front;
r=front;
    while(q&&p->supper<=q->supper)
q=q->next;
      if(q==NULL)//插入到队尾
  {
 
     rear->next=p;
     rear=p;
  }
      else
  {
                 while(r->next!=q)//插到适当位置
        r=r->next;
         r->next=p;
         p->next=q;
 
  }
}

}
else
    front=rear=p;//生成第一个结点

    count++;//队列长度加1
}*/

void Clinkqueue::SetMaxSupper()//将优先数最高的结点设为队头结点
{
if(!QueueEmpty())//队列不为空
{
    front->state=“等待“;
PCB *p*q;

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

     文件      22594  2008-11-23 02:34  Process\Debug\linkQueue.obj

     文件     323584  2008-12-03 00:03  Process\Debug\Process.exe

     文件      14630  2008-11-23 02:34  Process\Debug\Process.obj

     文件     418816  2008-12-03 00:03  Process\Debug\Process.pdb

     文件       3780  2008-12-03 00:01  Process\Debug\Process.res

     文件      61295  2008-12-03 00:03  Process\Debug\ProcessDlg.obj

     文件     105692  2008-11-23 02:34  Process\Debug\StdAfx.obj

     文件     372736  2008-12-03 00:03  Process\Debug\vc60.pdb

     文件       4732  2008-11-23 02:34  Process\linkQueue.cpp

     文件       1260  2008-11-23 02:34  Process\linkQueue.h

     文件      37960  2008-12-03 00:01  Process\Process.aps

     文件       2384  2008-12-06 23:21  Process\Process.clw

     文件       2159  2008-11-11 00:28  Process\Process.cpp

     文件       4304  2008-10-29 15:57  Process\Process.dsp

     文件        520  2008-10-28 13:18  Process\Process.dsw

     文件       1335  2008-10-28 13:06  Process\Process.h

     文件      99328  2008-12-06 23:21  Process\Process.ncb

     文件      55808  2008-12-06 23:21  Process\Process.opt

     文件        248  2008-12-06 23:21  Process\Process.plg

     文件       7898  2008-12-03 00:01  Process\Process.rc

     文件        878  2008-12-01 23:56  Process\Process.sln

    ..A..H.      7168  2008-12-01 23:56  Process\Process.suo

     文件       4820  2008-12-01 23:56  Process\Process.vcproj

     文件       1427  2008-12-01 23:56  Process\Process.vcproj.D5FB82E11FE74B5.Administrator.user

     文件      16804  2008-12-03 00:03  Process\ProcessDlg.cpp

     文件       1914  2008-11-11 15:35  Process\ProcessDlg.h

     文件       3597  2008-10-28 13:06  Process\ReadMe.txt

     文件       1078  2008-10-28 13:06  Process\res\Process.ico

     文件        399  2008-10-28 13:06  Process\res\Process.rc2

     文件       1329  2008-11-01 14:07  Process\resource.h

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

评论

共有 条评论