毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

虚拟存储器-操作系统课程设计报告

更新时间:2009-7-1:  来源:毕业论文

虚拟存储器-操作系统课程设计报告
// int.cpp : 定义控制台应用程序的入口点。
//

#include<string.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define block_length 128
#define page_length 7
#define length 4 //加载的物理块个数
int pages[4]={0,1,2,3}; //该数组保存物理块对应的页号
int k;// 该数组的队列标记
struct pagetable{
        int pagenum;   //页号
     int flag;       //页标志,1表示存在主寸中,0表示在外存
     int blocknum;    //块号
     int flag_modify;  //修改标志
     int local_disk;   //磁盘位置
}pt[7]={{0,1,5,0,011},{1,1,8,0,012},{2,1,9,0,013},{3,1,1,0,021},{4,0,-1,0,022},{5,0,-1,0,023},{6,0,-1,0,121}};
 

//显示页的信息
void display1()
{   int i;
    printf("-------------------------------------------------------------------------------\n");
 printf("页号\t\t标志\t\t主存块号\t\t修改标志\t磁盘位置\n");
 for(i=0;i<page_length;i++)
    {
  
  printf(" %d\t\t%d\t\t%d\t\t\t%d\t\t  %d\n",pt[i].pagenum,pt[i].flag,pt[i].blocknum,pt[i].flag_modify,pt[i].local_disk);
 }
 printf("-------------------------------------------------------------------------------\n");
}
//显示页的信息
void display()
{   int i;
    printf("-------------------------------------------------------\n");
 printf("页号\t\t标志\t\t主存块号\t磁盘位置\n");
 for(i=0;i<page_length;i++)
    {
  
  printf(" %d\t\t%d\t\t%d\t\t%d\t\n",pt[i].pagenum,pt[i].flag,pt[i].blocknum,pt[i].local_disk);
 }
 printf("--------------------------------------------------------\n");
}
//地址转换及产生缺页中断
void dizhibianhuan()
{    int p,q;
     int stop=0;
  char r;
   do{
    printf("请输入要进行变换的页号和单元号\n\n");
loop: scanf("%d %d",&p,&q);
  getchar();
      if(p>6||q>127)
  {
   if(p>6)
    printf("该页不存在,页号范围0-6,请重新输入页号与单元号\n");
         else
    printf("越界,单元号范围0-127,请重新输入页号与单元号\n");
         goto loop;  //转到LOOP重新输入
   }
  else
  {
   if(pt[p].flag==1)
   {  
    printf("\n该页号和单元号的详细信息如下:\n");
    getchar();
    printf("页号\t\t标志\t\t主存块号\t磁盘位置\n");
       printf(" %d\t\t%d\t\t%d\t\t%d\t\n",pt[p].pagenum,pt[p].flag,pt[p].blocknum,pt[p].local_disk);
             printf("\n绝对地址为:\n");
    getchar();
       printf("%d\n",pt[p].blocknum*block_length+q);   //输出绝对地址
   }
   else
   {   printf("页号为 %d不在主存中,产生缺页中断\n\n",p);  //产生缺页中断
      }
  }
       printf("\n是否继续下一条指令,是则输入Y,否则输入N \n");
    scanf("%c",&r);
    if(r=='N')
     stop=1;       //是否停止继续下一条指令,stop为一停止,否则继续
   }while(!stop);
}
//先进先出处理缺页中断
void FIFO()
{    int p,q,i;
     int stop=0;
  char r;
       int k=0,m=0;;
  do
    {
     printf("请输入要进行变换的页号和单元号\n\n");
loop1:  scanf("%d %d",&p,&q);

  getchar();
 
      if(p>6||q>127)
  {
   if(p>6)
    printf("该页不存在,页号范围0-6,请重新输入页号与单元号\n");
         else
    printf("越界,单元号范围0-127,请重新输入页号与单元号\n");
   goto loop1;
   }
  if(pt[p].flag==1)
  { 
loop:       printf("\n该页的详细信息如下:\n\n");
    getchar();
    printf("页号\t\t标志\t\t主存块号\t修改标志\t磁盘位置\n\n");
       printf(" %d\t\t%d\t\t%d\t\t%d\t\t  %d\n",pt[p].pagenum,pt[p].flag,pt[p].blocknum,pt[p].flag_modify,pt[p].local_disk);
             printf("\n绝对地址为:\n");
    getchar();
          printf("%d\n\n",pt[p].blocknum*block_length+q);
     printf("指令是否是存,是则输入Y,否则输入N\n");
           scanf("%c",&r);
     if(r=='Y')
     {
      pt[p].flag_modify=1;478

[1] [2] [3] [4] [5] [6] 下一页

虚拟存储器-操作系统课程设计报告下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。