0% found this document useful (0 votes)
15 views27 pages

Lec1 CS604

Uploaded by

Kamran Rasheed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPS, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views27 pages

Lec1 CS604

Uploaded by

Kamran Rasheed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPS, PDF, TXT or read online on Scribd
You are on page 1/ 27

Operating Systems

Lecture 1
Agenda for Today
 Introduction and purpose of the course
 Organization of a computer system
 Purpose of a computer system—setting
the stage for OS concepts and principles
 Outline of topics to be discussed in the
course
 What is an operating system?
 Recap of the lecture
July 12, 2024 © Copyright Virtual University of
Pakistan
Computer System

1. Hardware
2. Operating system
3. Applications programs
4. Users

July 12, 2024 © Copyright Virtual University of


Pakistan
Layered View of a
Computer System

July 12, 2024 © Copyright Virtual University of


Pakistan
Purpose of a Computer
System
 Computer systems consist of
software and hardware that
are combined to provide a tool
to solve specific problems in
an efficient manner
 Execute programs

July 12, 2024 © Copyright Virtual University of


Pakistan
Computer System Hardware
Integer Control Keyboard Mouse
Unit Unit
CD
Floating Point
Unit
Cache

Processor
System Bus
HD
Mem
Bus

RAM/ROM Printer Monitor


July 12, 2024 © Copyright Virtual University of
Pakistan
Course Outline
 Operating system concepts
 Operating system structures
 Introduction to UNIX/Linux user interface
 Processes and threads—scheduling,
concurrency, synchronization, etc.
 Deadlocks
 Memory management
 Virtual memory
 File system
 Secondary storage management
July 12, 2024 © Copyright Virtual University of
Pakistan
Operating System
Concepts
 Single-user systems
 Batch systems
 Multiprogrammed systems
 Time-sharing systems
 Real-time systems
 Interrupts, traps, and software interrupts
(UNIX signals)
 Hardware protection
July 12, 2024 © Copyright Virtual University of
Pakistan
Operating System
Structures
 Operating system services
 System calls
 Semantics of system call execution
 Operating system structures (monolithic,
microkernel-based, layered, virtual
machines, DOS-Windows, UNIX)
 System design and implementation

July 12, 2024 © Copyright Virtual University of


Pakistan
Introduction to UNIX/Linux

 Directorystructure
 Browsing directory structure

 Useful commands

July 12, 2024 © Copyright Virtual University of


Pakistan
Processes
 Process concept (process, states,
attributes, etc.)
 Process scheduling (scheduler)
 Context switching (dispatcher)
 Operations on processes (creation,
termination, signaling, suspend,
foreground, background, etc.)
 Process management in UNIX (fork, wait,
exec, exit, etc.)
July 12, 2024 © Copyright Virtual University of
Pakistan
Processes (continued)
 Sample code for UNIX/Linux process
management
 Cooperating processes
 Interprocess communication (IPC)
 IPC in UNIX/Linux (pipe, FIFO, socket,
message queue, etc.)

July 12, 2024 © Copyright Virtual University of


Pakistan
Processes (continued)
 Communication between UNIX/Linux
processes (pipe, mkfifo, read, write, close,
etc.)
 Sample code
 UNIX/Linux processes (process images,
control structures, etc. explained with
sample code)
 Managing UNIX/Linux processes (ps, top,
fg, bg, <Ctrl-Z>, <Ctrl-C>, etc.)
July 12, 2024 © Copyright Virtual University of
Pakistan
Threads
 Thread concept (thread, states,
attributes, etc.)
 User- and kernel-level threads

 POSIX threads (the pthread

library)
 Sample code

July 12, 2024 © Copyright Virtual University of


Pakistan
CPU Scheduling
 Basic concepts
 Scheduling criteria
 Scheduling triggers
 Scheduling algorithms
 UNIX System V scheduling algorithm
 Optimal scheduling
 Algorithm evaluation

July 12, 2024 © Copyright Virtual University of


Pakistan
Process Synchronization
 Basic concept
 The Critical Section Problem
 Solutions for the Critical Section Problem
 Software-based solutions—the Bakery
Algorithm
 Hardware-based solutions
 Semaphores
 Binary and counting semaphores
July 12, 2024 © Copyright Virtual University of
Pakistan
Process Synchronization …
 Classic problems of synchronization
 Deadlocks and starvation
 Critical regions
 Monitors
 Synchronization tools used in Solaris,
Linux, and Windows
 Deadlocks and starvation
 Pthread library functions
July 12, 2024 © Copyright Virtual University of
Pakistan
Deadlocks
 Basic concept
 Deadlock characterization
 Deadlock handling (prevention, avoidance,
detection and recovery)
 Banker’s algorithm

July 12, 2024 © Copyright Virtual University of


Pakistan
Memory Management
 Basic concepts
 Various techniques for memory
management
 Logical to physical address translation

 Swapping

 Contiguous memory allocation: MFT, MVT

 External fragmentation

 Paging

 Hardware support for paging

 Internal fragmentation
July 12, 2024 © Copyright Virtual University of
Pakistan
Memory Management …
 Performance of paging
 Protection and sharing
 Page table issues: Multi-level paging,
Hashed page tables, Inverted page tables
 Segmentation
 Protection and sharing
 Segmentation with paging
 Intel P4 example

July 12, 2024 © Copyright Virtual University of


Pakistan
Virtual Memory
 Basic concept
 Demand paging

 Page fault

 Performance of demand paging

 Page replacement

 Allocation of frames

 Thrashing

 Operating-system examples

 Other considerations (I/O locking, page


size, …)
July 12, 2024 © Copyright Virtual University of
Pakistan
File System Interface
 Basic concepts (file attributes, operations,
types, structure, etc.)
 Access methods (sequential, random, etc.)
 Directory structure
 UNIX/Linux directory structure (links in UNIX)
 File system mounting, sharing, and
protection
 UNIX/Linux examples for sharing and
protection, and relevant commands (chmod,
ln, ln –s, etc.) © Copyright Virtual University of
July 12, 2024
Pakistan
File System Implementation
 Basic concepts (overview of disk structure,
file structure, boot control block, super
block, inode, per process file descriptor
table, system-wide open-file table, etc.)
 Directory implementation
 Free space management methods
 Space Allocation Methods
 Time and space performance of allocation
methods
 Brief introduction to Network File System
(NFS)
July 12, 2024 © Copyright Virtual University of
Pakistan
Mass Storage Structure
and Scheduling
 Disk structure and scheduling
 Disk management (formatting,

boot block, bad blocks, etc.)


 Course Recap

July 12, 2024 © Copyright Virtual University of


Pakistan
What is an Operating
System?
 A program that acts as an intermediary
between a user of a computer and the
computer hardware—provides the user a
simpler (virtual) machine to work with
 A program that allocates and deallocates
computer system resources in an efficient,
fair, and secure manner—a resource
manager
July 12, 2024 © Copyright Virtual University of
Pakistan
Operating System Goals
 Execute user programs and make solving
user problems easier.
 Make the computer system convenient to
use.
 Use the computer hardware in an efficient
manner.

July 12, 2024 © Copyright Virtual University of


Pakistan
Operating Systems

Lecture 1

You might also like