Class Notes: Fundamentals of Operating Systems
Course: CS-241: Introduction to Computer Systems
Date: July 23, 2025
Lecturer: Dr. Anya Sharma
1. Introduction: What is an Operating System (OS)?
An Operating System is system software that acts as an intermediary between the
computer hardware and the end-user. Its primary purpose is to provide a platform on
which a user can execute programs in a convenient and efficient manner.
Think of the OS as the government of a country. It doesn't produce goods itself, but it
creates and manages the infrastructure (roads, laws, currency) that allows citizens
(applications) to function and thrive. Without it, there would be chaos.
Core Objectives of an OS:
● Abstraction: Hide the complexities of the hardware from the user and
application developers. For example, you save a file without needing to know the
specific magnetic sectors on the hard drive where it is stored.
● Resource Management: Manage and allocate computer resources such as the
Central Processing Unit (CPU), memory, storage devices, and input/output (I/O)
peripherals.
● Convenience: Make the computer system more user-friendly.
● Efficiency: Ensure the computer system operates efficiently and fairly, especially
when multiple programs are running simultaneously.
2. Key Components of an Operating System
a. The Kernel
The Kernel is the heart of the operating system. It is the first program loaded into
memory when the computer starts up (a process called "booting"). It has complete
control over everything in the system. Its main functions include:
● Process Management: Deciding which program gets to use the CPU and for how
long.
● Memory Management: Allocating and de-allocating memory space as required
by programs.
● Device Management: Handling communication with hardware devices through
their respective drivers.
● System Calls: Providing an interface for programs to request services from the
kernel.
b. Process Management
A process is a program in execution. The OS is responsible for:
● Creating and deleting both user and system processes.
● Suspending and resuming processes.
● Providing mechanisms for process synchronization and communication.
● Scheduling processes for CPU time. This involves algorithms like First-Come,
First-Served (FCFS), Shortest Job First (SJF), and Round Robin.
c. Memory Management
Memory is a large array of bytes, each with its own address. It is a volatile resource,
meaning its contents are lost when the system is powered down. The OS manages this
memory by:
● Keeping track of which parts of memory are currently being used and by whom.
● Deciding which processes (or parts of processes) and data to move into and out
of memory.
● Allocating and deallocating memory space as needed. Techniques like paging
and segmentation are used to manage memory efficiently and provide virtual
memory, which allows a program to be larger than the physical RAM.
d. File System Management
A file is a collection of related information defined by its creator. The OS provides a uniform
logical view of information storage. It abstracts from the physical properties of its storage
devices to define a logical storage unit—the file.
The OS is responsible for:
● Creating and deleting files and directories.
● Providing primitives to manipulate files and directories.
● Mapping files onto secondary storage (like hard drives or SSDs).
● Backing up files on stable (non-volatile) storage media.
Summary: The Operating System is the foundational software that makes modern
computing possible. By managing hardware resources and providing abstractions, it
allows complex applications to run smoothly and efficiently, creating a productive
environment for users. Understanding these core pillars—kernel, process
management, memory management, and file systems—is essential for any computer
scientist.