To understand the difference, you should have a look to the x86 processor familly.
You will the discover that it uses a segmented memory sheme. That means that when you access memory, the processor will use a Segment value and an Offset, and will do a 'specific calculation' witgh those two values to build the Final adress.
Real and Protected mode are Processor working mode (only for CPU >= 80286)
Il real mode, the Segment is really a hardware base adress.
In protected mode (which can have differents flavours) the segment is in fact a SELECTOR: reference to an entry in a table describing a memory zone. As each selector can adreess 64Kb in mode 16 (and much more in 32) that allows larger memory acces.
Protected mode means that the processor will catch any invalid Selector load or access.
Memory communication between protected mode and non protected mode (DOS) makes it necessary to Translate the memory calls and addres. Some product help you (Pharlap, PowerPack....) by giving you a loader (which starts in real mode and than starts you progralm in protected mode)and some support to accees usual DOS finctions.
See DPMI 0.9 description .