public ProcessManager(String addr, int port) {
		processCount = 0;

		slaveList = new ArrayList<SlaveWorker>();
		slaveThread = new ConcurrentHashMap<Integer, Thread>();

		activeProcess = new ArrayList<Integer>();
		suspendedProcess = new ArrayList<Integer>();

		// <processID>, <process>
		processList = new HashMap<Integer, MigratableProcess>();

		processWorker = new HashMap<Integer, SlaveWorker>();

		// Start it as a master process manager
		if (addr == null) {
			this.isMaster = true;
			this.port = port;
		}
		// Start it as a slave process manager
		else {
			this.isMaster = false;
			this.masterAddr = addr;
			this.port = port;
		}
	}