Skip to content

Commit 21de378

Browse files
committed
添加Blog地址
1 parent 65e0dce commit 21de378

21 files changed

+320
-170
lines changed

.idea/workspace.xml

Lines changed: 161 additions & 168 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,7 @@
1313
![](https://github.com/William-Hai/ProcessSchedulingRules/blob/master/images/20151119135721.jpg)
1414
# RFPF 非抢占式优先权算法
1515
结果</br>
16-
![](https://github.com/William-Hai/ProcessSchedulingRules/blob/master/images/20151120010912.jpg)
16+
![](https://github.com/William-Hai/ProcessSchedulingRules/blob/master/images/20151120010912.jpg)
17+
</br>
18+
</br>
19+
[本人博客首页](http://blog.csdn.net/lemon_tree12138)

src/org/rule/process/scheduling/TestSchedule.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@
1111
import org.rule.process.scheduling.model.ProcessSPFModel;
1212
import org.rule.process.scheduling.tools.StringTools;
1313

14+
/**
15+
* 测试类
16+
* Created by Naga on 2015/11/19.
17+
* Blog : http://blog.csdn.net/lemon_tree12138
18+
*/
1419
public class TestSchedule {
1520

1621
public static void main(String[] args) {
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,69 @@
11
package org.rule.process.scheduling.algorithm;
22

3+
import org.rule.process.scheduling.bll.ProcessBLL;
4+
import org.rule.process.scheduling.model.ProcessAFPFModel;
35
import org.rule.process.scheduling.model.ProcessModel;
6+
import org.rule.process.scheduling.sort.QKSort;
47

58
/**
69
* 抢占式优先权调度算法(绝对优先权)
10+
* 本算法可以从时间的角度来模拟
11+
* 即随着时间的推移,进程逐个被完成.
12+
* 当有一个优先更高的进程进来时,当前进程被挂起
713
* Created by Naga on 2015/11/19.
14+
* Blog : http://blog.csdn.net/lemon_tree12138
815
*/
916
public class AFPF implements ProcessSchedule {
1017

18+
private static final String TAG = AFPF.class.getSimpleName();
19+
1120
@Override
1221
public int execute(ProcessModel... processList) {
22+
if (processList == null || processList.length == 0) {
23+
System.out.println(TAG + ">数据为空");
24+
return -1;
25+
}
26+
27+
if (!(processList instanceof ProcessAFPFModel[])) {
28+
System.out.println(TAG + ">数据类型出错");
29+
return -2;
30+
}
31+
32+
ProcessAFPFModel[] processes = (ProcessAFPFModel[]) processList;
33+
boolean[] runFlag = new boolean[processes.length]; // 记录所有进程是否运行结束
34+
long[] comingTime = new long[processes.length];
35+
// TODO
36+
recordComingTime(processes, comingTime);
37+
ProcessAFPFModel currentProcess;
38+
long currentTime = 0;
39+
while(!ProcessBLL.noProcessWaitting(runFlag)) {
40+
//
41+
42+
currentTime++;
43+
}
44+
1345
return 0;
1446
}
47+
48+
49+
50+
/**
51+
* 记录下当前进程的到达时间
52+
*
53+
* @param array
54+
* 进程队列
55+
* @param times
56+
* 进程到达时间列表
57+
*/
58+
private void recordComingTime(ProcessAFPFModel[] array, long[] times) {
59+
if (times == null || times.length == 0) {
60+
times = new long[array.length];
61+
}
62+
63+
for (int i = 0; i < array.length; i++) {
64+
times[i] = array[i].getComingTime();
65+
}
66+
67+
QKSort.quickSort(times);
68+
}
1569
}

src/org/rule/process/scheduling/algorithm/EDF.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
/**
66
* 最早截止时间优先即EDF(Earliest Deadline First)算法
77
* Created by Naga on 2015/11/19.
8+
* Blog : http://blog.csdn.net/lemon_tree12138
89
*/
910
public class EDF implements ProcessSchedule {
1011

src/org/rule/process/scheduling/algorithm/FCFS.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
/**
77
* 先来先服务算法
88
* Created by Naga on 2015/11/19.
9+
* Blog : http://blog.csdn.net/lemon_tree12138
910
*/
1011
public class FCFS implements ProcessSchedule {
1112

src/org/rule/process/scheduling/algorithm/LLF.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
/**
66
* 最低松弛度优先即LLF(Least Laxity First)算法
77
* Created by Naga on 2015/11/19.
8+
* Blog : http://blog.csdn.net/lemon_tree12138
89
*/
910
public class LLF implements ProcessSchedule {
1011

src/org/rule/process/scheduling/algorithm/ProcessSchedule.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
* 进程调度接口
77
* 其他的进程调度算法类都是要来实现这个接口
88
* Created by Naga on 2015/11/19.
9+
* Blog : http://blog.csdn.net/lemon_tree12138
910
*/
1011
public interface ProcessSchedule {
1112

src/org/rule/process/scheduling/algorithm/RFPF.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
/**
88
* 非抢占式优先权算法(相对优先权)
9-
* RFPF
109
* Created by Naga on 2015/11/19.
10+
* Blog : http://blog.csdn.net/lemon_tree12138
1111
*/
1212
public class RFPF implements ProcessSchedule {
1313

src/org/rule/process/scheduling/algorithm/SPF.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
/**
88
* 短进程优先
99
* Created by Naga on 2015/11/19.
10+
* Blog : http://blog.csdn.net/lemon_tree12138
1011
*/
1112
public class SPF implements ProcessSchedule {
1213

0 commit comments

Comments
 (0)