LearnThatStack Ace your next interview
Operating Systems · question
Question 6 of 56

What is a system call, and how does it differ from a normal function call?

beginner
← All Operating Systems questions
Re-explain

A system call is a request to the OS kernel to do something your program cannot do alone. Reading a file, opening a socket or asking the OS for more memory all end in system calls.

A normal function call stays inside your program's own code and privileges. A system call crosses the privilege boundary. The CPU switches from user mode into kernel mode, runs trusted kernel code, then switches back with a result.

That crossing is why system calls cost more than normal function calls. The mode switch takes time, and the kernel saves your registers on entry and restores them on return. Libraries often batch or buffer work to make fewer system calls.

Rewriting in plainer words…

This answer doesn't lend itself to a diagram - it reads best . No credits were charged.

Why there's no diagram: “”

The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓

The diagram below the answer is the concept . Jump to it ↓

Tailored explanation · switch back to · ·
What should the new diagram focus on?
Guided practice for Operating Systems One question at a time. Answer out loud, get graded, see what you missed.
How well did you know this?
AI:

Saved in this browser - sign in to keep your review list.

How should your speech become text?

Listening… your words appear above as you speak - tap Stop when you're done.

Recording · cr - tap Stop & transcribe when you're done.

Transcribing with AI…

Voice:

Keep going - a few more words and AI can grade it.

Interview lens How interviewers actually use this question

Likely follow-ups

What you can say

  1. A system call is how a program asks the OS kernel to do something it can't do alone, like reading a file, opening a socket or getting more memory.
  2. A normal function call just jumps to other code in the same program, with the same privileges, so it's cheap.
  3. A system call crosses the privilege boundary. The CPU switches from user mode to kernel mode, runs trusted kernel code, and switches back with the result.
  4. That crossing costs more, because the mode switch takes time and the kernel saves your registers on entry and restores them on return.
  5. So you want fewer of them, which is why libraries batch or buffer work, for example collecting writes and handing them over in one call.

Weak answers to avoid

  • Calls it a function the OS provides A libc wrapper like read() is a normal call. The system call is the switch into kernel mode inside it. Name that crossing or the answer misses the point.
  • Skips why it costs more Interviewers listen for the cost. Say the mode switch takes time and the kernel saves and restores registers, so libraries buffer to make fewer calls.
  • Treats a system call as a context switch The kernel runs the call for the same process. Another thread runs only if the call blocks or the scheduler picks someone else, so keep the two terms apart.
Interview lens

Likely follow-ups, what you can say, and the weak answers to avoid.

Sign in free to open it Free account - the lens opens as soon as you're back.

Want a quick review of the fundamentals? See the Operating Systems cheatsheet.

← Back to all Operating Systems questions
Pro · $10/mo

49 of 56 Operating Systems answers are in Pro.

Full answers, code samples, and AI explanations that go simpler or deeper. Cancel anytime.

  • Full answers + code
  • AI explanations, simpler or deeper
  • 1,000 AI credits / month
  • Cancel anytime