Chapter 1
Chapter 1
Operating System Concepts – 10h Edition Silberschatz, Galvin and Gagne ©2018
Chapter 1: Introduction
Operating System Concepts – 10th Edition 1.2 Silberschatz, Galvin and Gagne ©2018
Objectives
Operating System Concepts – 10th Edition 1.3 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.4 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.5 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.6 Silberschatz, Galvin and Gagne ©2018
What Does the Term Operating System Mean?
Operating System Concepts – 10th Edition 1.7 Silberschatz, Galvin and Gagne ©2018
What is an Operating System?
Operating System Concepts – 10th Edition 1.8 Silberschatz, Galvin and Gagne ©2018
Computer System Structure
Operating System Concepts – 10th Edition 1.9 Silberschatz, Galvin and Gagne ©2018
Abstract View of Components of Computer
Operating System Concepts – 10th Edition 1.10 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.11 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.12 Silberschatz, Galvin and Gagne ©2018
Operating System Definition
Operating System Concepts – 10th Edition 1.13 Silberschatz, Galvin and Gagne ©2018
Overview of Computer System Structure
Operating System Concepts – 10th Edition 1.14 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.15 Silberschatz, Galvin and Gagne ©2018
Computer-System Operation
Operating System Concepts – 10th Edition 1.16 Silberschatz, Galvin and Gagne ©2018
Common Functions of Interrupts
Operating System Concepts – 10th Edition 1.17 Silberschatz, Galvin and Gagne ©2018
Interrupt Handling
Operating System Concepts – 10th Edition 1.18 Silberschatz, Galvin and Gagne ©2018
Interrupt-drive I/O Cycle
Operating System Concepts – 10th Edition 1.19 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):
4 Software error (e.g., division by zero)
4 Request for operating system service – system call
4 Other process problems include infinite loop, processes modifying
each other or the operating system
Operating System Concepts – 10th Edition 1.20 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.21 Silberschatz, Galvin and Gagne ©2018
Multitasking (Timesharing)
Operating System Concepts – 10th Edition 1.22 Silberschatz, Galvin and Gagne ©2018
Memory Layout for Multiprogrammed System
Operating System Concepts – 10th Edition 1.23 Silberschatz, Galvin and Gagne ©2018
Dual-mode Operation
Operating System Concepts – 10th Edition 1.24 Silberschatz, Galvin and Gagne ©2018
Transition from User to Kernel Mode
Operating System Concepts – 10th Edition 1.25 Silberschatz, Galvin and Gagne ©2018
Timer
▪ Timer to prevent infinite loop (or process hogging resources)
• Timer is set to interrupt the computer after some time period
• Keep a counter that is decremented by the physical clock
• Operating system set the counter (privileged instruction)
• When counter zero generate an interrupt
• Set up before scheduling process to regain control or terminate program
that exceeds allotted time
Operating System Concepts – 10th Edition 1.26 Silberschatz, Galvin and Gagne ©2018
Process Management
▪ A process is a program in execution. It is a unit of work within the system.
Program is a passive entity; process is an active entity.
▪ Process needs resources to accomplish its task
• CPU, memory, I/O, files
• Initialization data
▪ Process termination requires reclaim of any reusable resources
▪ Single-threaded process has one program counter specifying location of
next instruction to execute
• Process executes instructions sequentially, one at a time, until completion
▪ Multi-threaded process has one program counter per thread
▪ Typically system has many processes, some user, some operating system
running concurrently on one or more CPUs
• Concurrency by multiplexing the CPUs among the processes / threads
Operating System Concepts – 10th Edition 1.27 Silberschatz, Galvin and Gagne ©2018
Process Management Activities
Operating System Concepts – 10th Edition 1.28 Silberschatz, Galvin and Gagne ©2018
Memory Management
Operating System Concepts – 10th Edition 1.29 Silberschatz, Galvin and Gagne ©2018
File-system Management
▪ OS provides uniform, logical view of information storage
• Abstracts physical properties to logical storage unit - file
• Each medium is controlled by device (i.e., disk drive, tape drive)
4 Varying properties include access speed, capacity, data-transfer rate,
access method (sequential or random)
▪ File-System management
• Files usually organized into directories
• Access control on most systems to determine who can access what
• OS activities include
4 Creating and deleting files and directories
4 Primitives to manipulate files and directories
4 Mapping files onto secondary storage
4 Backup files onto stable (non-volatile) storage media
Operating System Concepts – 10th Edition 1.30 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.31 Silberschatz, Galvin and Gagne ©2018
Caching
Operating System Concepts – 10th Edition 1.32 Silberschatz, Galvin and Gagne ©2018
Characteristics of Various Types of Storage
Operating System Concepts – 10th Edition 1.33 Silberschatz, Galvin and Gagne ©2018
Migration of data “A” from Disk to Register
Operating System Concepts – 10th Edition 1.34 Silberschatz, Galvin and Gagne ©2018
I/O Subsystem
▪ One purpose of OS is to hide peculiarities of hardware devices from the user
▪ I/O subsystem responsible for
• Memory management of I/O including buffering (storing data
temporarily while it is being transferred), caching (storing parts of data in
faster storage for performance), spooling (the overlapping of output of
one job with input of other jobs)
• General device-driver interface
• Drivers for specific hardware devices
Operating System Concepts – 10th Edition 1.35 Silberschatz, Galvin and Gagne ©2018
Protection and Security
Operating System Concepts – 10th Edition 1.36 Silberschatz, Galvin and Gagne ©2018
Virtualization
Operating System Concepts – 10th Edition 1.37 Silberschatz, Galvin and Gagne ©2018
Virtualization (cont.)
▪ Use cases involve laptops and desktops running multiple OSes for exploration
or compatibility
• Apple laptop running Mac OS X host, Windows as a guest
• Developing apps for multiple OSes without having multiple systems
• Quality assurance testing applications without having multiple systems
• Executing and managing compute environments within data centers
▪ VMM can run natively, in which case they are also the host
• There is no general-purpose host then (VMware ESX and Citrix
XenServer)
Operating System Concepts – 10th Edition 1.38 Silberschatz, Galvin and Gagne ©2018
Computing Environments - Virtualization
Operating System Concepts – 10th Edition 1.39 Silberschatz, Galvin and Gagne ©2018
Operating System Structure
▪ General-purpose OS is very large program
▪ Various ways to structure ones
• Simple structure – MS-DOS
• More complex -- UNIX
• Layered – an abstrcation
• Microkernel -Mach
Operating System Concepts – 10th Edition 1.40 Silberschatz, Galvin and Gagne ©2018
Simple Structure -- MS-DOS
Operating System Concepts – 10th Edition 1.41 Silberschatz, Galvin and Gagne ©2018
Non Simple Structure -- UNIX
Operating System Concepts – 10th Edition 1.42 Silberschatz, Galvin and Gagne ©2018
Traditional UNIX System Structure
Beyond simple but not fully layered
Operating System Concepts – 10th Edition 1.43 Silberschatz, Galvin and Gagne ©2018
Layered Approach
Operating System Concepts – 10th Edition 1.44 Silberschatz, Galvin and Gagne ©2018
Microkernel System Structure
▪ Moves as much from the kernel into user space
▪ Mach example of microkernel
• Mac OS X kernel (Darwin) partly based on Mach
▪ Communication takes place between user modules using message
passing
▪ Benefits:
• Easier to extend a microkernel
• Easier to port the operating system to new architectures
• More reliable (less code is running in kernel mode)
• More secure
▪ Detriments:
• Performance overhead of user space to kernel space
communication
Operating System Concepts – 10th Edition 1.45 Silberschatz, Galvin and Gagne ©2018
Microkernel System Structure
Operating System Concepts – 10th Edition 1.46 Silberschatz, Galvin and Gagne ©2018
Modules
▪ Many modern operating systems implement loadable kernel modules
• Uses object-oriented approach
• Each core component is separate
• Each talks to the others over known interfaces
• Each is loadable as needed within the kernel
▪ Overall, similar to layers but with more flexible
• Linux, Solaris, etc
Operating System Concepts – 10th Edition 1.47 Silberschatz, Galvin and Gagne ©2018
Solaris Modular Approach
Operating System Concepts – 10th Edition 1.48 Silberschatz, Galvin and Gagne ©2018
Computer System Environments
Operating System Concepts – 10th Edition 1.49 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.50 Silberschatz, Galvin and Gagne ©2018
Traditional
Operating System Concepts – 10th Edition 1.51 Silberschatz, Galvin and Gagne ©2018
Mobile
Operating System Concepts – 10th Edition 1.52 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
4 Compute-server system provides an interface to client to request
services (i.e., database)
4 File-server system provides interface for clients to store and
retrieve files
Operating System Concepts – 10th Edition 1.53 Silberschatz, Galvin and Gagne ©2018
Peer-to-Peer
Operating System Concepts – 10th Edition 1.54 Silberschatz, Galvin and Gagne ©2018
Distributed Systems
▪ Collection of separate, possibly heterogeneous, systems networked together
• Network is a communications path, TCP/IP most common
4 Local Area Network (LAN)
4 Wide Area Network (WAN)
4 Metropolitan Area Network (MAN)
4 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.55 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.56 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.57 Silberschatz, Galvin and Gagne ©2018
Cloud Computing (cont.)
▪ Cloud computing environments composed of traditional OSes, plus VMMs,
plus cloud management tools
• Internet connectivity requires security like firewalls
• Load balancers spread traffic across multiple applications
Operating System Concepts – 10th Edition 1.58 Silberschatz, Galvin and Gagne ©2018
Real-Time Embedded Systems
Operating System Concepts – 10th Edition 1.59 Silberschatz, Galvin and Gagne ©2018
Free and Open-Source Operating Systems
▪ Operating systems made available in source-code format rather than just
binary closed-source and proprietary
▪ Counter to the copy protection and Digital Rights Management
(DRM) movement
▪ Started by Free Software Foundation (FSF), which has “copyleft” GNU
Public License (GPL)
• Free software and open-source software are two different ideas championed by
different groups of people
4 https://www.gnu.org/philosophy/open-source-misses-the-point.en.html
▪ Examples include GNU/Linux and BSD UNIX (including core of Mac OS
X), and many more
▪ Can use VMM like VMware Player (Free on Windows), Virtualbox (open
source and free on many platforms - http://www.virtualbox.com)
• Use to run guest operating systems for exploration
Operating System Concepts – 10th Edition 1.60 Silberschatz, Galvin and Gagne ©2018
Operating System Services
▪ Operating systems provide an environment for execution of programs and
services to programs and users
▪ One set of operating-system services provides functions that are helpful to the
user:
• User interface - Almost all operating systems have a user interface (UI).
4 Varies between Command-Line (CLI), Graphics User Interface
(GUI), Batch
• Program execution - The system must be able to load a program into
memory and to run that program, end execution, either normally or
abnormally (indicating error)
• I/O operations - A running program may require I/O, which may
involve a file or an I/O device
Operating System Concepts – 10th Edition 1.61 Silberschatz, Galvin and Gagne ©2018
Operating System Services (Cont.)
▪ One set of operating-system services provides functions that are helpful to the user
(Cont.):
• File-system manipulation - The file system is of particular interest. Programs
need to read and write files and directories, create and delete them, search them,
list file Information, permission management.
• Communications – Processes may exchange information, on the same computer
or between computers over a network
4 Communications may be via shared memory or through message passing
(packets moved by the OS)
• Error detection – OS needs to be constantly aware of possible errors
4 May occur in the CPU and memory hardware, in I/O devices, in user
program
4 For each type of error, OS should take the appropriate action to ensure
correct and consistent computing
4 Debugging facilities can greatly enhance the user’s and programmer’s
abilities to efficiently use the system
Operating System Concepts – 10th Edition 1.62 Silberschatz, Galvin and Gagne ©2018
Operating System Services (Cont.)
▪ Another set of OS functions exists for ensuring the efficient operation of the system
itself via resource sharing
• Resource allocation - When multiple users or multiple jobs running
concurrently, resources must be allocated to each of them
4 Many types of resources - CPU cycles, main memory, file storage, I/O
devices.
• Accounting - To keep track of which users use how much and what kinds of
computer resources
• Protection and security - The owners of information stored in a multiuser or
networked computer system may want to control use of that information,
concurrent processes should not interfere with each other
4 Protection involves ensuring that all access to system resources is
controlled
4 Security of the system from outsiders requires user authentication, extends
to defending external I/O devices from invalid access attempts
Operating System Concepts – 10th Edition 1.63 Silberschatz, Galvin and Gagne ©2018
A View of Operating System Services
Operating System Concepts – 10th Edition 1.64 Silberschatz, Galvin and Gagne ©2018
User Operating System Interface - CLI
Operating System Concepts – 10th Edition 1.65 Silberschatz, Galvin and Gagne ©2018
Bourne Shell Command Interpreter
Operating System Concepts – 10th Edition 1.66 Silberschatz, Galvin and Gagne ©2018
User Operating System Interface - GUI
Operating System Concepts – 10th Edition 1.67 Silberschatz, Galvin and Gagne ©2018
Touchscreen Interfaces
Operating System Concepts – 10th Edition 1.68 Silberschatz, Galvin and Gagne ©2018
The Mac OS X GUI
Operating System Concepts – 10th Edition 1.69 Silberschatz, Galvin and Gagne ©2018
System Calls
▪ Programming interface to the services provided by the OS
▪ Typically written in a high-level language (C or C++)
▪ Mostly accessed by programs via a high-level Application
Programming Interface (API) rather than direct system call
use
▪ Three most common APIs are Win32 API for Windows, POSIX
API for POSIX-based systems (including virtually all versions
of UNIX, Linux, and Mac OS X), and Java API for the Java
virtual machine (JVM)
Note that the system-call names used throughout this
text are generic
Operating System Concepts – 10th Edition 1.70 Silberschatz, Galvin and Gagne ©2018
Example of System Calls
▪ System call sequence to copy the contents of one file to another file
Operating System Concepts – 10th Edition 1.71 Silberschatz, Galvin and Gagne ©2018
Example of Standard API
Operating System Concepts – 10th Edition 1.72 Silberschatz, Galvin and Gagne ©2018
System Call Implementation
Operating System Concepts – 10th Edition 1.73 Silberschatz, Galvin and Gagne ©2018
API – System Call – OS Relationship
Operating System Concepts – 10th Edition 1.74 Silberschatz, Galvin and Gagne ©2018
System Call Parameter Passing
Operating System Concepts – 10th Edition 1.75 Silberschatz, Galvin and Gagne ©2018
Parameter Passing via Table
Operating System Concepts – 10th Edition 1.76 Silberschatz, Galvin and Gagne ©2018
Types of System Calls
▪ Process control
• create process, terminate process
• end, abort
• load, execute
• get process attributes, set process attributes
• wait for time
• wait event, signal event
• allocate and free memory
• Dump memory if error
• Debugger for determining bugs, single step execution
• Locks for managing access to shared data between processes
Operating System Concepts – 10th Edition 1.77 Silberschatz, Galvin and Gagne ©2018
Types of System Calls
▪ File management
• create file, delete file
• open, close file
• read, write, reposition
• get and set file attributes
▪ Device management
• request device, release device
• read, write, reposition
• get device attributes, set device attributes
• logically attach or detach devices
Operating System Concepts – 10th Edition 1.78 Silberschatz, Galvin and Gagne ©2018
Types of System Calls (Cont.)
▪ Information maintenance
• get time or date, set time or date
• get system data, set system data
• get and set process, file, or device attributes
▪ Communications
• create, delete communication connection
• send, receive messages if message passing model to host name or
process name
4 From client to server
• Shared-memory model create and gain access to memory regions
• transfer status information
• attach and detach remote devices
Operating System Concepts – 10th Edition 1.79 Silberschatz, Galvin and Gagne ©2018
Types of System Calls (Cont.)
▪ Protection
• Control access to resources
• Get and set permissions
• Allow and deny user access
Operating System Concepts – 10th Edition 1.80 Silberschatz, Galvin and Gagne ©2018
Examples of Windows and Unix System Calls
Operating System Concepts – 10th Edition 1.81 Silberschatz, Galvin and Gagne ©2018
Standard C Library Example
▪ C program invoking printf() library call, which calls write() system call
Operating System Concepts – 10th Edition 1.82 Silberschatz, Galvin and Gagne ©2018
Computer System Architecture
Operating System Concepts – 10th Edition 1.83 Silberschatz, Galvin and Gagne ©2018
Computer-System Architecture
Operating System Concepts – 10th Edition 1.84 Silberschatz, Galvin and Gagne ©2018
Symmetric Multiprocessing Architecture
Operating System Concepts – 10th Edition 1.85 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.86 Silberschatz, Galvin and Gagne ©2018
Non-Uniform Memory Access System
Operating System Concepts – 10th Edition 1.87 Silberschatz, Galvin and Gagne ©2018
Clustered Systems
Operating System Concepts – 10th Edition 1.88 Silberschatz, Galvin and Gagne ©2018
Clustered Systems
Operating System Concepts – 10th Edition 1.89 Silberschatz, Galvin and Gagne ©2018