ScholarGate
Ассистент

Operating Systems

An operating system is the layer of software that manages a computer's hardware and provides services to applications, multiplexing the processor, memory, storage, and devices among programs while enforcing protection and abstraction.

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

An operating system is the system software that manages hardware resources, provides abstractions such as processes, files, and address spaces, and mediates between application programs and the underlying machine while enforcing isolation and fair sharing.

Scope

This area covers the principles and structure of operating systems: processes and threads, CPU scheduling, memory management and virtual memory, file systems, concurrency and synchronization, device and I/O management, and protection. It treats the OS as the resource manager and abstraction layer between hardware and applications. It borders memory hierarchy and caches (it manages virtual memory) and storage and I/O systems (it manages devices and persistence), and excludes distributed coordination across machines, treated under distributed and parallel computing.

Sub-topics

Core questions

  • How does the OS create the abstraction of independent processes and threads on shared hardware?
  • How does the scheduler decide which ready task to run, and by what objectives?
  • How does the OS manage memory and implement virtual memory and paging?
  • How do file systems organize persistent data on storage devices reliably?
  • How does the OS provide protection, isolation, and controlled access to resources?

Key concepts

  • kernel and user mode
  • process and thread
  • context switch
  • CPU scheduling
  • virtual memory and paging
  • file system
  • concurrency and synchronization
  • deadlock
  • system calls
  • protection and isolation

Key theories

Process and address-space abstraction
The OS virtualizes the CPU and memory so each program runs as if it owns the machine: a process bundles an address space, execution context, and resources, and the kernel switches among processes and protects them from one another.
Working-set memory management
Denning's working-set model characterizes the set of pages a process actively uses over a time window; keeping each process's working set resident avoids thrashing and guides paging and admission decisions in virtual-memory systems.

Mechanisms

The kernel runs in a privileged mode and mediates access to hardware. It represents running programs as processes and threads, switching among them via context switches driven by a scheduler. Memory is managed through paging and virtual address translation; persistent data is organized by file systems; and shared state is coordinated with synchronization primitives such as locks, semaphores, and monitors. System calls give applications controlled entry into kernel services.

Clinical relevance

Operating systems underpin essentially all computing: from servers and desktops to phones and embedded devices. Their design determines performance, reliability, and security — scheduling affects responsiveness, memory management affects throughput, and isolation mechanisms are the foundation of system security and virtualization. Widely deployed kernels such as Linux and Windows embody these principles at planetary scale.

History

Operating systems evolved from batch monitors of the 1950s through multiprogramming and time-sharing systems such as CTSS and Multics in the 1960s. UNIX, created by Thompson and Ritchie around 1970, established enduring abstractions still visible in modern systems. Dijkstra's work on semaphores and concurrency and Denning's working-set model laid theoretical foundations, and personal, mobile, and virtualized systems extended the field through later decades.

Debates

Monolithic versus microkernel design
A long-running debate weighs monolithic kernels, which run most services in privileged mode for performance, against microkernels, which move services to user space for modularity and reliability; modern systems mix both approaches.

Key figures

  • Edsger W. Dijkstra
  • Peter J. Denning
  • Per Brinch Hansen
  • Ken Thompson
  • Dennis Ritchie
  • Abraham Silberschatz
  • Andrew S. Tanenbaum

Related topics

Seminal works

  • silberschatz2018
  • tanenbaum2014os
  • denning1968

Frequently asked questions

What is the difference between a process and a thread?
A process is an independent program execution with its own address space and resources. A thread is a unit of execution within a process; multiple threads share the process's address space, making communication cheap but requiring synchronization to avoid races.
What does the kernel do that ordinary programs cannot?
The kernel runs in a privileged processor mode that lets it access hardware directly, manage memory mappings, handle interrupts, and switch processes. Applications request these privileged services through system calls rather than performing them themselves, which preserves isolation and protection.

Methods for this concept

Related concepts