Operating Systems (CS3500)
Introduction
Chester Rebeiro
IIT Madras
Webpage : https://sites.google.com/cse.iitm.ac.in/os-2025/home
Layers in a Computer System
Applications
Operating Systems
Computer Architecture
VLSI
Transistors
2
Use of Operating Systems
• Hardware Abstraction
turns hardware into something that applications can use
• Resource Management
manage system’s resources (security)
3
A Simple Program
What is the output of the following program?
How is the string displayed on the screen?
4
Displaying on the Screen
“Hello World” “Hello World” +
coordinates, color,
depth, etc
Monitor
Processor
Processor Memory
Graphics Card
• Can be complex and tedious
• Hardware dependent
Without an OS, all programs need to take care of every nitty gritty detail.
5
Operating Systems Provide Abstraction
On a desktop
App
system call
(write to STDOUT)
Operating System Device
driver
• Easy to program apps
– No more nitty gritty details for programmers
• Reusable functionality
– Apps can reuse the OS functionality
6
Operating Systems Provide Abstraction
On an embedded device
App
USB
system call
(write to STDOUT)
Operating System Device
driver Embedded System
• Portable
– OS interfaces are consistent. The app does not change when hardware
changes
7
OS as a Resource Manager
• Multiple apps but limited hardware
Apps
Operating Systems
A few processors
8
OS as Resource Manager
• OS must manage CPU, memory, network, disk
etc…
• Resource management
– allows multiple apps to share resources
– protects apps from each other
– Improves performance by efficient utilization of
resources
9
Sharing the CPU
App1 App2 App3 App4
Who uses the CPU?
App1 App2 App3 App4
time
pre10
Operating Systems Types
• Application Specific
– Embedded OS
• eg. Contiki OS, for extremely memory constraint environments
– Mobile OS
• Android, iOS, Ubuntu Touch, Windows Touch
– RTOS
• QNX, VxWorks, RTLinux
– Secure Environments
• SeLinux, SeL4
– For Servers
• Redhat, Ubuntu, Windows Server
– Desktops
• Mac OS, Windows, Ubuntu, Linux
11
xv6
• Designed for pedagogical reasons
• Unix like (version 6)
– Looks very similar to modern Linux operating systems
– (https://pdos.csail.mit.edu/6.828/2020/xv6.html)
• Hardware : RISC V
– Open source ISA architecture.
12
Course Structure
• Syllabus
– Overview of Operating Systems
– PC Hardware
– Memory Management
– Interrupts
– Context Switching
– Processes
– Scheduling
– Cooperating Processes
– Synchronization
– File Systems
– Security
13
Textbooks / References
• ''xv6: a simple, Unix-like teaching operating system", Revision 8, by Russ Cox,
Frans Kaashoek, Robert Morris
• ''Operating System Concepts'', 8th edition, by Adraham Silberschatz, Pert B.
Galvin, and Greg Gagne, Wiley-India edition
• "Operating Systems: Three Easy Pieces", Remzi H. Arpaci-Dusseau and Andrea
C. Arpaci-Dusseau (University of Wisconsin-Madison)
https://pages.cs.wisc.edu/~remzi/OSTEP/
• The xv6 source code
14
Logistics
15
Slides / Videos / Schedule
• Slides and Schedule will be put up on course webpage:
– https://sites.google.com/cse.iitm.ac.in/os-2025/home
• Assignments will need to be submitted in Moodle
16
Grading
• Q1: 10%
• Q2: 10%
• End Sem: 40% (entire syllabus)
• Lab: 40%
17
Attendance
• Attendance as per institute norms.
18
Operating Systems
(How did it all start?)
19
OS Evolution
• Evolution driven by Hardware improvements
+ User needs
– eg. low power requirements, Increased /
reduced security, lower latency
– Evolution by
• New/better abstractions
• New/better resource management
• New/better low level implementations
20
Gen 1: Vacuum Tubes
• Hardware
– Vacuum tubes and IO with punchcards
– Expensive and slow
• User Apps
– Generally straightforward numeric computations done in machine
language
IBM Punch card
ENIAC 21
Gen 1 : OS
• OS: Unheard of
• Human feeds program and prints output
George Ryckman, on IBM’s first computer
The cost of wastage was $146,000 per month (in 1954 US Dollars)
22
Gen 2 : Mainframes
• Hardware
– transistors
• User Programs
– Assembly or Fortran entered using punch
cards
• OS : Batch systems
– Possibly greatest invention in OS
• Computers may be able to schedule their own
workload by means of software
23
Batch Systems
• Operator collects jobs (through punch cards) and feeds it into a magnetic
tape drive
• Special Program reads a job from input tape drive and on completion writes
result to output tape drive
• The next program is then read and executed
• Printing was done offline
24
Batch Systems (pros.)
• Pros
– Better utilization of machine
25
Batch Systems (cons.)
• In Batch Systems execute time includes reading
from input and writing to output.
• I/O considerably slower than execution
– Magnetic tapes were best read sequentially
• Therefore programmer must wait for long time
Input Output
Magnetic CPU Magnetic
Tape Tape
26
Gen 3 : Mini computers
• Hardware
– SSI/MSI/LSI ICs
– Random access memories
– Interrupts (used to simulate concurrent execution)
• User Programs
– High level languages (Fotran, COBOL, C, …)
• Operating Systems
– Multiprogramming
– Spooling
27
Multiprogramming
• Multiple jobs in memory
– When one waits for I/O the next job executes
• OS controls
– scheduling of jobs
– Protection between jobs
OS
Job 1 Memory
Job 2 partitions
Job 3
Multiprogramming with
3 jobs in memory
28
Spooling
• Uses buffers to continuously stream inputs and outputs
to the system
Disk
Input Output
Magnetic Magnetic
Tape CPU Tape
• Pros : better utilization / throughput
• Cons : still not interactive
29
Timesharing
Who uses the CPU?
Terminal 1 Terminal 2 Terminal 3 Terminal 4
time
30
Timesharing
John McCarthy, 1962
31
Multics, 1964
• Multiplexed Information and Computing Service
• Ambitious project started in MIT
• Introduced several new OS features but was not
successful by itself
– Segmented and Virtual memory
– High level language support
– Multi language support
– Security
– File system hierarchies
– Relational databases
– Shared memory multiprocessor
32
Gen 4 : Personal Computers
• Hardware
– VLSI ICs
• User Programs
– High level languages
• Operating Systems
– Multi tasking
– More complex memory management and scheduling
– Synchronization
– Examples : Windows, Linux, etc
33
Unix
• Dennis Ritchie and Ken Thomson tried to find an
alternative for Multics
• Appeared at the right time
Slater, 1987
34
Unix adopted
• Spread and soon became widely adopted
Aho, 1984
• Wide spread adoption arguably a
hindrance to research?
35
Smartphones & Tablets
• Hardware
– VLSI ICs, low power requirements & high compute
power
• Operating Systems
– User friendly
– Power awareness
– Always connected
– Offload to cloud
– Better protection, Virtual machines
– Examples : Android, iOS
36
OS Buzzwords
• Buzzwords that have been around
Fairness
Security/
Utilization
Reliability
Isolation
• Contemporary buzzwords
multi core
support
application
energy / size
specific OS
virtualization
37
OS Research Trends
Small
(footprint,
Minimum energy
requirements)
Security, Reliability Features
(fewer errors, (better device support,
Formally verified, Multi core support)
fault tolerant,
isolation)
38