OPERATING SYSTEMS CS F372
BIJU K RAVEENDRAN & TEAM
LECT #01: INTRODUCTION
Instructor
• Biju K Raveendran
–Chamber: D-248
–e-mail: [
[email protected]]
–Dept. CS & IS
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 2
Policies to follow
• Class Timings [DLT8]
– Monday, Wednesday and Friday
– 04:00 P.M to 04:50 P.M
• Tutorial Timing [DLT8]
– Tuesday 4:00 P.M to 4:50 P.M
• Whenever tutorial is required corresponding Lecture will
be converted into tutorial. All classes are otherwise
Lecture classes.
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 3
Course Administration
• Mid Semester Exam: [25%] [Closed Book]
– 05/03/2025, Wednesday, 2:00 PM – 3:30 PM
• Onlines & Projects: [30%] [Open Book]
– Online #1: Abstract Data Type [Files and String Operations] 5%.
– Online #2: Process [fork, wait, shared memory, signals etc.] 8%.
– Online #3: Threads and Synchronization [pthread library, semaphore
library etc.] 7%
– Project #1: Kernel Recompilation with a new System call 4%
– Project #2: Implementation of Device Driver in Linux [Group
Assignment] 6%
• Attendance: [10%]
• Comprehensive Exam: [35%] [Closed Book] 10/05/2025, AN
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 4
Course Administration
• Material and Notices: Quanta / Quantaaws
• Text Book
– Operating System Concepts, 9th Edition by Silberschatz, Galvin
& Gagne
• Reference Books
– Operating Systems Internals & Design Principles, Stallings
– The Design of the Unix Operating System, Bach
– Advanced Programming in the UNIX environment, Richard
Stevens
– Linux Kernel Development, Robert Love
– Understanding the Linux Kernel, Daniel P. Bovet
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 5
Malpractice Regulation – Assignments / Labs
• First time: Negative (weightage of component)
– Will be blacklisted
• Repeatedly [across all courses]: will be reported to Examination sub-
Committee for further action
• A mal-practice - in this context - will include [not limited to]:
– Copying / Submitting some other student’s solution(s)
– Seeing some other student’s solution [during online]
– Using ChatGPT / Other AI tools to solve the problem
– Permitting some other student to see/copy your solution
– Other equivalent forms of plagiarism
• Getting it done by friends / seniors, with the help of forums and
other internet sources]
– The degree of mal-practice [size and # of students] will not be
considered as mitigating evidence
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 6
Course Outline
• Operating Systems [approx. 8 lectures]
– Types, Structure & Services, Protection, System calls
• Process Management [approx. 12 lectures]
– Process, IPC, Threads
• CPU Scheduling [approx. 8 lectures]
• Concurrent Processes [approx. 10 lectures]
– Synchronization and Deadlocks
• Memory Management [approx. 10 lectures]
– Memory management strategies – Paging, Segmentation; Virtual
memory management
• Storage Management [If time permits]
– File systems, Disk structure, Disk Scheduling, RAID and I/O system
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 7
Introduction
• What is Operating Systems?
– Single most complex & essential software
– Interface between user & computer hardware
• What does it do? How does it help?
– Helps user by making the system convenient to use
– Helps programs run by providing resources &
protecting them
– Helps system by keeping things running smoothly
– Helps user programmer to do his job efficiently
– Uses computer hardware efficiently
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 8
[T1 Ch1]Abstract View of System Components
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 9
Goals of an Operating System
• Manages hardware resources so that the system
operates smoothly, efficiently, reliably and securely
• Presents abstract system model to programmer that
promotes simple and convenient access and control of
resources
• Maximize resource utilization [CPU, memory, I/O]
• OS must contain functions needed by many programs
– I/O device control, memory allocation etc.
– Maximum number of programs must get the benefit
– OS must not become bulky
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 10
Application’s Expectation from OS
• Hardware abstraction for convenience and
portability
• Effective and Efficient use of hardware with
maximum multiplexing among applications
• Protection of correctly running applications
from malicious ones
• Allow maximum sharing among application
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 11
What if NO Operating System?
• All we have is a bare hardware
• We need a mechanism to
– Load the program into memory
– Run the program & Store the result in persistent storage
– Unload the program to release memory [for the next
program to use]
• For doing all these functions we need at least a minimal OS
– It must be the resident code that run by default
– Allow us to load program and run by allotting necessary
resources
– After completion of the user program control must come
back to the operating system
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 12
Types of Operating Systems
• Main frame systems
• Batch, Multi-programming and Multi-tasking system
• Multi programming
– Keeps multiple runnable jobs loaded in memory
– Overlaps I/O of a job with computation of another
– Benefits from I/O devices that can operate
asynchronously
– Requires the use of interrupts and DMA
– Optimizes system throughput (number of jobs finished
in a given amount of time) at the cost of response time
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 13
Example
• [0] J1 → 8 CPU, 4 I/O, 3 CPU
• [1] J2 → 5 CPU, 5 I/O, 9 CPU
• [2] J3 → 2 CPU, 2 I/O, 6 CPU
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 14
Types of Operating Systems
• Multi-tasking (Time Sharing) Systems
– Logical extension of multi-programming system
– A time unit is divided into small slices and each user can
be allocated CPU
– Allows many users to share the computer simultaneously
– Uses multiprogramming and CPU scheduling
• CPU is multiplexed among several jobs
– Time sharing machine with Interactive I/O devices
improves user response time
– Gives illusion that each user has his own machine
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 15
Example
• [0] J1 → 8 CPU, 4 I/O, 3 CPU
• [1] J2 → 5 CPU, 5 I/O, 9 CPU
• [2] J3 → 2 CPU, 2 I/O, 6 CPU
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 16
Types of Operating Systems
• Multi-user Operating Systems
– Multiple users can work concurrently with data and
application protection.
• Uni-core Systems [Uni-processor]
– Stored program [Von Neumann / Princeton
architecture]
– Harvard Architecture
– Modified Harvard Architecture
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 17
Types of Operating Systems
• Uni-core, Multi-core, Multi-processor
– Registers, TLB, [L1, L2, L3] caches, Main Memory
– i3 [Hyper thread], i5 [Turbo boost], i7 [Both] and
i9 processors [both with 2turbo boost
frequencies]
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 18
Types of Operating Systems
• Systems with graceful degradation [with hardware
failures] and systems with fault tolerance
• Increased throughput, reliability, [Economical]
• Multi-processor [Tightly coupled system]
– Asymmetric
• Each processor is assigned a specific task [Co-processors]
– Symmetric [SMP]
• Local registers and cache for each processor but connected
with a common shared memory
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 19
Types of Operating Systems
• Multi-processor
– Memory Model
• UMA (Uniform Memory Access)
• NUMA (Non-Uniform Memory Access)
• NORMA (No Remote Memory Access)
• Distributed Systems [Loosely coupled system]
– Example: Client – Server systems and Peer to Peer system
– Server systems can be Compute servers or File servers
– Enables parallelism but speedup is not the goal
– Adv: Resources Sharing, Computation speed up – load sharing,
Reliability, Communications
Tuesday, January 7, 2025 Biju K Raveendran @ BITS Pilani Goa 20