What is an Operating System Various systems and

  • Slides: 40
Download presentation

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

• 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

Abstract View of System Components

Important OS Features/services • • Process Management (CPU scheduling) Main Memory Management File Management

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 Memory Tables Memory I/O File I/O Tables File Tables Processes Primary

OS Control Structure Memory Tables Memory I/O File I/O Tables File Tables Processes Primary Table Process 1 Process 2 … Process N Process Image User data User program System stack PCB

Process State Diagram admit New dispatch Ready Running time-out activate release event wait Suspend

Process State Diagram admit New dispatch Ready Running time-out activate release event wait Suspend Blocked suspend Exit

 • System call vs. System program

• System call vs. System program

Dual mode operation & why ?

Dual mode operation & why ?

OS structure & Layered Approach • The operating system is divided into a number

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

UNIX System Structure

Process Management • • Process vs. Thread creation Process scheduling Process Termination Unix process

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 Control Block (PCB)

Process vs. Thread creation

Process vs. Thread creation

Multithreading Models • Many-to-One • One-to-One • Many-to-Many ----------------------- • Pthread, JAVA thread, Kernel

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

CPU Switch From Process to Process

CPU Switch From Process to Process

Process Scheduling Queues • Job queue – set of all processes in the system.

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

Representation of Process Scheduling

Schedulers • Long-term scheduler (or job scheduler) – selects which processes should be brought

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

Addition of Medium Term Scheduling

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

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

Process scheduling Concepts • Maximum CPU utilization obtained with multiprogramming • CPU–I/O Burst Cycle

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 •

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

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

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

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 with Paging ----------Pros and cons

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

Pros & cons • Paging vs Contiguous • Hierarchical Paging vs. Hashed Page Tables

Pros & cons • Paging vs Contiguous • Hierarchical Paging vs. Hashed Page Tables vs. Inverted Page Tables

Example of address translation (segmetation)

Example of address translation (segmetation)

Example of address translation

Example of address translation

Virtual Memory

Virtual Memory

Virtual Memory • Demand paging • Demand segmentation • Page fault and how to

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

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

A Typical File Control Block

A Typical File Control Block

Virtual File System

Virtual File System

Allocation Methods • An allocation method refers to how disk blocks are allocated for

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 –

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

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 Pooling or interrupt Asynchronous

Two I/O Methods Synchronous Pooling or interrupt Asynchronous

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

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