• 大小: 168KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签:

资源简介

操作系统页面置换模拟,功能简单实用,思路清晰,内含报告。

资源截图

代码片段和文件信息

package osd;
import java.io .BufferedInputStream;
import java.util.*;
public class page_replacement {
    private int n;//内储页框
    private int m;//访问次数
    private int F;//没能直接找到的次数(F/m)为缺页率
    private Listlist=null;//访问地址走向
    private Mapmap=null;//访问内储页框
       public page_replacement(){
      F=0;
      map=new HashMap();//存储每一个内储页框所存的内容 
      Scanner cin=new Scanner(new BufferedInputStream(System.in));
      System.out.println(“请输入用户访问页面号序列:“);//获得访问页面号序列
      list=new ArrayList();
      String s=cin.nextLine();
      String []s1=s.split(“ “);
      m=s1.length;
      for (int i=0;i      list.add(Integer.valueOf(s1[i]));//将地址码逐个放入表中
      System.out.println(“请输入内储叶框数量:“);
      n=cin.nextInt(); 
      menu();
      switch(cin.nextInt()){
         case 1:OPT();break;
         case 2:FIFO();break;
         case 3:LRU();break;
          }
         cin.close();
   }
   public void menu(){//选择页面置换算法
      System.out.println(“**** 选择最佳置换算法请按1 **********“);
      System.out.println(“**** 选择先进先出置换算法请按2 *******“);
      System.out.println(“**** 选择最近最远未使用置换算法请按3 ***“);
      }

   public void OPT(){
        int j;
        for (int i=0;i         {
         int k=list.get(i);//待处理元素
         if (!map.containsValue(k)){
         F++;
         if (map.size()          int temp=map.size();
         map.put(temp k);
         }
         else{//如果装满了
         int index=0;//把哪个位置的淘汰出去
         int min=0;//初始最长长度
         for (int t=0;t          {
         for (j=i+1;j          if (list.get(j)==map.get(t)){//第一次找到
         if (j-i>min){
         index=t;//更新值
         min=j-i;
         }
         break;
         }
             }
         if (j==m){//如果到最后
         index=t;
         min=j-i;
         }                    
         }
         map.remove(index);
         map.put(indexk);//修改表内元素
         }
         }
         System.out.println(map);
        }
       System.out.println(“缺页中断次数为:“+F);
       System.out.println(“页面置换次数为:“+(F-n));
       System.out.println(“缺页率为:“+F*1.0/m);
 }
   public void FIFO(){
 Queueq=new linkedList();
  for (int i=0;i      {
       int k=list.get(i);//待处理元素
     if (!map.containsValue(k)){
     F++;
     if (map.size()     int temp=map.size();
     map.put(temp k);
     q.offer(temp);
     }
     else
     {
         int temp=q.poll();//排除的元素位置
     map.remove(temp);
     map.put(tempk);
     q.offer(temp);
    
          }
     System.out.println(map);
     }
    }
      System.out.println(“缺页中断次数为:“+F);
      System.out.println(“页面置换次数为:“+(F-n));
  System.out.println(“缺页率为:“+F*1.0/m);
   }
   public void LRU(){
 Listlinkedlist=new linkedLis

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

     文件     323568  2018-01-11 19:33  操作系统20152027页面置换模拟\20152027+田创世+页面置换模拟.doc

     文件       4363  2018-01-11 18:33  操作系统20152027页面置换模拟\OS\src\osd\page_replacement.java

     目录          0  2018-10-06 23:59  操作系统20152027页面置换模拟\OS\src\osd

     目录          0  2018-10-06 23:59  操作系统20152027页面置换模拟\OS\src

     目录          0  2018-10-06 23:59  操作系统20152027页面置换模拟\OS

     目录          0  2018-10-06 23:59  操作系统20152027页面置换模拟

----------- ---------  ---------- -----  ----

               327931                    6


评论

共有 条评论

相关资源