System calls occur when programs need to use the OS for its privilege or abstractions it makes a call analogous to a procedure call. We need a special CPU instruction to do this. The caller identifies the target code by a small number and not its address.