1 - Operating Systems Introduction
1 - Operating Systems Introduction
Introduction
Chester Rebeiro
IIT Madras
Webpage : http://www.cse.iitm.ac.in/~chester/courses/15o_os/index.html
The Layers in Systems
Applications
Operating Systems
Computer
Organization
VLSI
Transistors
2
OS usage
• Hardware Abstraction
turns hardware into something that
applications can use
• Resource Management
manage system’s resources
3
A Simple Program
What is the output of the following program?
4
Displaying on the Screen
“Hello World” “Hello World” +
coordinates, color,
depth, etc
Monitor
Processor
Processor Memory
Graphics Card
Without an OS, all programs need to take care of every nitty gritty detail
5
Operating Systems Provide
Abstraction
App
system call
(write to STDOUT)
6
OS as a Resource Manager
• Multiple apps but limited hardware
Apps
Operating Systems
A few processors
7
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
8
Sharing the CPU
App1 App2 App3 App4
time
pre9
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
10
JOS and xv6
• Designed for pedagogical reasons
• Unix like (version 6)
– Looks very similar to modern Linux operating
systems
• Theory classes : xv6
– Well documented, easy to understand
• Lab : JOS
– Build your own operating system from the
skeleton
11
Course Structure
• Syllabus
– Overview of Operating Systems
– PC Hardware
– Memory Management
– Interrupts
– Context Switching
– Processes
– Scheduling
– Cooperating Processes
– Synchronization
– File Systems
– Security
12
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
• The xv6 source code booklet (revision 8)
http://www.cse.iitm.ac.in/~chester/courses/15o_os/index.html
13
Logistics
• Theory Classes (CS24, Slot F)
– Wednesdays : 11:00 - 11:50 AM
– Thursdays : 9:00 - 9:50 AM
– Fridays : 8:00 - 8:50 AM
• Lab (System’s Lab, Slot P)
– Monday’s : 2:00 – 5:00 PMs
14
Exams
• Quiz 1 : 25%
• Quiz 2 : 25%
• Final : 50%
15
Operating Systems
16
OS Evolution
17
Gen 1: Vacuum Tubes
• Hardware
– Vacuum tubes and IO with punchcards
– Expensive and slow
• User Apps
– Generally straightforward numeric computations done in machine
language
ENIAC 18
Gen 1 : OS
• OS: Unheard of
• Human feeds program and prints output
The cost of wastage was $146,000 per month (in 1954 US Dollars)
19
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
20
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
21
Batch Systems (pros.)
• Pros
– Better utilization of machine
22
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
23
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
24
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
25
Spooling
• Uses buffers to continuously stream inputs and outputs to
the system
Disk
Input Output
Magnetic Magnetic
Tape CPU Tape
26
Timesharing
time
27
Timesharing
John McCarthy, 1962
28
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
29
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
30
Unix
• Dennis Ritchie and Ken Thomson tried to find an
alternative for Multics
• Appeared at the right time
Slater, 1987
31
Unix adopted
• Spread and soon became widely adopted
Aho, 1984
32
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
33
OS Buzzwords
• Buzzwords that have been around
Fairness
Security/
Utilization
Reliability
Isolation
• Contemporary buzzwords
multi core
support
application
energy / size
specific OS
virtualization
34
OS Research Trends
Small
(footprint,
Minimum energy
requirements)
35