• 大小: 39KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-23
  • 语言: Java
  • 标签:

资源简介

里面包括进程调度,银行家算法,多线程编程以及存储管理

资源截图

代码片段和文件信息

package 实验1;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Scanner;

public class 进程调度 {
public static void main(String[] args) {
     Node course[]=new Node[8];
     Scanner scanner=new Scanner(System.in);
System.out.println(“请输入进程数目(5~8个)“);
int N=scanner.nextInt();          //进程数量
for(int i=0;i {
course[i]=new Node();
}
System.out.println(“请分别输入每个进程的等待时间和执行时间“);
for(int i=0;i {
//System.out.println(“请输入“+(i+1)+“个进程的进程名“);
course[i].name=i+1;
//System.out.println(“请输入“+(i+1)+“个进程的等待时间“);
course[i].arriveTime=(int)(Math.random()*100+1);
//System.out.println(“请输入“+(i+1)+“个进程的执行时间“);
course[i].runTime=(int)(Math.random()*100+1);
}
System.out.println(“输入完成“);
System.out.println();
for(int i=0;i {
System.out.println(course[i].name+“ “+course[i].arriveTime+“ “+course[i].runTime);
}
System.out.println(“请选择使用的调度算法“);
System.out.println(“ 1  FCFS(先来先服务算法)“);
System.out.println(“ 2  SJF(短作业优先算法)“);
System.out.println(“ 3  SS(轮转调度算法)  “);
int choose=scanner.nextInt();
switch (choose) {
case 1:
System.out.println(“先来先服务算法调度顺序为:“);
System.out.println(“进程名       等待时间       运行时间“);
        FCFS(courseN);
break;
case 2:
System.out.println(“短作业优先算法调度顺序为:“);
System.out.println(“进程名       等待时间       运行时间“);
SJF(courseN);
break;
case 3:
System.out.println(“输入时间间隔:“);
SS(courseN);
break;
default:
System.out.println(“非法输入!!!  程序终止!“);
System.exit(-1);
break;
}
}
    //先到先服务算法
    public static void FCFS(Node course[]int N)
    {
     Queue q=new PriorityQueue(compare);
     for(int i=0;i     {
     q.add(course[i]);
     }
    
     for(int i=0;i     {
     Node outPut=q.poll();
     System.out.println(“  “+outPut.name+“     “+outPut.arriveTime+“      “+outPut.runTime);
     }
    }
    //短作业优先算法
    public static void SJF(Node course[]int N)
    {
     boolean flage[]=new boolean[8];  //用于标记
     for(int i=0;i<8;i++)
     {
     flage[i]=false;
     }
     int count=N;    //未到达的进程数
     Queue q=new PriorityQueue(compare1);
      int min=Integer.MAX_VALUE;
      int min1=Integer.MAX_VALUE;
        int flag1=-1;   //下标
        for(int i=0;i        {
        if(!flage[i])
        {
        if(course[i].arriveTime           {
           min=course[i].arriveTime;
           flag1=i;
           min1=course[i].runTime;
           }
        }
        }
        for(int i=0;i        {
        if(course[i].arriveTime==min)
        {
        if(course[i].runTime        flag1=i;
        }
        }
        //int flag1=searchMin(courseNflage);
        q.add(course[flag1]);
       flage[flag1]=true;
       in

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-11-23 21:25  操作系统\
     文件         301  2018-11-15 15:23  操作系统\.classpath
     文件         388  2018-11-15 15:23  操作系统\.project
     目录           0  2018-11-23 21:25  操作系统\.settings\
     文件         598  2018-11-15 15:23  操作系统\.settings\org.eclipse.jdt.core.prefs
     目录           0  2018-11-26 14:19  操作系统\bin\
     目录           0  2018-11-26 14:19  操作系统\bin\实验1\
     文件         383  2018-11-26 14:19  操作系统\bin\实验1\Node.class
     文件         796  2018-11-26 14:19  操作系统\bin\实验1\进程调度$1.class
     文件         793  2018-11-26 14:19  操作系统\bin\实验1\进程调度$2.class
     文件        5935  2018-11-26 14:19  操作系统\bin\实验1\进程调度.class
     目录           0  2018-11-26 14:19  操作系统\bin\实验2\
     文件        4071  2018-11-26 15:08  操作系统\bin\实验2\银行家算法.class
     目录           0  2018-11-26 14:19  操作系统\bin\实验3\
     文件        4322  2018-11-26 14:19  操作系统\bin\实验3\test.class
     文件         890  2018-11-26 14:19  操作系统\bin\实验3\多线程编程$1.class
     文件         456  2018-11-26 14:19  操作系统\bin\实验3\多线程编程$tcb.class
     文件        5093  2018-11-26 14:19  操作系统\bin\实验3\多线程编程.class
     文件         971  2018-11-27 09:36  操作系统\bin\实验3\多线程编程第二版$1.class
     文件         492  2018-11-27 09:36  操作系统\bin\实验3\多线程编程第二版$tcb.class
     文件        5257  2018-11-27 09:36  操作系统\bin\实验3\多线程编程第二版.class
     目录           0  2018-11-27 11:05  操作系统\bin\实验4\
     文件         395  2018-11-27 22:32  操作系统\bin\实验4\存储管理$node.class
     文件        7792  2018-11-27 22:32  操作系统\bin\实验4\存储管理.class
     目录           0  2018-11-26 14:27  操作系统\bin\实验5\
     文件         395  2018-11-26 14:58  操作系统\bin\实验5\磁盘调度.class
     目录           0  2018-11-26 14:02  操作系统\src\
     目录           0  2018-11-23 21:25  操作系统\src\实验1\
     文件        7265  2018-11-16 18:20  操作系统\src\实验1\进程调度.java
     目录           0  2018-11-23 21:25  操作系统\src\实验2\
     文件        4707  2018-11-26 15:08  操作系统\src\实验2\银行家算法.java
............此处省略8个文件信息

评论

共有 条评论