In a nutshell
The main types of operating system are really different answers to one question: how should the CPU's time be shared? Batch runs jobs one after another. Multiprogramming keeps several in memory so the CPU switches to another whenever one waits on I/O. Time-sharing rotates rapidly between users so each feels alone on the machine. Real-time guarantees deadlines are met. Distributed spreads work across many networked machines at once.