Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 52

Chapter 1: Introduction

Operating System Concepts – 10h Edition Silberschatz, Galvin and Gagne ©2018
Course Syllabus
 • Introduction.
 • Operating-System Structures.
 Processes.
 • Threads.
 • CPU Scheduling.
 • Process Synchronization.
 • Deadlocks.
 • Main Memory Management.

Operating System Concepts – 10th Edition 1.2 Silberschatz, Galvin and Gagne ©2018
Objectives

 Describe the general organization of a computer system and the role


of interrupts
 Describe the components in a modern, multiprocessor computer
system
 Illustrate the transition from user mode to kernel mode
 Discuss how operating systems are used in various computing
environments
 Provide examples of free and open-source operating systems

Operating System Concepts – 10th Edition 1.3 Silberschatz, Galvin and Gagne ©2018
What Does the Term Operating System Mean?

 An operating system is “fill in the blanks”


 What about:
• Car
• Airplane
• Printer
• Washing Machine
• Toaster
• Compiler
• Etc.

Operating System Concepts – 10th Edition 1.4 Silberschatz, Galvin and Gagne ©2018
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

Operating System Concepts – 10th Edition 1.5 Silberschatz, Galvin and Gagne ©2018
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

Operating System Concepts – 10th Edition 1.6 Silberschatz, Galvin and Gagne ©2018
Abstract View of Components of Computer

Operating System Concepts – 10th Edition 1.7 Silberschatz, Galvin and Gagne ©2018
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
 But shared computer such as mainframe or minicomputer must keep
all users happy
• Operating system is a resource allocator and control program
making efficient use of HW and managing execution of user
programs
 Users of dedicate systems such as workstations have dedicated
resources but frequently use shared resources from servers
 Mobile devices like smartphones and tables are resource poor,
optimized for usability and battery life
• Mobile user interfaces such as touch screens, voice recognition
 Some computers have little or no user interface, such as embedded
computers in devices and automobiles
• Run primarily without user intervention

Operating System Concepts – 10th Edition 1.8 Silberschatz, Galvin and Gagne ©2018
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 additional
services to application developers such as databases, multimedia,
graphics

Operating System Concepts – 10th Edition 1.9 Silberschatz, Galvin and Gagne ©2018
Overview of Computer System Structure

Operating System Concepts – 10th Edition 1.10 Silberschatz, Galvin and Gagne ©2018
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

Operating System Concepts – 10th Edition 1.11 Silberschatz, Galvin and Gagne ©2018
Computer-System Operation

 I/O devices and the CPU can execute concurrently


 Each device controller is in charge of a particular device type
 Each device controller has a local buffer
 Each device controller type has an operating system device driver
to manage it
 CPU moves data from/to main memory to/from local buffers
 I/O is from the device to local buffer of controller
 Device controller informs CPU that it has finished its operation by
causing an interrupt

Operating System Concepts – 10th Edition 1.12 Silberschatz, Galvin and Gagne ©2018
Common Functions of Interrupts

 Interrupt transfers control to the interrupt service routine


generally, through the interrupt vector, which contains the
addresses of all the service routines
 Interrupt architecture must save the address of the interrupted
instruction
 A trap or exception is a software-generated interrupt caused
either by an error or a user request
 An operating system is interrupt driven

Operating System Concepts – 10th Edition 1.13 Silberschatz, Galvin and Gagne ©2018
Interrupt Handling

 The operating system preserves the state of the CPU by


storing the registers and the program counter
 Determines which type of interrupt has occurred:
 Separate segments of code determine what action should
be taken for each type of interrupt

Operating System Concepts – 10th Edition 1.14 Silberschatz, Galvin and Gagne ©2018
Storage Structure

Operating System Concepts – 10th Edition 1.16 Silberschatz, Galvin and Gagne ©2018
Storage Structure
 Main memory – only large storage media that the CPU can
access directly
• Random access
• Typically volatile
• Typically random-access memory in the form of
Dynamic Random-access Memory (DRAM)
 Secondary storage – extension of main memory that provides
large nonvolatile storage capacity

Operating System Concepts – 10th Edition 1.17 Silberschatz, Galvin and Gagne ©2018
Storage Structure (Cont.)
 Hard Disk Drives (HDD) – rigid metal or glass platters covered
