资源简介
里面包括进程调度,银行家算法,多线程编程以及存储管理
代码片段和文件信息
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个文件信息
评论
共有 条评论