LearnViz CompSci
Home / Learn / Operating Systems / Critical Section

Intermediate Topic 19 of 51 Operating Systems

Critical Section

Code region that must not run concurrently.

How it works

A critical section is a segment of code that accesses shared resources and must not be executed by more than one thread at a time. A correct solution provides mutual exclusion, progress, so that a decision is made without unnecessary delay, and bounded waiting, so no thread waits forever. Entry and exit protocols are implemented with locks, semaphores or algorithms such as Peterson's.

Step-by-step walkthrough

  1. Two threads need the shared data.
  2. Thread A enters the critical section.
  3. Thread B must wait outside.
  4. A leaves and B enters.
  5. Only one thread is inside at any moment, giving mutual exclusion.

Where it is used

Updating shared counters, modifying linked lists, writing to a log file, managing a bank balance and updating caches shared across threads must be done within critical sections.

Common pitfall

Making sections too large reduces concurrency and creates contention, while too small leaves invariants broken. Forgetting to release the lock on an error path causes deadlock, so use scoped locks. Doing slow work, like I/O, while holding a lock hurts throughput. Keep critical sections short and well documented.

Where it fits in the course

Critical Section is topic 19 of 51 in Operating Systems, rated Intermediate. It follows Race Conditions. The next topic is Mutex.

Practice and explore

How to study this topic

  1. Read the explanation above and restate the definition in your own words.
  2. Open the interactive lesson and answer its mini quiz.
  3. Read the common pitfall, then write a short example that avoids it.
  4. Check your understanding in the Operating Systems quiz, and revisit the topic if you miss a question.

Frequently asked questions

What is Critical Section?
Code region that must not run concurrently. It belongs to Operating Systems and is an intermediate-level topic.
Where do people use Critical Section?
Updating shared counters, modifying linked lists, writing to a log file, managing a bank balance and updating caches shared across threads must be done within critical sections.
What is the most common mistake with Critical Section?
Making sections too large reduces concurrency and creates contention, while too small leaves invariants broken.
What should I learn before this topic?
Start with Race Conditions, the topic just before it in Operating Systems.
How can I practice it?
Answer the mini quiz in the interactive lesson, then take the Operating Systems quiz.
Is Critical Section hard to learn?
It is an Intermediate topic. Be comfortable with the Beginner topics in this area first, then read the common pitfall carefully, since it is where most mistakes happen.
How long does it take to learn Critical Section?
Most learners can read the explanation and finish the interactive lesson in under an hour. Fluency comes from applying the idea, so plan a few short practice sessions with the quiz.
Which topics are related to Critical Section?
Race Conditions, Mutex, Pipes and Signals are closely connected. The full list is in the related topics section of this page.
What should I study after Critical Section?
Continue with Mutex, the next topic in Operating Systems.

Related topics