Download process - United International College

Document related concepts

Plan 9 from Bell Labs wikipedia , lookup

Copland (operating system) wikipedia , lookup

RSTS/E wikipedia , lookup

VS/9 wikipedia , lookup

OS 2200 wikipedia , lookup

DNIX wikipedia , lookup

Spring (operating system) wikipedia , lookup

CP/M wikipedia , lookup

Unix security wikipedia , lookup

Burroughs MCP wikipedia , lookup

Distributed operating system wikipedia , lookup

Process management (computing) wikipedia , lookup

Paging wikipedia , lookup

Transcript
Operating Systems:
Internals and Design Principles
William Stallings
Operating Systems review
index
2-15 : Architecture & Process
16-25 : Concurrency
26-37 : Scheduling
36-45 : Memory Management
47-52 : File management
53-56 : Distributed Computing
57-58 : Embedded OS
Operating System
• Exploits the hardware resources of one or
more processors
• Provides a set of services to system users
• Manages secondary memory and I/O
devices
Operating System
• A program that controls the execution of
application programs
• An interface between applications and
hardware
• Main objectives of an OS:
– Convenience
– Efficiency
– Ability to evolve
A Computer’s
Basic Elements
•
•
•
•
Processor
Main Memory
I/O Modules
System Bus
Services Provided
by the Operating System
• Program development
– Editors and debuggers.
• Program execution
– OS handles scheduling of numerous tasks
required to execute a program
• Access I/O devices
– Each device will have unique interface
– OS presents standard interface to users
Microkernel Architecture
• Most early OS are a monolithic kernel
– Most OS functionality resides in the kernel.
• A microkernel assigns only a few essential
functions to the kernel
– Address spaces
– Interprocess communication (IPC)
– Basic scheduling
Benefits of a
Microkernel Organization
• Uniform interfaces on requests made by a
process.
• Extensibility
• Flexibility
• Portability
• Reliability
• Distributed System Support
• Object Oriented Operating Systems
Benefits of Microkernel (1)
• Uniform interfaces: Processes need not distinguish
between kernel-level and userlevel services because all
such services are provided by means of message
passing.
• Extensibility: facilitates the addition of new services as
well as the provision of multiple services in the same
functional area.
• Flexibility: not only can new features be added to the
operating system, but existing features can be
subtracted to produce a smaller, more efficient
implementation.
• Portability: all or at least much of the processor-specific
code is in the microkernel; thus, changes needed to port
the system to a new processor are fewer and tend to be
arranged in logical groupings.
Benefits of Microkernel (2)
• Reliability: A small microkernel can be rigorously tested.
Its use of a small number of application programming
interfaces (APIs) improves the chance of producing
quality code for the operating-system services outside
the kernel.
• Distributed system support: the message orientation
of microkernel communication lends itself to extension to
distributed systems.
• Support for object-oriented operating system
(OOOS): An object-oriented approach can lend discipline
to the design of the microkernel and to the development
of modular extensions to the operating system.
Symmetric
multiprocessing (SMP)
• An SMP system has
– multiple processors
– These processors share same main memory
and I/O facilities
– All processors can perform the same
functions
• The OS of an SMP schedules processes
or threads across all of the processors.
SMP Advantages
• Performance
– Allowing parallel processing
• Availability
– Failure of a single process does not halt the
system
• Incremental Growth
– Additional processors can be added.
• Scaling
Multiprocessor OS
Design Considerations
• The key design issues include
– Simultaneous concurrent processes or
threads
– Scheduling
– Synchronization
– Memory Management
– Reliability and Fault Tolerance
What is a “process”?
• A program in execution
• An instance of a program running on a
computer
• The entity that can be assigned to and
executed on a processor
• A unit of activity characterized by the
execution of a sequence of instructions, a
current state, and an associated set of
system instructions
• Competing processes VS Cooperating processes?
Process Control Block
• Contains the info about
a process
• Created and manage by
the operating system
• Allows support for
multiple processes
Role of the
Process Control Block
• The most important data structure in an
OS
– It defines the state of the OS
• Process Control Block requires protection
– A faulty routine could cause damage to the
block destroying the OS’s ability to manage
the process
– Any design change to the block could affect
many modules of the OS
Concurrency
Concurrency arises in:
• Multiple applications
– Sharing time
• Structured applications
– Extension of modular design
• Operating system structure
– OS themselves implemented as a set of
processes or threads
Multiple Processes
• Central to the design of modern Operating
Systems is managing multiple processes
– Multiprogramming
– Multiprocessing
– Distributed Processing
• Big Issue is Concurrency
– Managing the interaction of all of these
processes
Deadlock
• A set of processes is deadlocked when each
process in the set is blocked awaiting an event
that can only be triggered by another blocked
process in the set
– Typically involves processes competing for
the same set of resources
• No efficient solution
– Deadlock is permanent because none of the events is ever
triggered.
– Unlike other problems in concurrent process management, there is
no efficient solution in the general case.
The Three Conditions for Deadlock
• Mutual exclusion : Only one process may
use a resource at a time.
• Hold and wait : A process may hold
allocated resources while awaiting
assignment of others.
• No preemption : No resource can be
forcibly removed from a process holding it.
Ref. What is Dining Philosophers Problem?
Requirement for Mutual Exclusion
• 1. Mutual exclusion must be enforced: only one
process at a time is allowed into its critical
section, among all processes that have critical
sections for the same resource or shared object.
• 2. A process that halts in its non-critical section
must do so without interfering with other
processes.
• 3. It must not be possible for a process requiring
access to a critical section to be delayed
indefinitely: no deadlock or starvation.
Requirement for Mutual Exclusion
• 4. When no process is in a critical section,
any process that requests entry to its
critical section must be permitted to enter
without delay.
• 5. No assumptions are made about
relative process speeds or number of
processors.
• 6. A process remains inside its critical
section for a finite time only
Strong/Weak
Semaphore
• A queue is used to hold processes waiting
on the semaphore
– In what order are processes removed from
the queue?
• Strong Semaphores use FIFO
• Weak Semaphores don’t specify the
order of removal from the queue
Producer/Consumer
Problem
• General Situation:
– One or more producers are generating data and
placing these in a buffer
– A single consumer is taking items out of the buffer
one at time
– Only one producer or consumer may access the
buffer at any one time
• The Problem:
– Ensure that the Producer can’t add data into full buffer
and consumer can’t remove data from empty buffer
Functions
• Assume an infinite buffer b with a linear array of
elements
Producer
while (true) {
/* produce item v */
b[in] = v;
in++;
}
Consumer
while (true) {
while (in <= out)
/*do nothing */;
w = b[out];
out++;
/* consume item w */
}
Buffer
Scheduling
• An OS must allocate resources amongst
competing processes.
• The resource provided by a processor is
execution time
– The resource is allocated by means of a
schedule
Aim of Short
Term Scheduling
• Main objective is to allocate processor
time to optimize certain aspects of system
behaviour.
• A set of criteria is needed to evaluate the
scheduling policy.
Short-Term Scheduling
Criteria: User vs System
• We can differentiate between user and
system criteria
• User-oriented
– Response Time
• Elapsed time between the submission of a request
until there is output.
• System-oriented
– Effective and efficient utilization of the
processor
Short-Term Scheduling
Criteria: Performance
• We could differentiate between
performance related criteria, and those
unrelated to performance
• Performance-related
– Quantitative, easily measured
– E.g. response time and throughput
• Non-performance related
– Qualitative
– Hard to measure
Decision Mode
• Specifies the instants in time at which the
selection function is exercised.
• Two categories:
– Nonpreemptive
– Preemptive
Preemptive VS Nonpreemptive
• Preemptive scheduling allows a process to
be interrupted in the midst of its execution,
taking the CPU away and allocating it to
another process.
• Nonpreemptive scheduling ensures that a
processor relinquishes control of the CPU
only when it finishes with its current CPU
burst
Overall Aim
of Scheduling
• The aim of processor scheduling is to
assign processes to be executed by the
processor over time,
– in a way that meets system objectives, such
as response time, throughput, and processor
efficiency.
Scheduling Objectives
• The scheduling function should
– Share time fairly among processes
– Prevent starvation of a process
– Use the processor efficiently
– Have low overhead
– Prioritise processes when necessary (e.g. real
time deadlines)
Process Scheduling
Example
• Example set of
processes,
consider each a
batch job
– Service time represents total execution time
Process Scheduling
Process
Burst Time
Priority
P1
8
3
P2
4
1
P3
3
2
a). Using algorithms: FCFS, SJF, nonpreemptive priority.
b). What is the turnaround time ?
c). waiting time ? average waiting time ?
The need for memory
management
• Memory is cheap today, and getting
cheaper
– But applications are demanding more and
more memory, there is never enough!
• Memory Management, involves swapping
blocks of data from secondary storage.
• Memory I/O is slow compared to a CPU
– The OS must cleverly time the swapping to
maximise the CPU’s efficiency
Memory Management
Memory needs to be allocated to ensure a
reasonable supply of ready processes to
consume available processor time
- Memory Requirement
•Relocation
•Protection
•Sharing
•Logical organisation
•Physical organisation
Page Frame
• The number of page frames is the size of
memory divided by the page size
- Page frame = size of memory/page size
• How many bits does the system use to
maintain the displacement = as much as
page size
• Ex: contains 128MB of main memory and has a page
size of 8KB
Page Buffering
• If a page is taken out of a resident set but
is soon needed, it is still in main memory,
saving a disk read.
• Modified page can be written out in
clusters rather than one at a time,
significantly reducing the number of I/O
operations and therefore the amount of
disk access time
Replacement Policies
optimal Policy
• The optimal policy produces three page
faults after the frame allocation has been
filled.
Least Recently
Used (LRU)
• Replaces the page that has not been
referenced for the longest time
• By the principle of locality, this should be
the page least likely to be referenced in
the near future
• Difficult to implement
– One approach is to tag each page with the
time of last reference.
– This requires a great deal of overhead.
LRU Example
• The LRU policy does nearly as well as the
optimal policy.
– In this example, there are four page faults
First-in, first-out (FIFO)
• Treats page frames allocated to a process
as a circular buffer
• Pages are removed in round-robin style
– Simplest replacement policy to implement
• Page that has been in memory the longest
is replaced
– But, these pages may be needed again very
soon if it hasn’t truly fallen out of use
FIFO Example
• The FIFO policy results in six page faults.
– Note that LRU recognizes that pages 2 and 5
are referenced more frequently than other
pages, whereas FIFO does not.
File Management
• File management system consists of
system utility programs that run as
privileged applications
• Concerned with secondary storage
Criteria for
File Organization
• Important criteria include:
– Short access time
– Ease of update
– Economy of storage
– Simple maintenance
– Reliability
• Priority will differ depending on the use
(e.g. read-only CD vs Hard Drive)
– Some may even conflict
File Organisation
Types
• Many exist, but usually variations of:
– Pile
– Sequential file
– Indexed sequential file
– Indexed file
– Direct, or hashed file
File Allocation Methods
• Contiguous allocation: a single contiguous set
of blocks is allocated to a file at the time of file
creation.
• Chained allocation: allocation is on an
individual block basis. Each block contains a
pointer to the next block in the chain.
• Indexed allocation: the file allocation table
contains a separate one-level index for each file;the
index has one entry for each portion allocated to the
file.
File Allocation
Records-Blocking methods
• Fixed-length: records are used, and an integral number
of records are stored in a block. - Unused space at the
end of a block is internal fragmentation
• Variable-length Spanned Blocking: records are used and
are packed into blocks with no unused space.
Some records may span multiple blocks -Continuation
is indicated by a pointer to the successor block
• Variable-length unspanned Blocking: Uses variable
length records without spanning
– Wasted space in most blocks because of the inability
to use the remainder of a block if the next record is
larger than the remaining unused space
Definition : B=block size, R=record size, P=size of block pointer,
F=blocking factor(expected number of records with a block)
Spanned F =
unspanned F=
Bit Tables
• This method uses a vector containing one bit for
each block on the disk.
• Each entry of a 0 corresponds to a free block,
– and each 1 corresponds to a block in use.
• Advantages:
– Works well with any file allocation method
– Small as possible
– Certain amount of memory(in bytes) are required for
a block bitmap : Formula?
Distributed Computing
- Traditional Data Processing
• Traditionally data processing was
centralised
• Typically involving centralised
– Computers
– Processing
– Data
Distributed Data Processing
• Distributed Data Processing (DDP)
departs from the centralised model in one
or multiple ways.
• Usually smaller computers, are dispersed
throughout an organization.
• May involve central node with satellites, or
be a dispersed peer to peer approach
– Interconnection is usually required
Middleware
• Set of tools that provide a uniform means and style
of access to system resources across all platforms
• Enable programmers to build applications that look
and feel the same
• Enable programmers to use the same method to
access data
• TCP/IP does not provide the APIs and the
intermediate-level protocols to support a variety of
applications across different hardware and OS
platforms
Role of Middleware in
Client/Server Architecture
key characteristics of an
embedded OS
• Real time operation: In many embedded systems, the correctness of a
computation depends, in part, on the time at which it is delivered. Often,
real time constraints are dictated by external I/O and control stability
requirements.
• Reactive operation: Embedded software may execute in response to
external events. If these events do not occur periodically or at predictable
intervals, the embedded software may need to take into account worst-case
conditions and set priorities for execution of routines.
• Configurability: There is a large variation in the requirements, both
qualitative and quantitative, for embedded OS functionality. Thus, and
embedded OS intended for use on a variety of embedded systems lend
itself to flexible configuration so that only the functionality needed for a
specific application and hardware suite is provided.
key characteristics of an
embedded OS
• I/O device flexibility: There is virtually no device that needs to be
supported by all versions of the OS, and the range of I/O devices is
large.
• • Streamlined protection mechanisms: Embedded systems are
typical designed for a limited, well-defined functionality. Untested
programs are rarely added to the software. After the software has
been configured and tested, it can be assumed to be reliable. Thus,
apart from security measures, embedded systems have limited
protection mechanisms.
• Direct use of interrupts: General-purpose operating systems
typically do not permit any user process to use interrupts directly.