进程调度算法模拟,用动态优先数及时间片轮转法实现进程调度_Java语言模拟实现
来源:互联网 发布:艾科特餐饮软件 编辑:程序博客网 时间:2024/05/18 02:56
//process类
public class process {
private int ID_name; //进程ID名
private int PRIORITY; //优先数
private int CPUTIME; //进程已进行时间
private int ALLTIME; //进程还需要的时间
private String STATE; //进程状态
//设置 process类的构造方法
process(int i, int PRIORITY , int CPUTIME , int ALLTIME , String STATE)
{
this.ID_name = i;
this.PRIORITY = PRIORITY;
this.CPUTIME = CPUTIME;
this.ALLTIME = ALLTIME;
this.STATE = STATE;
}
public int getID_Name()
{
return ID_name;
}
public int getPRIORITY()
{
return PRIORITY;
}
public int getCPUTIME()
{
return CPUTIME;
}
public int getALLTIME()
{
return ALLTIME;
}
public String getSTATE()
{
return STATE;
}
public int setPRIORITY(int i)
{
return PRIORITY-=i;
}
public int setCPUTIME(int i)
{
return CPUTIME+=i;
}
public int setALLTIME(int i)
{
return ALLTIME-=i;
}
}
//process_Arraylist类
package ArrayList;
import java.util.ArrayList;
public class processArrayList {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<process> process_list = new ArrayList<>(); //创建数组列表存放进程对象
// 将创建的对象加入数组列表中
process_list.add( new process(0, 9, 0, 3, "ready" ));
process_list.add( new process(1, 38, 0, 3, "ready" ));
process_list.add( new process(2, 30, 0, 6, "ready" ));
process_list.add( new process(3, 29, 0, 3, "ready" ));
process_list.add( new process(4, 0, 0, 4, "ready" ));
System.out.println("ID_name PRIORITY CPUTIME ALLTIME STATE ");
for (process p : process_list)
System.out.printf(" %d %d %d %d %s \n",
p.getID_Name(),p.getPRIORITY(),p.getCPUTIME(),p.getALLTIME(),p.getSTATE() );
while(process_list.size() > 0)
{
int id = getID( process_list) ;
process p = process_list.get(id);
if(p.getALLTIME() == 0)
{
System.out.println("运行完成的进程:");
System.out.printf(" %d %d %d %d %s \n",
p.getID_Name(),p.getPRIORITY(),p.getCPUTIME(),p.getALLTIME(),p.getSTATE() );
process_list.remove(id);
}
else
{
System.out.println("正在运行的进程:");
System.out.printf(" %d %d %d %d %s \n",
p.getID_Name(),p.getPRIORITY(),p.getCPUTIME(),p.getALLTIME(),p.getSTATE() );
p.setPRIORITY(3); //优先级减3
p.setCPUTIME(1); //运行时长加1
p.setALLTIME(1); // 还需时长减1
System.out.println("当前进程运行完的结果:");
System.out.printf(" %d %d %d %d %s \n",
p.getID_Name(),p.getPRIORITY(),p.getCPUTIME(),p.getALLTIME(),p.getSTATE() );
}
}
}
public static int getID( ArrayList<process> process_list)
{
int size = process_list.size();
int id = 0;
int p = process_list.get(0).getPRIORITY();
for(int i=1; i<size ; i++)
{
if( process_list.get(i).getPRIORITY() >p )
{
p = process_list.get(i).getPRIORITY();
id = i;
}
}
return id;
}
}
- 进程调度算法模拟,用动态优先数及时间片轮转法实现进程调度_Java语言模拟实现
- c++模拟操作系统进程调度算法(优先数,时间片轮转)
- 时间片轮转调度算法的C语言模拟实现
- 用C语言实现对N个进程的简单时间片轮转法Round Robin的调度模拟
- 操作系统进程调度模拟程序 基于优先级调度和时间片轮转调度算法
- 进程调度:时间片轮转调度算法
- 时间片轮转算法和优先级调度算法 C语言模拟实现
- 时间片轮转算法和优先级调度算法 C语言模拟实现
- 进程调度-时间片轮转法(Java简单实现)
- C++实现操作系统进程调度(时间片轮转法)
- Java模拟最短作业优先、时间片轮转、最高响应比三种进程调度算法
- C语言模拟最高优先数优先进程调度算法
- 进程调度算法--时间片轮转算法
- 时间片轮转进程调度算法
- 进程调度-时间片轮转算法
- 操作系统实验一——模拟进程调度时间片轮转算法
- 进程调度算法–时间片轮转调度算法
- java按时间片轮转进程调度算法实现
- FaceBook通过accesstoken获取用户的信息
- LeetCode(117) Populating Next Right Pointers in Each Node II
- 小认识监听器接口
- MYSQL卸载
- linux spi子系统
- 进程调度算法模拟,用动态优先数及时间片轮转法实现进程调度_Java语言模拟实现
- HDU_4115_Eliminate the Conflict(2-SAT)
- findbugs安装方法
- linux + busybox编译以及在qemu中运行
- 用Darwin和live555实现的直播框架
- 4412裸机程序之中断
- http请求
- matlab学习笔记(八)---空域滤波增强
- opencv下char数组数据显示