Operating Systems
Introduction
Introduction
What is an Operating Systems?
Operating-System Structure
Operating-System Organization
Operating-System Operation
Process Management
Memory Management
Storage Management
Protection and Security
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
Computer System Structure
Operating System Definition
OS is a resource allocator
Manages all resources
Decides between conflicting requests for efficient
and fair resource use
OS is a control program
Controls execution of programs to prevent errors
and improper use of the computer
Operating System Definition
No universally accepted definition
“Everything a vendor ships when you order an
operating system” is good approximation
But varies wildly
“The one program running at all times on the
computer” is the kernel. Everything else is
either a system program (ships with the
operating system) or an application program
Computer Startup
bootstrap program is loaded at power-up
or reboot
Typically stored in ROM or EPROM, generally
known as firmware
Initializes all aspects of system
Loads operating system kernel and starts
execution
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
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.
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.
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.
Incoming interrupts are disabled while another
interrupt is being processed to prevent a lost
interrupt.
A trap is a software-generated interrupt caused
either by an error or a user request.
An operating system is interrupt driven.
Storage Structure
Main memory – only large storage media that
the CPU can access directly.
Secondary storage – extension of main memory
that provides large nonvolatile storage
capacity.
Magnetic 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.
Storage Hierarchy
Storage systems organized in hierarchy.
Speed
Cost
Volatility
Caching – copying information into faster
storage system; main memory can be viewed
as a last cache for secondary storage.
Storage-Device Hierarchy
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 Types
Batch systems
Time Sharing (multitasking) Systems
Personal Computer (PC) Systems
Parallel Systems
Real–Time Systems
Distributed Systems
Batch System
The common input devices, in early computers were
card readers and tape drives. The common output
devices were line printers and card punches.
The user did not interact directly with the computer
system. He prepares a job and submits it to the
computer operator ( in form of punch cards). At
some later time, the output appeared.
To speedup processing, operators batch together
jobs with similar needs and run them in computer as
a groups.
Batch System
The introduction of disk technology allowed the O.S
to keep all jobs on a disk, rather than in a serial
card reader. O.S could do job-scheduling.
Multiprogramming increases CPU utilization by
organizing jobs such that the CPU always has one to
execute.
The idea of multiprogramming is:
O.S keeps several jobs in memory simultaneously.
The O.S begins to execute one of the jobs in the
memory.
When the job have to wait for some task, such as I/O
operation, the O.S simply switches to execute another
job.
Batch System
O.S uses job scheduling to decide
which job in the pool will
allocate main memory( RAM).
O.S uses CPU scheduling to
decide which job in memory will
use the CPU.
Time Sharing (multitasking) Systems
Time Sharing or Multitasking, is a logical extension of
multiprogramming.
The CPU executes multiple jobs by switching among
them.
O.S provides direct communication between the user
and the system.
O.S allows many users to share the computer
simultaneously. The system switches rapidly from
one user to the next.
Time Sharing (multitasking) Systems
A time-shared O.S uses CPU scheduling and
multiprogramming to provide each user with a small
portion in memory.
This system is more complex than multiprogrammed,
it needs memory management, protection, virtual
memory( a technique that allows the execution of
jobs that may not be completely in memory), file
system, disk management.
Most systems today are time sharing.
Personal Computer (PC) Systems
PCs are microcomputers that are smaller and less
expensive than mainframe systems.
PC O.S maximizes user convenience and
responsiveness.
Ex: MS-DOS, Microsoft Windows, and Apple
Macintosh.
Parallel Systems
Multiprocessor Systems have more than one
processor, sharing the computer bus, the clock,
memory, and peripheral devices.
Benefits:
Increase the throughput.
Increase the reliability: if function can be distributed
properly among several processors, then the failure of
one processor will not halt the system, but will only
slow it down. This is called graceful degradation.
System that are designed for graceful degradation
called fault tolerant.
Parallel Systems
Multiprocessor systems may be:
Symmetric: each processor runs an identical copy of
the O.S, and these copies communicate with one
another as needed.
asymmetric: each processor is assigned a specific task.
A master processor controls the system. The other
processors look to the master for instruction. This
scheme called a master-slave relationship.
Real–Time Systems
these systems are used as a control device in a
dedicated application such as medical systems,
industrial systems, weapon systems, etc.
Sensors bring data to the computer.
These systems has fixed time constrains. Processing
must be done within the defined constrains, or the
system will fail.
Distributed Systems
Distributed Systems consist of a collection of
processors that do not share memory. Instead, each
processor has its own local memory. The processors
communicate by high-speed buses.
Operating systems such as Windows, OS/2, MacOS,
and UNIX now include the system software (such as
TCP/IP) that enables a computer to access the
Internet via a local-area network. Several include
the web browser itself, as well as electronic mail,
and file-transfer client and servers.
Operating-System Operations
Interrupt driven by hardware
Software error or request creates exception or trap
Division by zero, request for operating system service
Other process problems include infinite loop, processes
modifying each other or the operating system
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
Some instructions designated as privileged, only
executable in kernel mode
System call changes mode to kernel, return from call
resets it to user
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
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
Memory Management
All data in memory before and after processing
All instructions in memory in order to execute
Memory management determines what is in memory
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
Storage 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)
Storage Management
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 dirs
Mapping files onto secondary storage
Backup files onto stable (non-volatile) storage media
I/O Management
O.S hides the features of the I/O device 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.
Networking
O.S here provide protocols for connecting to the
network and transfer data.
Protection
Protection is any mechanism for controlling the
access of programs or users to the resources.
Operating System Services
User interface:
Almost all operating systems have a user interface (UI),Varies
between Command-Line (CLI), Graphics User Interface (GUI).
Microsoft Windows is GUI with CLI “command” shell
Program Execution:
load a program into memory and run that program.
I/O operation:
O.S must provide a means to do the I/O operations.
File-system manipulation:
O.S read, write, create, and delete, and manipulate files.
Communication:
Communication may be implemented via shared memory, or by the
technique of message passing, in which packets of information are
moved between processes by the O.S.
Error detection:
for each type of error, O.S must take the appropriate action.