What is an Operating System? Various systems and their pros and cons –E.g. multi-tasking vs. Batch...

Preview:

DESCRIPTION

Abstract View of System Components

Citation preview

• What is an Operating System?• Various systems and their pros and cons

– E.g. multi-tasking vs. Batch• OS definitions

– Resource allocator– Control program– Kernel

Abstract View of System Components

Important OS Features/services

• Process Management (CPU scheduling)• Main Memory Management• File Management• I/O System Management• Secondary Management• Networking• Protection System• Command-Interpreter System

OS Control Structure

MemoryI/O

FileProcesses

Memory Tables

I/O Tables

File Tables

Process 1Process 2

… Process N

Primary Table

Process Image

User dataUser programSystem stack

PCB

Process State Diagram

Ready

BlockedSuspend

New Running

Exit

release

dispatch

time-out

eventactivate

suspend

admit

wait

• System call vs. System program

Dual mode operation & why ?

OS structure & Layered Approach

• The operating system is divided into a number of layers (levels), each built on top of lower layers. The bottom layer (layer 0), is the hardware; the highest (layer N) is the user interface.

• With modularity, layers are selected such that each uses functions (operations) and services of only lower-level layers.

UNIX System Structure

Process Management

• Process vs. Thread creation• Process scheduling• Process Termination• Unix process creation fork() & exec()

– Identify parent vs. child

• How to find out process infomation

Process Control Block (PCB)

Process vs. Thread creation

Multithreading Models

• Many-to-One

• One-to-One

• Many-to-Many----------------------------------------------• Pthread, JAVA thread, Kernel vs. User

thread

CPU Switch From Process to Process

Process Scheduling Queues• Job queue – set of all processes in the system.• Ready queue – set of all processes residing in main memory,

ready and waiting to execute.• Device queues – set of processes waiting for an I/O device.• Process migration between the various queues.

Representation of Process Scheduling

Schedulers

• Long-term scheduler (or job scheduler) – selects which processes should be brought into the ready queue.

• Short-term scheduler (or CPU scheduler) – selects which process should be executed next and allocates CPU.

• Midterm scheduler

Addition of Medium Term Scheduling

Context Switch• When CPU switches to another process, the system must

save the state of the old process and load the saved state for the new process.

• Context-switch time is overhead; the system does no useful work while switching.

• Time dependent on hardware support.

Process scheduling

Process scheduling Concepts

• Maximum CPU utilization obtained with multiprogramming

• CPU–I/O Burst Cycle – Process execution consists of a cycle of CPU execution and I/O wait.

• CPU burst distribution• Pre-emptive and none-preemptive

Scheduling Criteria• CPU utilization – keep the CPU as busy as possible• Throughput – # of processes that complete their execution

per time unit

• Turnaround time – amount of time to execute a particular process (finishing time – arrival time)

• Waiting time – amount of time a process has been waiting in the ready queue

• Response time – amount of time it takes from when a request was submitted until the first response is produced, not output (for time-sharing environment)

Various scheduling algorithms• FCFS• SJF• SRTF• R-R with quantum• Priority• Multi-level Priority • ---------------• Pros and cons, different conditions (q time,

starvation prevention etc.)• Example of process arrival rate

Process Communication

• IPC & Unix IPC• Client-Server

– Raw socket– High-level comm (e.g. RPC, RMI, CORBA

etc)

– Pros & con on various mechanisms

Process Synchronization & deadlocks

• Critical Section• Semaphore & implementation (Unix)• Spin lock and sleep(wait) lock• Deadlock

– Mutex, hold-wait, no-preemption, circular-wait– Identify deadlock from resource allocation

graph or code

Memory Management

• Swapping • Contiguous Allocation• Paging• Segmentation• Segmentation with Paging• --------------------• Pros and cons• Address translation

Pros & cons

• Paging vs Contiguous

• Hierarchical Paging vs. Hashed Page Tables vs. Inverted Page Tables

Example of address translation (segmetation)

Example of address translation

Virtual Memory

Virtual Memory

• Demand paging• Demand segmentation

• Page fault and how to handle• Page replacement

File Management

• File structure • File Attributes (FCB)• directory• Access method• Access control

A Typical File Control Block

Virtual File System

Allocation Methods

• An allocation method refers to how disk blocks are allocated for files:

• Contiguous allocation

• Linked allocation

• Indexed allocation

I/O system

• I/O Hardware• Application I/O Interface• Kernel I/O Subsystem

– Chracter vs. block– Polling vs. interupt

User program & Kernel interface

Note: This picture is excerpted from Write a Linux Hardware Device Driver, Andrew O’Shauqhnessy, Unix world

Two I/O Methods

Synchronous Asynchronous

Pooling or interrupt

LKM

• What is it?• Pros & cons (vs. recompile and patches)

Recommended