os12
os12
Unit 1 Syllabus
1.2
What is an Operating System?
1.3
Computer System Structure
1.4
Four Components of a Computer System
1.5
What Operating Systems Do
The operating system controls the hardware and coordinates its use
among the various application programs for the various users.
We can also view a computer system as consisting of hardware,
software, and data.
The operating system provides the means for proper use of these
resources in the operation of the computer system.
An operating system is similar to a government. Like a government,
it performs no useful function by itself. It simply provides an
environment within which other programs can do useful work.
To understand more fully the operating system's role, we explore
operating systems from two viewpoints:
The user
The system.
1.6
User View
The user's view of the computer varies according to the
interface being used
Single user computers (e.g., PC, workstations). Such
systems are designed for one user to monopolize its
resources. The goal is to maximize the work (or play) that the
user is performing. the operating system is designed mostly for
ease of use and good performance.
Multi user computers (e.g., mainframes, computing
servers). These users share resources and may exchange
information. The operating system in such cases is designed
to maximize resource utilization -- to assure that all available
CPU time, memory, and I/O are used efficiently and that no
individual users takes more than their air share.
1.7
User View (Cont.)
1.8
System View
1.9
Defining Operating System
1.10
Defining Operating System (Cont.)
No universally accepted definition of what is part of the OS:
1.11
Defining Operating System (Cont.)
No universally accepted definition of what is part of the OS:
1.12
Defining Operating System (Cont.)
1.13
Evolution of Computer Systems
Users
Applications
Database System
Operating System
Hardware
1.14
Computer-System Organization
1.15
Modern Computer System
1.16
Need Of Operating System
OS as a platform for Application programs: The
operating system provides a platform, on top of
which, other programs, called application programs
can run. These application programs help the users
to perform a specific task easily. It acts as an
interface between the computer and the user. It is
designed in such a manner that it operates, controls,
and executes various applications on the computer.
Managing Input-Output unit: The operating system
controls the various system input-output resources
and allocates them to the users or programs as per
their requirements.
1.17
Need Of Operating System
Consistent user interface: Operating System
provides the user an easy-to-work user interface, so
the user doesn’t have to learn a different UI every
time and can focus on the content and be productive
as quickly as possible. Operating System provides
templates, UI components to make the working of a
computer, really easy for the user.
Multitasking: Operating System manages memory
and allows multiple programs to run in their own
space and even communicate with each other
through shared memory. Multitasking gives users a
good experience as they can perform several tasks
on a computer at a time.
1.18
Functions of Operating System
1. Memory Management.
2. Device Management.
3. Processor Management.
4. Security.
5. Error Detection.
6. Coordination between S/W and Users.
7. Job Accounting.
8. File Management.
1.19
Functions of Operating System
1. Memory Management :-It is the management of the main or
primary memory. Whatever program is executed, it has to be
present in the main memory. Main memory is a quick storage
area that may be accessed directly by the CPU. When the
program is completed, the memory region is released and can
be used by other programs. Therefore, there can be more than
one program present at a time. Hence, it is required to manage
the memory.
The operating system:
Allocates and de-allocates the memory.
Keeps a record of which part of primary memory is used by whom
and how much.
Distributes the memory while multiprocessing.
In multiprogramming, the operating system selects which
processes acquire memory when and how much memory they get.
1.20
Functions of Operating System
2. Device Management:- An operating system regulates device
connection using drivers. The processes may require devices for their
use. This management is done by the OS and the purpose is:
To Allocates and deallocates devices to different processes.
To Keeps records of the devices.
Decides which process can use which device for how much time.
3. Processor Management:- In a multi-programming environment, it is
OS who decides which process will get the processor when and for how
long. This task is called Process Scheduling. Following activities are
done by OS for processor management:
It keeps a track of processor tasking and checks the status of
process.
It allocates the processor and also de-allocates processor when a
process is complete and not required.
Scheduling play a very vital role in Process Management.
1.21
Functions of Operating System
4. Security:-An OS by using password and other similar
techniques prevents and checks unauthorized users to access
the data and program. For security, modern operating systems
employ a firewall. A firewall is a type of security system that
monitors all computer activity and blocks it if it detects a threat.
5. Error Detection:-While a computer system is running, a variety
of errors might occur. Error detection guarantees that data is
delivered reliably across susceptible networks. The operating
system continuously monitors the system to locate or recognize
problems and protects the system from them.
6. Coordination between S/W and User:-The operating system
(OS) allows hardware components to be coordinated and
directs and allocates assemblers, interpreters, compilers, and
other software to different users of the computer system.
1.22
Functions of Operating System
7. Job Accounting:- As the operating system keeps track of all
the functions of a computer system. Hence, it makes a record
of all the activities taking place on the system. It has an
account of all the information about the memory, resources,
errors, etc. Therefore, this information can be used as and
when required.
8. File Management:- The operating system manages resource
allocation and de-allocation. It specifies which process
receives the file and for how long. It also keeps track of
information, location, uses, status, and so on. These
groupings of resources are referred to as file systems. The
files on a system are stored in different directories.
The OS:
Keeps records of the status and locations of files.
Allocates and deallocates resources.
Decides who gets the resources.
1.23
Operating System Services
1.24
Operating System Services
1.25
Operating System Services
1. Program Execution
The OS loads a program into memory and then executes that
program. It also makes sure that once started that program can end
its execution, either normally or forcefully. The major steps during
program management are:
Loading a program into memory.
Executing the program.
Making sure the program completes its execution.
Providing a mechanism for:
1. process synchronization.
2. process communication.
3. deadlock handling.
1.26
Operating System Services
1.27
Operating System Services
3. I/O Operations
I/O operations are required during the execution of a program. To
maintain efficiency and protection of the program, users cannot
directly govern the I/O devices instead the OS allows to read or write
operations with any file using the I/O devices and also allows access
to any required I/O device when required.
4. Error Detection
Errors may occur in any of the resources like CPU, I/O devices, or
memory hardware. The OS keeps a lookout for such errors, corrects
errors when they occur, and makes sure that the system works
uninterruptedly.
1.28
Operating System Services
5. Communication systems
Processes need to swap information among themselves. These
processes can be from the same computer system or different
computer systems as long as they are connected through
communication lines in a network.
This can be done with the help of OS support using shared memory
or message passing. The OS also manages routing, connection
strategies, and the problem of contention and security.
6. Resource Allocation
When multiple users or multiple jobs run on a system concurrently,
the resources need to be allocated equally to all of them.
CPU scheduling is used to allocate resources fairly and for the
better utilization of the CPU. These resources may include CPU
cycles, main memory storage, file storage, and I/O devices.
1.29
Operating System Services
7. Accounting
This keeps a check of which resource is being used by a user and
for how long it is being used. This is usually done for statistical
purposes.
8. Protection and Security
This is to ensure the safety of the system. Thus, user authentication
is required to access a system. It is also necessary to protect a
process from another when multiple processes are running on a
system at the same time.
The OS controls the access to the resources, protects the I/O
devices from invalid access, and provides authentication through
passwords.
1.30
Booting Procedure
1.31
Booting Procedure
1. Boot Loader: Computers powered by the central processing unit can only
execute code found in the system's memory. The program that starts the
chain reaction that ends with the entire operating system being loaded is the
boot loader or bootstrap loader. The boot loader's only job is to load other
software for the operating system to start.
1.32
Booting Procedure
1.33
Booting Procedure
2. Boot Devices: The boot device is the device from which the operating
system is loaded. A modern PC BIOS (Basic Input/Output System)
supports booting from various devices. These include the local hard disk
drive, optical drive, floppy drive, a network interface card, and a USB device.
The BIOS will allow the user to configure a boot order. If the boot order is set
to:
o CD Drive
o Hard Disk Drive
o Network
The BIOS will try to boot from the CD drive first, and if that fails, then it
will try to boot from the hard disk drive, and if that fails, then it will try to
boot from the network, and if that fails, then it won't boot at all.
1.34
Booting Procedure
3. Boot Sequence: There is a standard boot sequence that all personal
computers use. First, the CPU runs an instruction in memory for the BIOS.
That instruction contains a jump instruction that transfers to the BIOS start-
up program. This program runs a power-on self-test (POST) to check that
devices the computer will rely on are functioning properly. Then, the BIOS
goes through the configured boot sequence until it finds a bootable device.
Once BIOS has found a bootable device, BIOS loads the boot sector and
transfers execution to the boot sector. If the boot device is a hard drive, it
will be a master boot record (MBR).
1.35
Booting Procedure (Current Scenario)
1.36
Booting Procedure (Current Scenario)
Shortcomings of MBR: It was the de facto standard
for quite some time, however it couldn't handle disk
sizes larger than 2 TB and could only support a
maximum of four main partitions.
1.37
Booting Procedure (Current Scenario)
Shortcomings of MBR: It was the de facto standard
for quite some time, however it couldn't handle disk
sizes larger than 2 TB and could only support a
maximum of four main partitions.
1.38
Types of Booting
There are two types of booting in an operating system
Cold Booting: When the computer starts for
the first time or is in a shut-down state and
switch on the power button to start the system,
this type of process to start the computer is
called cold booting. During cold booting, the
system will read all the instructions from the ROM
(BIOS) and the Operating System will be
automatically get loaded into the system. This
booting takes more time than Hot or Warm
Booting.
Warm Booting: Warm or Hot Booting process
is when computer systems come to no
response or hang state, and then the system is
allowed to restart during on condition. It is also
referred to as rebooting. There are many
reasons for this state, and the only solution is to
reboot the computer. Rebooting may be required
when we install new software or hardware.
1.39
Computer-System Operation
1.40
Interrupts
1.41
Common Functions of Interrupts
1.42
Interrupt Timeline
The I/O device (controller) is busy transferring data from the device buffer to
the device. It goes from idle to transferring. This is the peak for I/O device. It
goes back to idle when the transfer is done, until the next request.
The CPU curve shows a peak when the transfer is done because the CPU is
notified by the device (through an interrupt).
1.43
Interrupt-driven I/O cycle.
1.44
Interrupt Handling
The operating system preserves the state of the CPU by storing
registers and the program counter.
Separate segments of code determine what action should be taken for
each type of interrupt
Advantages of Interrupt
Interrupts are important because they give the user better control over
the computer.
Without interrupts, a user may have to wait for a given application to
have a higher priority over the CPU to be ran.
This ensures that the CPU will deal with the process immediately.
It increases the efficiency of CPU.
It decreases the waiting time of CPU.
Stops the wastage of instruction cycle.
Disadvantages
CPU has to do a lot of work to handle interrupts, resume its previous
execution of programs (in short, overhead required to handle the
interrupt request.)
1.45
Storage Structure
Main memory – the only large storage media that the CPU can access
directly
Random access
Typically volatile
Secondary storage – extension of main memory that provides large
nonvolatile storage capacity
Hard disks – 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
Solid-state disks – faster than hard disks, nonvolatile
Various technologies
Becoming more popular
1.46
Storage Definition
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.
A byte is 8 bits, and on most computers, it is the smallest convenient
chunk of storage.
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.
1.47
Storage Definition (Cont.)
1.48
Storage Hierarchy
Storage systems organized in hierarchy
Speed
Cost
Volatility
Caching – copying information from “slow” storage 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
1.49
Storage-device hierarchy
1.50
I/O Structure
A general-purpose computer system consists of CPUs and
multiple device controllers that are connected through a
common bus.
Each device controller is in charge of a specific type of device.
More than one device may be attached. For instance, seven
or more devices can be attached to the small computer-
systems interface (SCSI) controller.
A device controller maintains some local buffer storage and a
set of special-purpose registers.
The device controller is responsible for moving the data
between the peripheral devices that it controls and its local
buffer storage.
Typically, operating systems have a device driver for each
device controller. This device driver understands the device
controller and provides the rest of the operating system with a
uniform interface to the device.
1.51
I/O Structure (Cont.)
To start an I/O operation, the device driver loads the
appropriate registers within the device controller.
The device controller, in turn, examines the contents of these
registers to determine what action to take (such as “read” a
character from the keyboard).
The controller starts the transfer of data from the device to its
local buffer. Once the transfer of data is complete, the device
controller informs the device driver via an interrupt that it has
finished its operation.
The device driver then returns control to the operating system,
possibly returning the data or a pointer to the data if the
operation was a read.
For other operations, the device driver returns status
information.
1.52
Direct Memory Access Structure
Interrupt-driven I/O is fine for moving small amounts of data but
can produce high overhead when used for bulk data movement
such as disk I/O.
To solve this problem, direct memory access (DMA) is used.
After setting up buffers, pointers, and counters for the I/O
device, the device controller transfers an entire block of
data directly to or from its own buffer storage to memory,
with no intervention by the CPU.
Only one interrupt is generated per block, to tell the device
driver that the operation has completed. While the device
controller s performing these operations, the CPU is
available to accomplish other work.
Some high-end systems use switch rather than bus
architecture. On these systems, multiple components can talk to
other components concurrently, rather than competing for
cycles on a shared bus. In this case, DMA is even more
effective. The figure in next slide shows the interplay of all
components of a computer system.
1.53
How a Modern Computer Works
A von Neumann architecture and a depiction of the interplay of
all components of a computer system.
1.54
Classification of Operating system
Single general-purpose processor
Most systems have special-purpose processors as well
Multiprocessors systems
Also known as parallel systems, tightly-coupled systems
Advantages include:
Increased throughput
Economy of scale
Increased reliability – graceful-degradation/fault-tolerance
Two types:
Symmetric Multiprocessing – each processor performs
all tasks
Asymmetric Multiprocessing – each processor is
assigned a specific task.
1.55
Classification of Operating system
Multiprocessing System
Advantages
Increased Throughput: By increasing number of processors, we expect to
get more work done in less time.
Economy of Scale: multiprocessor system can cost less than equivalent
multiple single processor systems.
Increased Reliability: Since work is distributed among several processors;
failure of one processor will not halt the system only slow it down.
Disadvantages
It is complex system.
Process scheduling is difficult in this system.
It required large size of Main memory.
1.56
Image of a Multiprocessor Motherboard
1.57
Image of a Multiprocessor Motherboard
1.58
Symmetric Multiprocessing Architecture
1.59
Multicore Systems
Most CPU design now includes multiple computing cores on a
single chip. Such multiprocessor systems are termed multicore.
Multicore systems can be more efficient 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, an important issue for laptops as
well as mobile devices.
Note -- while multicore systems are multiprocessor systems, not all
multiprocessor systems are multicore.
1.60
A dual-core with two cores placed on the same chip
1.61
Classification of Operating system
Multi-user operating system
A multi-user operating system is an operating system that
permits several users to access a single system running to a
single operating system. These systems are frequently quite
complex, and they must manage the tasks that the various users
connected to them require.
Users will usually sit at terminals or computers connected to the
system via a network and other system machines like printers. A
multi-user operating system varies from a connected single-user
operating system in that each user accesses the same operating
system from different machines.
The main goal of developing a multi-user operating system is to
use it for time-sharing and batch processing on mainframe
systems.
It is usually responsible for handling memory and processing for
other running programs, identifying and using system hardware,
and efficiently handling user interaction and data requests.
1.62
Clustered Systems
Like multiprocessor systems, but multiple systems working
together
1.63
Clustered Systems
1.64
Clustered Systems
Single user cannot keep CPU and I/O devices busy at all times
Multiprogramming organizes jobs (code and data) so CPU always
has one to execute
A subset of total jobs in system is kept in memory
Batch systems:
One job selected and run via job scheduling
When it has to wait (for I/O for example), OS switches to
another job
Interactive systems (Time Sharing System):
Logical extension of batch systems -- CPU switches jobs so
frequently that users can interact with each job while it is
running, creating interactive computing
1.66
Interactive Systems (Time Sharing System)
1.67
Memory Layout for Multiprogramming Batch System
1.68
Memory Layout for Multiprogrammed Batch System
1.69
Modes of Operation
1.70
Transition from User to Kernel Mode
1.71
Reentrant Kernel
1.72
Timer
To prevent process to be in infinite loop (process hogging
resources), a timer is used, which is a hardware device.
1.73
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, etc.
Initialization data
Process termination requires reclaim of any reusable resources
A thread is a basic unit of CPU utilization within a process.
Single-threaded process. Instructions are executed sequentially,
one at a time, until completion
Process has one program counter specifying location of next
instruction to execute
Multi-threaded process has one program counter per thread
Typically, a system has many processes, some user, some
operating system running concurrently on one or more CPUs
Concurrency by multiplexing the CPUs among the threads
1.74
Process Management Activities
1.75
Memory Management
1.76
Storage Management
OS provides uniform, logical view of information storage
Abstracts physical properties to logical storage unit - file
Files are stored in a number of different storage medium.
Disk
Flash Memory
Tape
Each medium is controlled by device drivers (i.e., disk drive,
tape drive)
Varying properties include access speed, capacity,
data-transfer rate, access method (sequential or
random)
1.77
File System Management
1.78
Secondary-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
Free-space management
Storage allocation
Disk scheduling
Some storage need not be fast
Tertiary storage includes optical storage, magnetic tape
Still must be managed – by OS or applications
1.79
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 are smaller (size-wise) than storage being cached
Cache management important design problem
Cache size and replacement policy
1.80
Performance of Various Levels of Storage
1.81
Migration of data “A” from Disk to Register
1.82
I/O Subsystem
One purpose of an operating system 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
1.83
Protection and Security
Protection – A mechanism for controlling access of processes
(or users) to resources defined by the OS
Security – A 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 is associated with all files and 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
1.84
Virtualization
Allows operating systems to run applications within other OSes
Vast and growing industry
Emulation used when the source CPU type is different from
the 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
1.85
Virtualization on Laptops and Destops
1.86
Virtualization on Laptops and Destops
In virtualization,
a user installs the virtualization software in the operating
system of his system like any other program and utilizes
this application to operate and generate various virtual
machines.
Here, the virtualization software allows direct access to
any of the created virtual machines to the user.
As the host OS can provide hardware devices with the
mandatory support, operating system virtualization may
affect compatibility issues of hardware even when the
hardware driver is not allocated to the virtualization
software.
1.87
Virtualization Architecture Structure
1.88