title: System calls overhead
body: <p>I just started studying about system calls.
               I would like to know what causes overhead when a system call is made. </p>
  
  <p>For example, 
  if we consider getpid(), when a system call is made to getpid() my guess is that if the control is currently in the child process then a context switching has to be made to enter the parent process to get the pid. Can that contribute to overhead?</p>
  
  <p>Also when getpid() is called, there will be some metadata transfer across the user-space boundary and enters and exits the kernel.So will the constant switching between user space and kernel also cause some overhead?</p>