← Back to CoursesComputer Science: Intermediate

Neuroanatomy Explorer

Drag to rotate · scroll to zoom · click regions to explore

View
Loading 3D model…

Click a region
to explore it

Memory Deck

Flip each card and rate whether you knew it. Your score is saved.

Term
Definition

Deck complete — score saved.

Match the Pairs

Match each term to its definition. Finish the board to earn your score.

All matched — score saved.

Concept Constellation

Every key idea in this course, mapped as an explorable 3D constellation. Drag to rotate, scroll to zoom, click a node.

Click a node to read its definition.

Operating Systems and Processes

Manual: General · Subject: Computer Science

Discover how operating systems manage resources, coordinate programs, and provide safe execution environments.

The OS as resource manager

What an operating system does

An operating system manages the CPU, memory, storage, input/output devices, and security boundaries. It provides abstractions such as processes, threads, files, and virtual memory so applications can run without dealing with raw hardware directly.

Core OS abstractions

Process
A running program with its own memory and resources.
Thread
A unit of execution within a process.
Virtual memory
An illusion of large, private memory for each process.
File system
A way to organize and access persistent data.
System call
A controlled request from a program to the OS.
ℹ️

Why virtualization helps

Virtual memory and process isolation make programs safer and easier to run alongside one another.

What is a process?

What problem does virtual memory help solve?

Scheduling and concurrency

Because many programs want CPU time, the OS schedules processes and threads. Concurrency allows multiple tasks to make progress, while synchronization mechanisms prevent corruption when tasks share data.

Which OS mechanism helps prevent simultaneous access problems when multiple threads share data?

Why are system calls important?

How to think about a bug in a concurrent program

  1. 1

    Step 1: Identify shared state.

  2. 2

    Step 2: Determine which operations can overlap.

  3. 3

    Step 3: Look for race conditions or deadlocks.

  4. 4

    Step 4: Add logging, timing, or locks carefully.

  5. 5

    Step 5: Retest under load and repeated execution.