Context-switch between two processes
the OS saves the PC and user stack pointer of the currently executing process, and transfers control to the kernel clock interrupt handler.


This is not done by the OS, since the PC is still pointing to the process code. It is the CPU that performs this step, just before jumping to the kernel interrupt handler (hence modifying PC and SP), which can then save the rest of the state in the PCB.

Since the first step is implemented at a lower level (in the CPU hardware / firmware) it should be simple so that the CPU design does not require too much effort.

Saving registers is much simpler (cheap) when done at the assembly (OS) level, which requires less effort to design/code with respect to the CPU level. Hence, usually the CPU is made to save just enough to allow the OS to save the rest.