public boolean sendSuspendMsg(int processID) {
		
		// find what slave the process is running/suspending on
		Integer targetSlaveID = processSlaveMap.get(processID);
		if (targetSlaveID != null) {
			// locate the slave socket and use the socket to send suspend signal
			Socket slaveSocket = slavelist.get(targetSlaveID);
			if (slaveSocket != null) {
				try {
					// see if the process has already suspended
					if (processStatusMap.get(processID).equals("suspending")) {
						return true;
					}
					outputStream = slaveOutputStreamMap.get(targetSlaveID);
					outputStream.writeObject("suspend");
					outputStream.writeObject(processID);
					
					inputStream = slaveInputStreamMap.get(targetSlaveID);
					String suspendOK = null;
					suspendOK = (String) inputStream.readObject();
					if (suspendOK.equals("fail"))
						return false;
					// update process status
					processStatusMap.put(processID, "suspending");					
				} catch (IOException e) {
					e.printStackTrace();
				} catch (ClassNotFoundException e) {
					e.printStackTrace();
				}
			} else {
				System.out.println("Error when locating slave socket...");
			}
		}
		return true;
	}