A process control block (PCB) contains information that the operating system needs to manage each process. This includes a pointer used for scheduling, the process state, program counter, CPU registers, memory management information, and accounting information. The PCB serves as a repository for any data that varies between processes, and allows the operating system to restore a process's hardware state when needed for scheduling.