operating systems review operating systems: internals and design principles william stallings index...

58
Operating Systems review Operating Systems: Internals and Design Principles William Stallings 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

Upload: elfrieda-williamson

Post on 26-Dec-2015

242 views

Category:

Documents


1 download

TRANSCRIPT

Operating Systems review

Operating Systems:Internals and Design Principles

William Stallings

index

2-15 : Architecture & Process16-25 : Concurrency26-37 : Scheduling36-45 : Memory Management47-52 : File management53-56 : Distributed Computing57-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 aMicrokernel 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 OSDesign 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/WeakSemaphore

• 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

Producer Consumer

while (true) {/* produce item v */b[in] = v;in++; }

while (true) { while (in <= out) /*do nothing */;w = b[out];out++; /* consume item w */}

• Assume an infinite buffer b with a linear array of elements

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 ManagementMemory 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 Policiesoptimal 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.