Process Management

  • Uploaded by: api-19975941
  • 0
  • 0
  • July 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Process Management as PDF for free.

More details

  • Words: 1,760
  • Pages: 63
Module 2

Topics under Process Mgmt: Process concepts and states Scheduling (CPU and I/O) Synchronization (concurrency) Deadlock handling

OS Responsibilities for Process Mgmt. Creating and deleting of process Scheduling of a process (suspending and

resuming the execution of process) Process synchronization Process communication Deadlock handling

What is a process? Process

– Program in execution needing resources (such as CPU time, memory, files and I/O devices) to accomplish its tasks. - Executing set of machine instructions - Execution of a process must progress in a sequential fashion; at most one instruction is executed on behalf of the process.

Components of a process Code Data Resources Status Threads

Classification of OS according to the types of system: Single-process single-threaded – only one

process can execute at a time. Once a process is allocated to the CPU, that process runs to completion before any other process can execute. Example: DOS

Classification of OS according to the types of system: Multi-process single threaded – a single

entity (the process), is the object upon which both resource allocation and CPU scheduling are performed. Example: UNIX

Classification of OS according to the types of system: Multi-process multi-threaded – resources are

allocated to the processes but CPU scheduling can be in terms of thread. Example: Windows, Mach, Solaris

Is process the same as program? No, it is both more and less More – a program is just part of a process context. Less – a program may invoke several processes

Uniprogramming & Multiprogramming Uniprogramming allows execution of only one process at a time

(e.g. personal computer) Multiprogramming allows more than one process (e.g. concurrent

execution of many processes)

How can several processes share one CPU? OS takes care of this by making sure that: Each process gets a chance to run

(fair scheduling) They do not modify each other’s state

(protection)

OS Execution An OS executes a variety of programs: Batch systems Time-shared systems

A process includes: Program counter and contents of processor

registers. Process stack (contains temporary data such as subroutine parameters, return addresses, variables) Data section (contains global variables) Heap Memory that is dynamically allocated during run

time.

Six (6) Process States: New Process is being created but not yet included in

the pool of executable processes (resource acquisition) Ready Waiting to be assigned to the processor

Running (or active) Process that is currently being executed

Six (6) Process States: (cont) Waiting (or blocked) Waiting for some event to occur (I/O completion)

Stopped Special case of blocked where the operator/user

suspends the process. Terminated (or exiting) Process has finished execution. A process is about

to be removed from the pool of executable processes.

Diagram of process state Stopped Stopped

kill suspend

resume New New create

time-out Active Active

Ready Ready

Event occurs or resource available

dispatch

Blocked Blocked

State transition _____ internal _ _ _ _external

exit Exiting Exiting kill error

Additional process states Medium term scheduling adds two additional

process states: Swapped blocked – process is waiting for some

event to occur and has been swapped out to secondary storage Swapped-ready – process is ready to run but is swapped out to secondary storage and may not be allocated to the CPU since it is not in main memory.

Process Control Block (PCB) Each process is represented in the OS by a PCB. It is where collection of process information are

kept and accessed. Sometimes called the Task Control Block (TCB)

PCB Information: Process state Program counter (PC) CPU Registers CPU Scheduling information Memory-Management Information Accounting information  I/O status information

Process Control Block

Process scheduling: Objective of multiprogramming: have some user

process running at all times OS keeps the CPU busy with productive work by

dynamically selecting (scheduling) the next user process to become active.

Dispatcher Dispatcher – performs the scheduling and

only executes the primitive pseudo-code: Loop forever { run the process for a while stop process and save its state load the state of another process }

Dispatcher Process Process22 Process Process 11

Operating System

Process Processnn CPU CPU

dispatcher dispatcher

Ready queue

Control of the CPU The CPU can only do one thing at a time. While a

user process is running, dispatcher cannot run thus the OS may lose control.

How does the dispatcher regain control of the CPU? Trust the process to wake up the dispatcher

when done (sleeping beauty approach) Not a good solution because sometimes process

loop indefinitely Provide a mechanism to wake the dispatcher

(alarm clock)

Scheduling queues Job queue Set of all processes that enter the system

Ready queue (linked-list) Set of all processes residing in main memory,

ready and waiting to execute. Device queues Set of processes waiting for an I/O device, each

device has a device queue.

Queuing diagram:

Long-term scheduler (or job scheduler) Selects which processes should be brought into

the ready queue; these processes are spooled to a mass-storage (disk) where they are kept for later execution. Controls the degree of multiprogramming

Long term scheduler: (cont) Must make careful selection among the

processes (a good process mix). Processes can be described as either: I/O bound process – spends more time doing I/O

than computations, may short CPU bursts CPU bound process – spends more time doing

computations, few very long CPU bursts.

