private void systemCall(int PID) {
		ProcessControlBlock pcb = pcbList.getPCB(PID);

		ProcessType type = pcb.getProcess().getProcessType();
		
		System.out.println("Process " + pcb.getPid() + " (" + type.name() + ") made a system call.");

		if( type == ProcessType.COMPUTE ) {
			// I thought it does nothing, but in the sample run it made system call to auxiliary.
			devices[1].addPCB(pcb);
			blockPCB(pcb);
		} else if( type == ProcessType.CONSUMER ) {
			// request resource
			requestResource(pcb);
		} else if( type == ProcessType.PRODUCER ) {
			// I think it always try to put stuff in the memory.
			putResource(pcb);
		} else if( type == ProcessType.UI ) {
			// Request resource from IODevice by adding itself to the list in the device.
			devices[0].addPCB(pcb);
			blockPCB(pcb);
		}
	}