ch01.1 - Introduction
ch01.1 - Introduction
1.1: Introduction
Outline
Operating System Concepts – 10th Edition 1.2 Silberschatz, Galvin and Gagne ©2018
1
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
2
Computer System Structure
Computer system can be divided into four components:
• Hardware – provides basic computing resources: CPU, memory, I/O devices
• OS: Controls and coordinates use of hardware among various apps 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, games
• Users: People, machines, other computers
Abstract View of Components of Computer
Operating System Concepts – 10th Edition 1.5 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.6 Silberschatz, Galvin and Gagne ©2018
3
Operating System Definition
“The one program running at all times on the computer” is the kernel,
which is 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
Operating System Concepts – 10th Edition 1.7 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.8 Silberschatz, Galvin and Gagne ©2018
4
Transistors and Batch Systems – Gen2
The First
Operating System Concepts – 10th Edition 1.9 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.10 Silberschatz, Galvin and Gagne ©2018
5
Transistors and Batch Systems
Multiprogramming – Gen3
Operating System Concepts – 10th Edition 1.12 Silberschatz, Galvin and Gagne ©2018
6
Gen4 & 5
Personal computer
Network OS: Windows NT, Server
Distributed OS
Mobile, PDA…
Operating System Concepts – 10th Edition 1.13 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.14 Silberschatz, Galvin and Gagne ©2018
7
Computer-System Organization
I/O devices and the CPU can execute concurrently
A particular device type (disk, audio, display) is be in charge by a device
controller
A device controller:
• has a local buffer,
• is responsible for moving the data between the peripheral devices that it
controls and its local buffer storage
• OSs have device driver for each device controller
Operation: (The CPU and the device controllers can execute in parallel)
• 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
=> Organization focusing on 3 key aspects: interrupt, storage & I/O
structure
Operating System Concepts – 10th Edition 1.15 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.16 Silberschatz, Galvin and Gagne ©2018
8
Interrupt Timeline
A timeline of the operation:
the CPU is interrupted, it stops what it is doing
Immediately transfers execution to a fixed location.
The interrupt service routine executes; on completion,
the CPU resumes the interrupted computation
Operating System Concepts – 10th Edition 1.17 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:
• Overload (div/0)
• Timer
• I/O
• Hardware failure
• Trap (software interrupt)
Separate segments of code determine what action should be taken
for each type of interrupt
Operating System Concepts – 10th Edition 1.18 Silberschatz, Galvin and Gagne ©2018
9
Interrupt-drive I/O Cycle
Operating System Concepts – 10th Edition 1.19 Silberschatz, Galvin and Gagne ©2018
I/O Structure
Two methods for handling I/O
After I/O starts, control returns to user program only upon I/O completion
• Wait instruction idles the CPU until the next interrupt
• Wait loop (contention for memory access)
• At most one I/O request is outstanding at a time, no simultaneous I/O
processing
After I/O starts, control returns to user program without waiting for I/O
completion
• System call – request to the OS to allow user to wait for I/O completion
• Device-status table contains entry for each I/O device indicating its type,
address, and state
• OS indexes into I/O device table to determine device status and to modify
table entry to include interrupt
Operating System Concepts – 10th Edition 1.20 Silberschatz, Galvin and Gagne ©2018
10
Storage Structure
Main memory – only large storage media that the CPU can access directly
• Typically, volatile
• Typically, random-access memory (RAM) in the form of Dynamic
Random-access Memory (DRAM)
Secondary storage – extension of main memory that provides large
nonvolatile storage capacity
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.21 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.22 Silberschatz, Galvin and Gagne ©2018
11
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.23 Silberschatz, Galvin and Gagne ©2018
Storage-Device Hierarchy
Operating System Concepts – 10th Edition 1.24 Silberschatz, Galvin and Gagne ©2018
12
How a Modern Computer Works
Operating System Concepts – 10th Edition 1.25 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.26 Silberschatz, Galvin and Gagne ©2018
13
Operating-System Operations
Operating System Concepts – 10th Edition 1.27 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.28 Silberschatz, Galvin and Gagne ©2018
14
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 (keep either the CPU or the I/O devices busy at all times)
• the most important aspects of operating systems
In a multiprogrammed system
• a program in execution is termed a process
• several processes in memory simultaneously
• OS picks and begins to execute one of these processes.
• Eventually, the process may have to wait for some task, such as an
I/O operation, to complete
Memory layout for a multiprogramming system:
Operating system
Process 1
Process 2
Process 3
Process 4
Operating System Concepts – 10th Edition 1.29 Silberschatz, Galvin and Gagne ©2018
Batch Processing
Batch processing is a technique in which an OS collects the programs and
data together in a batch before processing starts.
Advantages
• takes much of the work of the operator to the computer.
• Increased performance as a new job get started
Disadvantages
• Difficult to debug program. A job could enter an infinite loop.
• Due to lack of protection scheme, one batch job can affect pending jobs
Operating System Concepts – 10th Edition 1.30 Silberschatz, Galvin and Gagne ©2018
15
Multitasking (Timesharing)
A logical extension of multiprogramming – 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 1 program executing in memory, => called 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 run programs that are larger than actual physical
memory
Operating System Concepts – 10th Edition 1.31 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 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”
Some instructions designated as privileged – protect OS from errant users
• only executable in kernel mode
• If an attempt is made to execute a privileged instruction in user mode, the
hardware does not execute the instruction
Operating System Concepts – 10th Edition 1.32 Silberschatz, Galvin and Gagne ©2018
16
Dual-mode Operation (Cont.)
How do we guarantee that user does not explicitly set the mode bit to “kernel”?
• When the system starts executing it is in “kernel mode”
• When control is given to a user program: changes to “user mode”.
• When a user issues a system call it results in an interrupt, which trap to the
operating system => the mode–bit is set to “kernel mode”.
Operating System Concepts – 10th Edition 1.33 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.34 Silberschatz, Galvin and Gagne ©2018
17
Resource Management
An operating system is a resource manager.
The system’s CPU, memory space, file-storage space, and I/O devices are
among the resources that the operating system must manage.
Resource Management
• Process Management
• Memory Management
• File-System Management
• Mass-Storage Management
• Cache Management
• I/O System Management
Operating System Concepts – 10th Edition 1.35 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
• The execution of a process must be sequential.
• The CPU executes one instruction of the process after another, until
the process completes
Multi-threaded process has multiple program counters, each per thread
Typically, system has many processes, some user, some OS running
concurrently on one or more CPUs
• Concurrency by multiplexing the CPUs among the processes / threads
Operating System Concepts – 10th Edition 1.36 Silberschatz, Galvin and Gagne ©2018
18
Process Management Activities
Operating System Concepts – 10th Edition 1.37 Silberschatz, Galvin and Gagne ©2018
Memory Management
Operating System Concepts – 10th Edition 1.38 Silberschatz, Galvin and Gagne ©2018
19
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)
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
Creating and deleting files and directories
Primitives to manipulate files and directories
Mapping files onto secondary storage
Backup files onto stable (non-volatile) storage media
Operating System Concepts – 10th Edition 1.39 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.40 Silberschatz, Galvin and Gagne ©2018
20
Caching
Operating System Concepts – 10th Edition 1.41 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.42 Silberschatz, Galvin and Gagne ©2018
21
Migration of data “A” from Disk to Register
Operating System Concepts – 10th Edition 1.43 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.44 Silberschatz, Galvin and Gagne ©2018
22
Protection and Security
Operating System Concepts – 10th Edition 1.45 Silberschatz, Galvin and Gagne ©2018
Protection
Operating System Concepts – 10th Edition 1.46 Silberschatz, Galvin and Gagne ©2018
23
Virtualization
Operating System Concepts – 10th Edition 1.47 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.48 Silberschatz, Galvin and Gagne ©2018
24
Virtualization Illustration
Operating System Concepts – 10th Edition 1.49 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.50 Silberschatz, Galvin and Gagne ©2018
25
Computer-System Architecture
Operating System Concepts – 10th Edition 1.51 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.52 Silberschatz, Galvin and Gagne ©2018
26
Dual-Core Design
The core is the component that executes instructions and registers for
storing data locally
Multicore systems can be more eficient than multiple chips with single cores
• because on-chip communication is faster than between-chip
communication
• one chip with multiple cores uses significantly less power than multiple
single-core chips,
Systems containing all chips
Chassis containing multiple separate
Systems
Ex, Dual-Core Design:
• L1-cache (local cache): lower-level:
• L2 cache (shared cache) higher-level
Operating System Concepts – 10th Edition 1.53 Silberschatz, Galvin and Gagne ©2018
Note
Operating System Concepts – 10th Edition 1.54 Silberschatz, Galvin and Gagne ©2018
27
Non-Uniform Memory Access System
Operating System Concepts – 10th Edition 1.55 Silberschatz, Galvin and Gagne ©2018
Clustered Systems
Like multiprocessor systems, but multiple systems working together
Usually sharing storage via a storage-area network (SAN)
Provides a high-availability service which survives failures
• Asymmetric clustering has one machine in hot-standby mode
• Symmetric clustering has multiple nodes running applications,
monitoring each other
Some clusters are for high-performance computing (HPC)
• Applications must be written to use parallelization
Some have distributed lock manager (DLM) to avoid conflicting operations
Operating System Concepts – 10th Edition 1.56 Silberschatz, Galvin and Gagne ©2018
28
PC Motherboard
Operating System Concepts – 10th Edition 1.57 Silberschatz, Galvin and Gagne ©2018
Computing Environments
Traditional
Mobile
Client Server
Pear-to-Pear
Cloud computing
Real-time Embedded
Operating System Concepts – 10th Edition 1.58 Silberschatz, Galvin and Gagne ©2018
29
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.59 Silberschatz, Galvin and Gagne ©2018
Mobile Computing
Operating System Concepts – 10th Edition 1.60 Silberschatz, Galvin and Gagne ©2018
30
Client Server Computing
Operating System Concepts – 10th Edition 1.61 Silberschatz, Galvin and Gagne ©2018
Peer-to-Peer
Operating System Concepts – 10th Edition 1.62 Silberschatz, Galvin and Gagne ©2018
31
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 its 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.63 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.64 Silberschatz, Galvin and Gagne ©2018
32
Cloud Computing (cont.)
Operating System Concepts – 10th Edition 1.65 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.66 Silberschatz, Galvin and Gagne ©2018
33
Free and Open-Source Operating Systems
Operating System Concepts – 10th Edition 1.67 Silberschatz, Galvin and Gagne ©2018
Operating systems that are no longer commercially viable have been open-sourced as well, enabling
us to study how systems operated in a time of fewer CPU, memory, and storage resources.
An extensive but incomplete list of open-source operating-system projects is available
from https://curlie.org/Computers/Software/Operating_Systems/Open_Source/
In addition, the rise of virtualization as a mainstream (and frequently free) computer function
makes it possible to run many operating systems on top of one core system. For example, VMware
(http://www.vmware.com) providesa free “player” for Windows on which hundreds of free
“virtual appliances” can run. Virtualbox (http://www.virtualbox.com) provides a free, open-source
virtual machine manager on many operating systems. Using such tools, students can try out
hundreds of operating systems without dedicated hardware.
The advent of open-source operating systems has also made it easier to make the move from
student to operating-system developer. With some knowledge, some effort, and an Internet
connection, a student can even create a new operating-system distribution. Just a few years ago,
it was difficult or impossible to get access to source code. Now, such access is limited only by
how much interest, time, and disk space a student has.
Operating System Concepts – 10th Edition 1.68 Silberschatz, Galvin and Gagne ©2018
34
End of Chapter 1.1
Operating System Concepts – 10h Edition Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.70 Silberschatz, Galvin and Gagne ©2018
35
Kernel Data Structures
Operating System Concepts – 10th Edition 1.71 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.72 Silberschatz, Galvin and Gagne ©2018
36
Characteristics of Various Types of Storage
Operating System Concepts – 10th Edition 1.73 Silberschatz, Galvin and Gagne ©2018
37