with magnetic recording material
• Disk surface is logically divided into tracks, which are subdivided
into sectors
• The disk controller determines the logical interaction between
the device and the computer
 Non-volatile memory (NVM) devices– faster than hard disks,
nonvolatile
• Various technologies
• Becoming more popular as capacity and performance increases,
price drops

Operating System Concepts – 10th Edition 1.18 Silberschatz, Galvin and Gagne ©2018
Storage Definitions and Notation Review
 The basic unit of computer storage is the bit. A bit can contain one of two
values, 0 and 1. All other storage in a computer is based on collections of bits.
Given enough bits, it is amazing how many things a computer can represent:
numbers, letters, images, movies, sounds, documents, and programs, to name
a few. A byte is 8 bits, and on most computers it is the smallest convenient
chunk of storage. For example, most computers don’t have an instruction to
move a bit but do have one to move a byte. A less common term is word,
which is a given computer architecture’s native unit of data. A word is made
up of one or more bytes. For example, a computer that has 64-bit registers and
64-bit memory addressing typically has 64-bit (8-byte) words. A computer
executes many operations in its native word size rather than a byte at a time.

Computer storage, along with most computer throughput, is generally


measured and manipulated in bytes and collections of bytes. A kilobyte, or
KB , is 1,024 bytes; a megabyte, or MB, is 1,0242  bytes; a gigabyte, or GB, is
1,0243  bytes; a terabyte, or TB, is 1,0244  bytes; and a petabyte, or PB, is 1,0245
bytes. Computer manufacturers often round off these numbers and say that
a megabyte is 1 million bytes and a gigabyte is 1 billion bytes. Networking
measurements are an exception to this general rule; they are given in bits
(because networks move data a bit at a time).

Operating System Concepts – 10th Edition 1.19 Silberschatz, Galvin and Gagne ©2018
Storage Hierarchy
 Storage systems organized in hierarchy
• Speed
• Cost
• Volatility
 Caching – copying information into faster storage system; main
memory can be viewed as a cache for secondary storage
 Device Driver for each device controller to manage I/O
• Provides uniform interface between controller and kernel

Operating System Concepts – 10th Edition 1.20 Silberschatz, Galvin and Gagne ©2018
Storage-Device Hierarchy

Operating System Concepts – 10th Edition 1.21 Silberschatz, Galvin and Gagne ©2018
How a Modern Computer Works

A von Neumann architecture

Operating System Concepts – 10th Edition 1.22 Silberschatz, Galvin and Gagne ©2018
Direct Memory Access Structure

 Used for high-speed I/O devices able to transmit information


at close to memory speeds
 Device controller transfers blocks of data from buffer storage
directly to main memory without CPU intervention
 Only one interrupt is generated per block, rather than the one
interrupt per byte

Operating System Concepts – 10th Edition 1.23 Silberschatz, Galvin and Gagne ©2018
Operating-System Operations
 Bootstrap program – simple code to initialize the system, load the
kernel
 Kernel loads
 Starts system daemons (services provided outside of the kernel)
 Kernel interrupt driven (hardware and software)
• Hardware interrupt by one of the devices
• Software interrupt (exception or trap):
 Software error (e.g., division by zero)
 Request for operating system service – system call
 Other process problems include infinite loop, processes
modifying each other or the operating system

Operating System Concepts – 10th Edition 1.24 Silberschatz, Galvin and Gagne ©2018
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
 One job selected and run via job scheduling
 When job has to wait (for I/O for example), OS switches to
another job

Operating System Concepts – 10th Edition 1.25 Silberschatz, Galvin and Gagne ©2018
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

Operating System Concepts – 10th Edition 1.26 Silberschatz, Galvin and Gagne ©2018
Memory Layout for Multiprogrammed System

Operating System Concepts – 10th Edition 1.27 Silberschatz, Galvin and Gagne ©2018
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

Operating System Concepts – 10th Edition 1.28 Silberschatz, Galvin and Gagne ©2018
Transition from User to Kernel Mode

Operating System Concepts – 10th Edition 1.29 Silberschatz, Galvin and Gagne ©2018
Process Management Activities

The operating system is responsible for the following activities in


connection with process management:
 Creating and deleting both user and system processes
 Suspending and resuming processes
 Providing mechanisms for process synchronization
 Providing mechanisms for process communication
 Providing mechanisms for deadlock handling

