Subversion Repositories programming

Rev

Rev 413 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
412 ira 1
/*******************************************************************************
2
 * SJFScheduler.java
3
 *
4
 * This file holds the implementation of the SJFScheduler class, which is a
5
 * Shortest Job First Scheduler, non-preemptive.
6
 *
7
 * Copyright (c) 2006, Ira W. Snyder (devel@irasnyder.com)
8
 *
9
 * Permission is hereby granted, free of charge, to any person obtaining a copy
10
 * of this software and associated documentation files (the "Software"), to deal
11
 * in the Software without restriction, including without limitation the rights
12
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
 * copies of the Software, and to permit persons to whom the Software is
14
 * furnished to do so, subject to the following conditions:
15
 *
16
 * The above copyright notice and this permission notice shall be included in
17
 * all copies or substantial portions of the Software.
18
 *
19
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
25
 * IN THE SOFTWARE.
26
 ******************************************************************************/
27
 
28
import java.util.Vector;
29
import java.lang.ClassCastException;
30
 
31
class SJFScheduler implements Scheduler
32
{
33
    private class SJFProcess implements Comparable
34
    {
35
        public final Process proc;
36
        public final int add_time;
37
 
38
        public SJFProcess (Process proc, int add_time)
39
        {
40
            this.proc = proc;
41
            this.add_time = add_time;
42
        }
43
 
44
        // negative if this < rhs
45
        // positive if this > rhs
46
        public int compareTo (Object o)
47
        {
48
            if (! (o instanceof SJFProcess))
49
                throw new ClassCastException();
50
 
51
            SJFProcess rhs = (SJFProcess)o;
52
 
53
            return this.add_time - rhs.add_time;
54
        }
55
    }
56
 
57
    private Vector<SJFProcess> processes;
58
 
59
    public SJFScheduler ()
60
    {
61
        this.processes = new Vector<SJFProcess> ();
62
    }
63
 
64
    public void addProcess (Process proc, int add_time)
65
    {
66
    }
67
 
68
    public void run ()
69
    {
70
    }
71
}
72
 
73
/* vim: set ts=4 sts=4 sw=4 expandtab: */
74