Short-term scheduler Known as the CPU scheduler. Selects which process should be executed next

and allocates the CPU.

Medium-term scheduler (Swapper) Involves suspending or resuming processes by

swapping or rolling them out of or into memory. Swapping Removing a process from the memory.

Medium-term scheduler

Context switch When a CPU switches to another process, the

system must save the state of the old process and load the saved state of the new process Context-switch time is overhead; the system

does no useful work during switching.

Context Switch

Operations on Processes Process Creation Via a create-process system call Parent process – creating process Children process – siblings (sub-process) of

the parent process. Has a unique process identifier (pid)

Independent Processes Independent Processes Cannot affect or be affected by the execution of

another process. Properties Deterministic Reproducible Can stop and restart without “side effects” Can proceed at an arbitrary rate

Cooperating Processes Cooperating Processes Can affect or be affected by the execution of

another process. Properties: Share (or exchange) a common object Non-deterministic May be irreproducible Subject to race conditions

Race Condition Situation where two or more processes access

shared data concurrently

Why cooperation? Information sharing Allow concurrent access to shared resources.

Computation Speedup Tasks are broken down into subtasks, each of

which is executing in parallel with the others

Issues with cooperating system Requires mechanism to allow processes to

communicate with one another and to synchronize their actions Shared memory Message passing (interprocess communication)

Issues with cooperating system May give rise to a race condition during critical

section processing which may lead to inconsistent states / data. Especially troublesome for multiprocessor

systems and distributed systems.

Example Process A

Process B

Concurrent Access

A=1

B=2

Does not matter

A=B+1

B=B*2

IMPORTANT!

Bounded Buffer Producer consumer problem An example of a race condition

InterProcess Communication (IPC) Mechanism for processes to communicate and

to synchronize their actions Message system – process communicate with

each other without resorting to shared variables

Communications models: Process A

M

Process B

M

Process A

M

shared Process B

M

M

Kernel

M

Kernel

Message Passing

Shared memory

IPC IPC facility provides two operations Send (message) – message size fixed or variable Receive (message)

Example: if P and Q wish to communicate, they

need to Establish a communication link between them Exchange messages via send/receive

Implementation of a communication link Physical (e.g. shared memory, hardware bus) Logical (e.g. logical properties)

Direct Communication Processes must name each other explicitly Send (P, message) – send a message to process

P Receive (Q, message) – receive a message from process Q.

Properties of a communication link Links are established automatically A link is associated with exactly one pair of

communicating processes. Between each pair there exists exactly one link The link may be unidirectional, but is usually bidirectional

Indirect Communication Messages are directed and received from

mailboxes (also known as ports) Each mailbox has a unique ID Processes can communicate only if they share a mailbox

Properties of communication link Link established only if processes share a

common mailbox A link may be associated with many processes Each pair of processes may share several communication links Links may be unidirectional or bi-directional

Operations Create a new mailbox Send and receive messages through mailbox Destroy a mailbox

Primitives are defined as Send (A, message) – send a message to

mailbox A Receive (A, message) – receive a message from mailbox A.

Thread: definition A basic unit of CPU utilization Comprises a thread ID, program counter,

register set, and a stack. Process types: Single-threaded – performs one task at a

time Multithreaded – performs more than one task at a time.

Examples of Thread Web browser One thread – displays images/text Another thread – retrieves data from network

Word processor One thread – displays graphics Another thread – responds to user keystrokes Another thread – performs spelling and

grammar

Benefits of Multithreading Responsiveness Allows interactive activities while the

program is running Resource sharing Sharing of code and data - allows an

application to have several thread activities Economy More economical to create and context-

switch threads

Benefits of Multithreading (cont) Utilization of multiple architectures Threads may be running in parallel on

different processor.  Single thread – run on one CPU regardless of the

number of CPUs.  Multithreaded – increases concurrency.

Support for threads User threads Supported above the kernel and are

managed without kernel support. Kernel thread Supported and managed directly by the OS.

Multithreading models Many to one model Maps many user-level threads to one kernel

thread.  Older versions of Solaris uses this model

User thread

K

Kernel thread

Multithreading models (cont) One to one model Maps each thread to a kernel thread. Provides more concurrency than Many to one

model. Allows multiple threads to run in parallel on multiprocessors Drawback: user thread requires creating kernel thread (suffers performance) Linux, Windows (starting Win 95 onwards) and Solaris 9 use this model.

One to one model User thread

K

K

K

K

Kernel thread

Multithreading models (cont) Many to many model Multiplexes many user-level threads to a

smaller or equal number of kernel threads Can create as many user threads, and the kernel threads can run in parallel on a multiprocessor. IRIX, HP-UX, and TRu64UNIX use this model.

Many to many model User thread

K

K

K

Kernel thread

Related Documents