操作系统课程设计-模拟FIFO页面调度算法处理缺页中断c++源码 第2页

 

void List :: print()
{
 if(list==0)
  cout<<"页表中无数据!"<<endl;
 cout<<"页号   标志  主存块号  修改标志  磁盘地址"<<endl;
 item *pt=list;
 while(pt)
 {  
  cout<<"  "<<pt->page<<"      "<<pt->sign<<"      "<<pt->block<<"        "<<pt->changesign<<"        "<<pt->locate<<endl;
  pt=pt->next;
 }
 cout<<endl;
}
int List::append(int p,int s,int b,int l)
{
 item *pt=new item(p,s,b,l);
 if(list==0)
  list=pt;
 else
 {
  (end())->next=pt;
 }
 return 1;
}
item *List::end()
{
 item *prv,*pt;
 for(prv=pt=list;pt;prv=pt,pt=pt->next)
  ;
 return prv;
}
int List::insert(int p,int s,int b,int l)
{
 item *pt=new item(p,s,b,l);
 pt->next=list;
 list=pt;
 return 1;
}
int List::length()
{
 int cnt=0;
 item *pt=list;
 for(;pt;pt=pt->next,cnt++)
  ; 
 return cnt;
}
int List::check(int p)
{
 item *pt=list;
 int a=-1;
 for(;pt;pt=pt->next)
 {
  if(pt->page==p&&pt->sign==1)  
  a=pt->block;
 }  
    return a;
}
void List::reverse()
{
 item *pt,*prv,*tmp;
 prv=NULL;
 pt=list;
 list=end();
 while(pt!=list)
 {
  tmp=pt->next;
  pt->next=prv;
  prv=pt;
  pt=tmp;
 }
 list->next=prv;
}
int checkp(int n);
int main()
{
 int j=0;
 List list(0,1,5,11);
 list.append(1,1,8,12);
 list.append(2,1,9,13);
 list.append(3,1,1,21);
 //list.append(4,0,-1,22);
 //list.append(5,0,-1,23);
 //list.append(6,0,-1,121);
 j=list.length();

上一页  [1] [2] [3] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有