I understand that a user can own a process and each process has an address space (which contains valid memory locations, this process can reference). I know that a process can c
You actually call the C runtime library. It's not the compiler who inserts TRAP, it's the C library who wraps TRAP into a library call. The rest of your understanding is correct.