Operating System Concepts – 10th Edition 1.30 Silberschatz, Galvin and Gagne ©2018
Memory Management

 To execute a program all (or part) of the instructions must be in


memory
 All (or part) of the data that is needed by the program must be in
memory
 Memory management determines what is in memory and when
• Optimizing CPU utilization and computer response to users
 Memory management activities
• Keeping track of which parts of memory are currently being used
and by whom
• Deciding which processes (or parts thereof) and data to move into
and out of memory
• Allocating and deallocating memory space as needed

Operating System Concepts – 10th Edition 1.31 Silberschatz, Galvin and Gagne ©2018
Mass-Storage Management
 Usually disks used to store data that does not fit in main
memory or data that must be kept for a “long” period of time
 Proper management is of central importance
 Entire speed of computer operation hinges on disk subsystem
and its algorithms
 OS activities
• Mounting and unmounting
• Free-space management
• Storage allocation
• Disk scheduling
• Partitioning
• Protection

Operating System Concepts – 10th Edition 1.32 Silberschatz, Galvin and Gagne ©2018
Caching

 Important principle, performed at many levels in a computer


(in hardware, operating system, software)
 Information in use copied from slower to faster storage
temporarily
 Faster storage (cache) checked first to determine if
information is there
• If it is, information used directly from the cache (fast)
• If not, data copied to cache and used there
 Cache smaller than storage being cached
• Cache management important design problem
• Cache size and replacement policy

Operating System Concepts – 10th Edition 1.33 Silberschatz, Galvin and Gagne ©2018
Characteristics of Various Types of Storage

Movement between levels of storage hierarchy can be explicit or implicit

Operating System Concepts – 10th Edition 1.34 Silberschatz, Galvin and Gagne ©2018
Migration of data “A” from Disk to Register

 Multitasking environments must be careful to use most recent value,


no matter where it is stored in the storage hierarchy

 Multiprocessor environment must provide cache coherency in


hardware such that all CPUs have the most recent value in their
cache
 Distributed environment situation even more complex
• Several copies of a datum can exist
• Various solutions covered in Chapter 19

Operating System Concepts – 10th Edition 1.35 Silberschatz, Galvin and Gagne ©2018
Protection and Security
 Protection – any mechanism for controlling access of processes or
users to resources defined by the OS
 Security – defense of the system against internal and external attacks
• Huge range, including denial-of-service, worms, viruses, identity
theft, theft of service
 Systems generally first distinguish among users, to determine who
can do what
• User identities (user IDs, security IDs) include name and
associated number, one per user
• User ID then associated with all files, processes of that user to
determine access control
• Group identifier (group ID) allows set of users to be defined and
controls managed, then also associated with each process, file
• Privilege escalation allows user to change to effective ID with
more rights

Operating System Concepts – 10th Edition 1.36 Silberschatz, Galvin and Gagne ©2018
Virtualization

 Allows operating systems to run applications within other OSes


• Vast and growing industry
 Emulation used when source CPU type different from target type (i.e.
PowerPC to Intel x86)
• Generally slowest method
• When computer language not compiled to native code –
Interpretation
 Virtualization – OS natively compiled for CPU, running guest OSes
also natively compiled
• Consider VMware running WinXP guests, each running
applications, all on native WinXP host OS
• VMM (virtual machine Manager) provides virtualization services

Operating System Concepts – 10th Edition 1.37 Silberschatz, Galvin and Gagne ©2018
Computing Environments - Virtualization

Operating System Concepts – 10th Edition 1.38 Silberschatz, Galvin and Gagne ©2018
Distributed Systems
 Collection of separate, possibly heterogeneous, systems networked
together
• Network is a communications path, TCP/IP most common
 Local Area Network (LAN)
 Wide Area Network (WAN)
 Metropolitan Area Network (MAN)
 Personal Area Network (PAN)
 Network Operating System provides features between systems
across network
• Communication scheme allows systems to exchange messages
• Illusion of a single system

Operating System Concepts – 10th Edition 1.39 Silberschatz, Galvin and Gagne ©2018
Computer System Architecture

Operating System Concepts – 10th Edition 1.40 Silberschatz, Galvin and Gagne ©2018
Computer-System Architecture

 Most systems use a single general-purpose processor


