The term front end usually refers to a small computer attached to a large one (usually a mainframe). Initially, they were used to offload input/output work from the larger machine. (Hence the alternative terms I/O processor and peripheral processor.) Later, they came to be used to replace the complex (and expensive) front panels of larger machines. In addition to display and control functions, they were usually capable of other functionality also: on microcoded machines with loadable microcode, they loaded that; they could also perform bootstrap and diagnostic functions.
There are several advantages to offloading I/O activity to a separate computer. First, the obvious one is the ability to bring additional processing power to bear. Second, large mainframes are typically optimized for doing large-scale computations, not doing I/O. Also, the overhead involved in processing an interrupt from a device (e.g. saving register contents) can be significant, particularly for small data items, so avoiding bothering the main CPU with this cost (often larger in a mainframe than in a smaller machine) can produce significant efficiencies.
The front end machine can communicate with the main CPU in a number of ways. It may have direct access to the main memory used by the main CPU, a technique used in the PPUs of the CDC 6600, the DL10-PDP-11 combination of the PDP-10 family, etc.