Data controllers are the entities responsible for managing, collecting and directing the use of data. Bulk of the responsibility for the data lies on them.
Data processors are responsible for the processing of data based on orders received from data controllers. In most cases, a single company will be both at the same time. However, if using cloud services, for example, the cloud would be considered a data processor.
A data subject is the individual whose personal data is being processed.