网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

操作系统课程设计-缺页中断c++

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
操作系统课程设计-缺页中断c++源码|精品课程网站设计|课程设计网报告总结心得
#include#includeclass List;class item{public: friend class List;private: item(int p=0,int s=0,int b=0,int l=0){page=p;sign=s;block=b;locate=l;next=NULL;} item *next; int page; int sign; int block; int locate;};class List{public: List(){list=0;} List(int p=0,int s=0,int b=0,int l=0){list=new item(p,s,b,l);} int check(int p); int insert(int p,int s,int b,int l); int print(); int append(int p,int s,int b,int l); int length(); void reverse();private: item *list; item *end();};int List :: print(){ if(list==0)  return 0; cout<<"页号  标志  主存块号  磁盘地址"<page<<"      "<sign<<"      "<block<<"      "<locate<next; } cout<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->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(){ 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); //list.reverse(); list.print(); char a[12]={'+','+','*','I','O','-','M','+','I','O','+','I'}; int b[12]={70,50,15,21,56,40,53,23,37,78,1,84}; int m=0,n,j; for(int i=0;i<12;i++) {  cout<<"*************************"<<"第"<>n;  m=list.check(n);  j=checkp(n);  if(j==1)  {   if(m!=-1)       cout<<"该指令的物理地址为:"<
 

 else if(m!=-1&&j==0)  {   cout<<"该页所在的主存块号为:"<
 } return 1;}int checkp(int n){ int a=0; int k=1; for(int c=(int)sqrt(double (n))+2;c>=1;c--)  {   if(n==k)       a=1;   else      k=k*2;  } return a;}
设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师