⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sys_resource.java

📁 进程调度的设计与实现
💻 JAVA
字号:
package design;



public class Sys_resource {
  int[] resourceHave;
  int[] resourceUse;
  int[] resourceFree;
  int[] resourceMayFree;

  public Sys_resource() {
    resourceHave=new int[4];
    resourceUse=new int[4];
    resourceFree=new int[4];
    resourceMayFree=new int[4];
  }
  public Sys_resource(int[] a){
    resourceHave=new int[a.length];
    resourceUse=new int[a.length];
    resourceFree=new int[a.length];
    resourceMayFree=new int[a.length];
    for(int i=1;i<=a.length-1;i++)
      resourceMayFree[i]=resourceFree[i]=resourceHave[i]=a[i];
  }

  public boolean canBeBestDistribute(int[] a){
    for(int i=1;i<=a.length-1;i++)
      if(a[i]>resourceMayFree[i])
        return false;
    return true;
  }

  public int[] bestDistrubire(int[] a){ //尽力分配
    int[] temp=new int[a.length];
    for(int i=1;i<=a.length-1;i++)
      temp[i]=Math.min(a[i],resourceFree[i]);
    for(int i=1;i<=resourceHave.length-1;i++){
      resourceFree[i]-=temp[i];
      resourceMayFree[i]-=temp[i];
      resourceUse[i]+=temp[i];
    }
    return temp;
  }

  public boolean canBeAddDistribute(int[] a){
    for(int i=1;i<=a.length-1;i++)
      if(a[i]>resourceFree[i])
        return false;
    return true;
  }

  public boolean addDistribute(int[] a,int [] allResource){
    for(int i=1;i<=a.length-1;i++)
      if(a[i]>resourceFree[i])
        return false;
    for(int i=1;i<=a.length-1;i++){
      resourceFree[i]-=a[i];
      resourceUse[i]+=a[i];
      resourceMayFree[i]+=allResource[i];
    }
    return true;
  }

  public boolean canBeAllDistribute(int[] a){
    for(int i=1;i<=a.length-1;i++)
      if(a[i]>resourceFree[i])
        return false;
    return true;
  }

  public boolean allDistrubite(int[] a){//完全分配
    for(int i=1;i<=a.length-1;i++)
      if(a[i]>resourceFree[i])
        return false;
    int[] temp=new int[a.length];
    for(int i=1;i<=a.length-1;i++)
      temp[i]=a[i];
    for(int i=1;i<=a.length-1;i++){
      resourceFree[i]-=temp[i];
      resourceUse[i]+=temp[i];
    }
    return true;
  }
 // public boolean
 public void freeResource(int[] a){
   for(int i=1;i<=a.length-1;i++){
     resourceUse[i]-=a[i];
     resourceFree[i]+=a[i];
   }
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -