Operating System
CSE 222
Course Instructor(s):
Poulami Dalapati
Preety Singh
Abhijit Adhikari
Dept. of CSE, LNMIIT Jaipur
Course related information
• Course CIF
• Theory
• Lab
• Evaluation scheme
• Google classroom: vpbj4ar
• Moodle
• Contact info of the course-coordinator
• [Link]@[Link]
• Office No. 12, New PEB building
OS/CSE222/Poulami D. 2
Prerequisites
• COA
• DSA
• Programming language: C
OS/CSE222/Poulami D. 3
Important announcement(s)
• Quiz 1 at the end of January 2024 (slot will be notified soon)
• NO make-up for any of the evaluation components.
OS/CSE222/Poulami D. 4
Roadmap
A brief introduction
Operating system structures
Processes and threads
Memory management
Storage and file system
Protection and security
OS/CSE222/Poulami D. 5
Goals of todays discussion
• What are we going to learn and why?
• What is an Operating System?
• Different logistics!
OS/CSE222/Poulami D. 6
Goal of this course
• Learn how “systems” work
• Challenges in building systems
• Principles of system design
• How to apply these principles to build a system?
OS/CSE222/Poulami D. 7
Example: Search Query!
Internet
Mobile Data center
• Complex interaction of multiple components in multiple domains.
OS/CSE222/Poulami D. 8
Computing devices are everywhere!
OS/CSE222/Poulami D. 9
What is an Operating System?
• Definition has changed over years
• Operating system (OS)
• Interface between the use and the architecture
• Hides architectural details
• Implements a virtual machine
• easier to program than raw hardware
• Provides services and coordinates machine activities
• Illusionist
• Bigger, faster, reliable
OS/CSE222/Poulami D. 10
OS: Traditional view
OS/CSE222/Poulami D. 11
New development in OS
• Operating systems: active field of research
• Demands on OS’s growing
• New application spaces (Web, Grid)
• Rapidly evolving hardware
• Advent of open-source operating systems –Linux
• You can contribute to and develop OS’s!
• Excellent research platform
OS/CSE222/Poulami D. 12
OS: Salient features
• Services: OS provides standard services (interfaces) which the
hardware implements.
• File systems, virtual memory, networking, CPU scheduling, time sharing
• Coordination: OS coordinates multiple applications and users to
achieve fairness and efficiency
• Concurrency, memory protection, networking, security
• Goal: Design an OS so that the machine is convenient to use (s/w
engineering problem) and efficient (system engineering problem)
OS/CSE222/Poulami D. 13
• Special layer of software that provides application software access to
hardware resources
• Convenient abstraction of complex hardware devices
• Protected access to shared resources
• Security and authentication
• Communication amongst logical entities
applnappln
appln
OS
Hardware
OS/CSE222/Poulami D. 14
A typical PC computer system
OS/CSE222/Poulami D. 15
Why study OS?
• Abstraction: giving users an illusion of infinite memory, CPUs,
resources, world wide computing etc.
• System Design: making tradeoffs between
• Performance and the convenience of OS abstractions
• Performance and the simplicity of OS design
• Giving functionality in h/w and s/w
• Basic Understanding: providing services that allow application
program to work
• System Intersection point: OS is where h/w and s/w meet
OS/CSE222/Poulami D. 16
Building Large Computer Systems
• OS as an example of large system design
• Goals: Fast, reliable, large scale
• To build these systems, you need to know
• Each computer:
• Architectural details that matter
• C and C++ (nitty gritty & more)
• Memory management & locality
• Concurrency & scheduling
• Disks, network, file systems
• Across cluster:
• Server architectures
• Distributed computing, file systems
OS/CSE222/Poulami D. 17
History of Operating systems
• From mainframes to web-based systems!
OS/CSE222/Poulami D. 18
Dark era (1940-60)
OS/CSE222/Poulami D. 19
Hardware: expensive; humans: cheap
• Evolution of functionality:
• One user
• Batch processing
• Overlap of I/O & computation
• Multiprogramming- Multitasking
OS/CSE222/Poulami D. 20
Single-User Computers
• One user at a time on console
• Computer executes one function at a time
• No overlap: computation & I/O
• User must be at console to debug
Multiple users = inefficient use of machine!
OS/CSE222/Poulami D. 21
Batch Processing
• Execute multiple “jobs” in batch:
• Users submit jobs (on cards or tape)
• Human schedules jobs
• Operating system loads & runs jobs
OS/CSE222/Poulami D. 22
Multiprogramming
• Allows multiple programs to load into
memory at the same time.
• Run one job until I/O
• Run another job, etc.
• OS manages interaction between programs:
• Which jobs to run
(schedule: priority based, resource availability)
• Protects program’s memory from others
• Decides which to resume when CPU available
OS/CSE222/Poulami D. 23
Multitasking
• Allows single CPU to execute multiple
tasks by switching b/w them rapidly.
• OS allocates CPU time to each task in a
way that is seems to be running
concurrently.
• E.g.: web browser, text editor, media
player running simultaneously.
OS/CSE222/Poulami D. 24
Multiprocessing
• Use of multiple CPUs or processor
cores
• Allows multiple tasks to run truly
concurrently
• Each CPU or core independently
execute instructions
• E.g.: Rendering a 3D animation can be
split into multiple threads, each
threads running on separate core
OS/CSE222/Poulami D. 25
OS Complexity
• Increased functionality & complexity
• Need to treat OS design scientifically
• Managing complexity becomes the key!
OS/CSE222/Poulami D. 26
The Renaissance (1970’s)
OS/CSE222/Poulami D. 27
• Hardware: cheap; humans: expensive
• Users share system via terminals
• The UNIX era
• “Shell”: commands
OS/CSE222/Poulami D. 28
The Industrial Revolution (1980’s)
OS/CSE222/Poulami D. 29
• Hardware very cheap; humans expensive
• Widespread use of PCs
• IBM PC: 1981
• Simple OS (DOS, MacOS)
• No multiprogramming, concurrency, memory protection, virtual memory
• Later: networking, file sharing, remote printing
• GUI added to OS
OS/CSE222/Poulami D. 30
The Modern Era (1990’s-now)
OS/CSE222/Poulami D. 31
• Hardware cheap; processing demands increasing
• “Real” operating systems on PC’s
• Windows NT (1991); Mac OS X; Linux
• Different modalities:
• Real-time: Strict or loose deadlines (time-critical systems)
• Sensor networks: Many small computers (smart appliances)
• Parallel: Multiple processors, one machine
• Distributed: Multiple networked processors (the Web, Google)
OS/CSE222/Poulami D. 32
Evolution summary
• The only constant: Change 9 order of magnitude!!
1983 1999
MIPS 0.5 500
Cost/MIPS $100,000 $500
Memory 1 MB 1 GB
Network 10 Mb/s 1 Gb/s
Disk 1 GB 1 Tb
OS/CSE222/Poulami D. 33
Order of magnitude
OS/CSE222/Poulami D. 34