Rev 416 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/******************************************************************************** Process.java** Holds the Process class, which holds information about a process.** Copyright (c) 2006, Ira W. Snyder (devel@irasnyder.com)** Permission is hereby granted, free of charge, to any person obtaining a copy* of this software and associated documentation files (the "Software"), to deal* in the Software without restriction, including without limitation the rights* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell* copies of the Software, and to permit persons to whom the Software is* furnished to do so, subject to the following conditions:** The above copyright notice and this permission notice shall be included in* all copies or substantial portions of the Software.** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS* IN THE SOFTWARE.******************************************************************************//*** The Process class. This holds information about a simulated process.** @class CS431 Fall 2006* @author Ira W. Snyder (devel@irasnyder.com)*/public class Process{/** The Process' name */public final String name;/** The Process' burst time */public final int timeslice;/** The time when this process entered the run queue */public final int entered_at;/** The time when this process completed */public int finished_at = 0;/** The amount of time this Process has left */public int time_left;/** The amount of time this process spent waiting to execute */public int time_wait = 0;/*** Constructor for the Process class.** @param name this Process' name* @param timeslice the burst time for this process*/public Process (String name, int timeslice){this (name, timeslice, 0);}/*** Constructor for the Process class. This specifies a time* at which this process will be added to the run queue in* this scheduler.** @param name this Process' name* @param timeslice the burst time for this process* @param add_time the time at which this process will become valid*/public Process (String name, int timeslice, int add_time){this.name = name;this.timeslice = timeslice;this.time_left = timeslice;this.entered_at = add_time;}/*** Copy constructor for the Process class.** @param p the Process to be copied*/public Process (Process p){this.name = new String (p.name);this.timeslice = p.timeslice;this.entered_at = p.entered_at;this.finished_at = p.finished_at;this.time_left = p.timeslice;}/*** Convert this Process to a String for printing.** @return the String representation of this Process*/public String toString (){return name.toString() + " " + timeslice;}/*** Check if this Process is equal to another Process.** @param rhs the Process to compare this Process to* @return true if these Processes are equal, false otherwise*/public boolean equals (Process rhs){return (this.name == rhs.name) && (this.timeslice == rhs.timeslice);}}/* vim: set ts=4 sts=4 sw=4 expandtab: */