• Most systems have special-purpose processors as well
 Multiprocessors systems growing in use and importance
• Also known as parallel systems, tightly-coupled systems
• Advantages include:
1. Increased throughput
2. Economy of scale
3. Increased reliability – graceful degradation or fault tolerance
• Two types:
1. Asymmetric Multiprocessing – each processor is assigned
a specie task.
2. Symmetric Multiprocessing – each processor performs all
tasks

Operating System Concepts – 10th Edition 1.41 Silberschatz, Galvin and Gagne ©2018
Symmetric Multiprocessing Architecture

Operating System Concepts – 10th Edition 1.42 Silberschatz, Galvin and Gagne ©2018
Dual-Core Design
 Multi-chip and multicore
 Systems containing all chips
• Chassis containing multiple separate systems

Operating System Concepts – 10th Edition 1.43 Silberschatz, Galvin and Gagne ©2018
Clustered Systems

Operating System Concepts – 10th Edition 1.44 Silberschatz, Galvin and Gagne ©2018
Computer System Environments

Operating System Concepts – 10th Edition 1.45 Silberschatz, Galvin and Gagne ©2018
Computing Environments

 Traditional
 Mobile
 Client Server
 Peer-to-Peer
 Cloud computing
 Real-time Embedded

Operating System Concepts – 10th Edition 1.46 Silberschatz, Galvin and Gagne ©2018
Traditional

 Stand-alone general-purpose machines


 But blurred as most systems interconnect with others (i.e.,
the Internet)
 Portals provide web access to internal systems
 Network computers (thin clients) are like Web terminals
 Mobile computers interconnect via wireless networks
 Networking becoming ubiquitous – even home systems
use firewalls to protect home computers from Internet
attacks

Operating System Concepts – 10th Edition 1.47 Silberschatz, Galvin and Gagne ©2018
Mobile
 Handheld smartphones, tablets, etc.
 What is the functional difference between them and a
“traditional” laptop?
 Extra feature – more OS features (GPS, gyroscope)
 Allows new types of apps like augmented reality
 Use IEEE 802.11 wireless, or cellular data networks for
connectivity
 Leaders are Apple iOS and Google Android

Operating System Concepts – 10th Edition 1.48 Silberschatz, Galvin and Gagne ©2018
Client Server

 Client-Server Computing
• Dumb terminals supplanted by smart PCs
• Many systems now servers, responding to requests generated by
clients
 Compute-server system provides an interface to client to
request services (i.e., database)
 File-server system provides interface for clients to store and
retrieve files

Operating System Concepts – 10th Edition 1.49 Silberschatz, Galvin and Gagne ©2018
Peer-to-Peer

 Another model of distributed system


 P2P does not distinguish clients and servers
• Instead all nodes are considered peers
• May each act as client, server or both
• Node must join P2P network
 Registers its service with central
lookup service on network, or
 Broadcast request for service and
respond to requests for service via
discovery protocol
• Examples include Napster and Gnutella,
Voice over IP (VoIP) such as Skype

Operating System Concepts – 10th Edition 1.50 Silberschatz, Galvin and Gagne ©2018
Cloud Computing
 Delivers computing, storage, even apps as a service
across a network
 Logical extension of virtualization because it uses
virtualization as the base for it functionality.
• Amazon EC2 has thousands of servers, millions of
virtual machines, petabytes of storage available
across the Internet, pay based on usage

Operating System Concepts – 10th Edition 1.51 Silberschatz, Galvin and Gagne ©2018
Cloud Computing (Cont.)
 Many types
• Public cloud – available via Internet to anyone willing to pay
• Private cloud – run by a company for the company’s own use
• Hybrid cloud – includes both public and private cloud components
• Software as a Service (SaaS) – one or more applications available
via the Internet (i.e., word processor)
• Platform as a Service (PaaS) – software stack ready for application
use via the Internet (i.e., a database server)
• Infrastructure as a Service (IaaS) – servers or storage available
over Internet (i.e., storage available for backup use)

Operating System Concepts – 10th Edition 1.52 Silberschatz, Galvin and Gagne ©2018
End of Chapter 1

Operating System Concepts – 10h Edition Silberschatz, Galvin and Gagne ©2018

You might also like