Skip to main content

Fundamentals

Processes vs Threads

Main : Processes are executed by threads

Memory

Stack

  • Stack allocation called by function
  • Each function gets its own memory for local variables
  • Freed immediately when function ends
  • Too many function calls exceed stack capacity -> stack overflow error (JAVA) / segmentation fault (CPP)

Heap

  • Manual deallocation required
  • Accessible by multiple threads
  • Heap is persistent until program termination
  • Memory leak : allocated data is not freed after use

File I/O

Concurrency

Scheduling

System Calls

 

Processes vs Threads

  • Process: own address space

  • Thread: shared address space

  • Context switching overhead

  • When threads help vs hurt

Memory

  • Stack vs heap

  • Virtual memory

  • Paging vs segmentation

  • What a segmentation fault actually is

  • Memory leaks and how they happen

File I/O

  • File descriptors

  • stdin/stdout/stderr

  • Blocking vs non-blocking I/O

Concurrency

  • Race conditions

  • Mutex vs semaphore

  • Deadlocks (4 conditions)

Scheduling

  • Preemptive vs cooperative

  • CPU-bound vs I/O-bound

System calls

  • What they are

  • Why they exist

  • User mode vs kernel mode

Practice explaining out loud

If she asks:

“What happens when a program starts?”

You should mention:

  • Executable loaded

  • Virtual memory allocated

  • Stack/heap setup

  • Entry point (main)

  • Syscalls for I/O