what is the difference between system mode and user mode?
System mode means running apex code by ignoring user's permissions. User mode means running apex code by respecting user's permissions and sharing of records.