






















Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of an Operating System course, including pre-requisites, textbooks, and reference books. It defines an operating system and its goals, and explains the components of a computer system. It also covers operating system operations, multiprogramming, multitasking, and computing environments such as client-server, peer-to-peer, and cloud computing.
Typology: Slides
1 / 30
This page cannot be seen from the preview
Don't miss anything!























(^) Pre-Requisites
(^) EE-321 Computer Organization and Architecture
(^) Textbook
(^) “ Operating System Concepts ”, By Abraham
Silberschatz, Peter Galvin, and Greg Gagne, 10th
Edition, Publisher: John Wiley and Sons
(^) Reference Books
(^) “ Operating Systems: Principles and Practice ” by
Thomas Anderson, Michael Dahlin, 2nd Edition
(^) “Operating Systems. Internals and Design Principles”
by William Stallings, Prentice-Hall
2
(^) To provide knowledge how operating systems work
(^) To introduce basic resource management techniques,
issues of performance, avoiding deadlocks etc. to equip
students with sufficient knowledge about the working
mechanism of Operating System
(^) To apply knowledge for conducting research and
development
4
What is an Operating System?
(^) A program that acts as an intermediary between a user
of a computer and the computer hardware
(^) 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
Computer System Structure
(^) Computer system can be divided into four components:
(^) Hardware – provides basic computing resources
(^) CPU, memory, I/O devices
(^) Operating system
(^) Controls and coordinates use of hardware among various
applications and users
(^) Application programs
(^) define the ways in which the system resources are used to
solve the computing problems of the users
(^) Word processors, compilers, web browsers, database systems,
video games
(^) Users
(^) People, machines, other computers
What Operating Systems Do
(^) Depends on the point of view
(^) Users want convenience , ease of use and good
performance
(^) Don’t care about resource utilization
(^) Operating system is a resource allocator and
control program making efficient use of
Hardware and managing execution of User
programs
Operating System Definition
(^) No universally accepted definition
(^) “ Everything a vendor ships when you order an operating
system ” is a good approximation
(^) But varies wildly
(^) “ The one program running at all times on the computer ” is the
kernel, part of the operating system
(^) Everything else is either
(^) A system program (ships with the operating system, but not part of
the kernel) , or
(^) An application program , all programs not associated with the
operating system
(^) Today’s OSes for general purpose and mobile computing also include
middleware – a set of software frameworks that provide addition
services to application developers such as databases, multimedia,
graphics
Overview of Computer System
Structure
Computer System Organization
(^) Computer-system operation
(^) One or more CPUs, device controllers connect through common bus
providing access to shared memory
(^) Concurrent execution of CPUs and devices competing for memory
cycles
How a Modern Computer Works
A von Neumann architecture
Multiprogramming (Batch system)
(^) Single user cannot always keep CPU and I/O devices
busy
(^) Multiprogramming organizes jobs (code and data) so
CPU always has one to execute
(^) A subset of total jobs in system is kept in memory
(^) When job has to wait (for I/O for example), OS switches
to another job
Multitasking (Timesharing)
(^) A logical extension of Batch systems
(^) the CPU switches jobs so frequently that users can interact
with each job while it is running, creating interactive
computing
(^) Response time should be < 1 second
(^) Each user has at least one program executing in
memory process
(^) If several jobs ready to run at the same time CPU
scheduling
(^) If processes don’t fit in memory, swapping moves
them in and out to run
(^) Virtual memory allows execution of processes not
completely in memory
Dual-mode Operation
(^) Dual-mode operation allows OS to protect itself and other
system components
(^) User mode and kernel mode
(^) Mode bit provided by hardware
(^) Provides ability to distinguish when system is running user code or
kernel code.
(^) When a user is running mode bit is “ user ”
(^) When kernel code is executing mode bit is “ kernel ”
(^) How do we guarantee that user does not explicitly set the mode
bit to “kernel”?
(^) System call changes mode to kernel, return from call resets it to user
(^) Some instructions designated as privileged , only executable in
kernel mode
Transition from User to Kernel Mode 20