chapter 2 processes 1. 22 processes topics process concept process scheduling operations on...

38
Chapter 2 Processes 1

Upload: mark-cole

Post on 04-Jan-2016

237 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

Chapter 2

Processes

1

Page 2: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

22

ProcessesTopics

• Process Concept• Process Scheduling• Operations on Processes• Cooperating Processes• Interprocess Communication

Page 3: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

33

Process Concept

• An operating system executes a variety of programs:– Batch system – jobs– Time-shared systems – user programs or tasks

• Process – a program in execution; process execution must progress in sequential fashion

• A process includes:– program counter (Current activity)– Stack (Temporary Data) – data section (Global Variables)

Page 4: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

44

Why Have Processes?

Resource sharing ( logical (files) and physical (hardware) ).

Computation speedup - taking advantage of multiprogramming – i.e. example of a customer/server database system.

Modularity for protection.

Page 5: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

5

Process State

• As a process executes, it changes state

– New: The process is being created.– Running: Instructions are being executed.– Waiting: The process is waiting for some event to occur.

(I/O Completion or reception of a signal).– Ready: The process is waiting to be assigned to a

processor.– Suspended: Another process has explicitly told this

process to sleep. It will be awakened when a process explicitly awakens it.

– Terminated: The process has finished execution.

• Only one process can be running on any processor at any instant.

Page 6: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

6

Diagram of Process State

Page 7: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

7

Suspended state and swapping

Suspended : Another process has explicitly told this process to sleep. It will be awakened when a process explicitly awakens it.

• So far, all the processes had to be (at least partly) in main memory

• The OS may need to suspend some processes, ie: to swap them out to disk. We add 2 new states:

• Blocked Suspend: blocked processes which have been swapped out to disk

• Ready Suspend: ready processes which have been swapped out to disk

Page 8: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

8

A Seven-state Process Model

Page 9: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

9

New state transitions (mid-term scheduling)

• Blocked --> Blocked Suspend– When all processes are blocked, the OS will

make room to bring a ready process in memory

• Blocked Suspend --> Ready Suspend– When the event for which it has been waiting

occurs (state info is available to OS) • Ready Suspend --> Ready

– when no more ready process in main memory• Ready--> Ready Suspend (unlikely)

– When there are no blocked processes and must free memory for adequate performance

Page 10: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

Contains Information Associated With Each Process:

• It's a data structure holding:

PC, CPU registers, memory management information, Accounting ( Amount of CPU used, ID, ... ) I/O status ( such as file resources ), scheduling data ( relative priority, etc. ) Process State (so running, suspended, etc.

is simply a field in the PCB )

Process Control Block (PCB)

Page 11: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

11

CPU Switch From Process to Process

Page 12: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

12

Process Scheduling Queues

• Job queue – set of all processes entered in the system.

• Ready queue – Set of all processes residing in main memory, and are

ready and waiting to execute.– Header will contain pointers to the first and last PCBs in

the list.

• Device queues – set of processes waiting for an I/O device.

• Process migration between the various queues.

Page 13: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

13

Ready Queue And Various I/O Device Queues

Page 14: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

14

Representation of Process Scheduling

Page 15: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

15

Schedulers

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

• Medium-term scheduling– Swaps processes out to secondary storage– Scheduling involves suspending or resuming

processes by swapping (rolling) them out of or into memory.

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

Page 16: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

16

Life cycle of a typical process

Page 17: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

17

Addition of Medium Term Scheduling

Page 18: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

18

Schedulers (Cont.)

• Short-term scheduler is invoked very frequently (milliseconds) (must be fast).

• Long-term scheduler is invoked very infrequently (seconds, minutes) (may be slow).

• The long-term scheduler controls the degree of multiprogramming.

• Processes can be described as either:– I/O-bound process – spends more time doing

I/O than computations, many short CPU bursts.– CPU-bound process – spends more time doing

computations; few very long CPU bursts.

Page 19: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

19

Dispatcher (short-term scheduler)

• Swaps processes out to secondary storage.• It prevents a single process from monopolizing

processor time.

• It decides who goes next according to a scheduling algorithm. (chapter 6)

• The CPU will always execute instructions from the dispatcher while switching from process A to process B.

Page 20: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

20

Dispatcher at work

Page 21: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

21

Context Switch

• When an event occurs, the operating system saves the state of the active process and restores the state of the interrupt service routine (ISR). This mechanism is called a Context Switch.

• What must get saved? Everything that the next process could or will damage. For example:– Program counter– CPU registers– File access pointer– Memory

• While saving the state, the operating system should mask (disable) all interrupts.

Page 22: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

22

Memory: to save or NOT to save

• Here are the possibilities:

• Save all memory onto disk.– Could be very time-consuming. E.g., assume data

transfers to disk at 1MB/sec. How long does saving a 4MB process take?

• Don't save memory; trust next process.

• This is the approach taken by PCs.

• Isolate (protect) memory from next process. This is memory management,

Page 23: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

23

Process Creation

• Parent process create children processes, which, in turn create other processes, forming a tree of processes.

• Resource sharing– Parent and children share all resources.– Children share subset of parent’s resources.– Parent and child share no resources.

• Execution– Parent and children execute concurrently.– Parent waits until children terminate.

Page 24: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

24

Process Creation (Cont.)

• Address space– Child duplicate of parent.– Child has a program loaded into it.

• UNIX examples– fork system call creates new process– exec system call used after a fork to replace

the process’ memory space with a new program.

Page 25: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

25

A fork() System Call

Page 26: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

26

Process Creation

Page 27: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

27

A exec() System Call

Page 28: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

28

Process Creation

• Parent process create children processes, which, in turn create other processes, forming a tree of processes.

Processes Tree on a UNIX System

Page 29: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

29

Process Termination

• Process executes its last statement and asks the operating system to delete it by using the exit system call.

– Process may return data (output) to its parent (via wait system call).

– Process’ resources are deallocated by operating system.

• Parent may terminate execution of children processes (via system call abort).– Child has exceeded allocated resources.– Task assigned to child is no longer required.– Parent is exiting, and the operating system does not allow

a child to continue if its parent terminates.

Page 30: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

30

Cooperating Processes

• Independent process cannot affect or be affected by the execution of another process.

• Cooperating process can affect or be affected by the execution of another process

• Advantages of process cooperation

– Information sharing

• Several users may be interested in the same piece of information (a shared file).

Page 31: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

31

Cooperating Processes (Contd..)

– Computation speed-up

• We want a particular task to run faster, we must break it into subtasks, each of which will be executing in parallel with the others. (Multiple processing elements CPUs)

– Modularity

• Construct the system in a modular fashion, dividing the system functions into separate processes.

– Convenience• An individual user may have many tasks to work on at one

time. (Editing, printing and compiling in parallel).

Page 32: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

32

Interprocess Communication (IPC)

• Mechanism for processes to communicate and to synchronize their actions.

• Message system – processes communicate with each other without resorting to shared variables.

• IPC facility provides two operations:– Send (message) – message size fixed or

variable – Receive (message)

Page 33: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

33

Interprocess Communication (IPC)

• If P and Q wish to communicate, they need to:– establish a communication link between them– exchange messages via send/receive

• Implementation of communication link– physical (e.g., shared memory, hardware bus)– logical (e.g., logical properties)

Page 34: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

34

Direct Communication

• Processes that wants to communicate must explicitly name the recipient or sender of comm. :– send (P, message) – send a message to process

P– receive(Q, message) – receive a message from

process Q

• Properties of 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 bi-

directional.

Page 35: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

35

Indirect Communication

• Messages are directed and received from mailboxes (also referred to 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.– Link may be unidirectional or bi-directional.

Page 36: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

36

Indirect Communication

• 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 Areceive(A, message) – receive a message from mailbox A

Page 37: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

37

Indirect Communication

• Mailbox sharing

– P1, P2, and P3 share mailbox A.

– P1, sends; P2 and P3 receive.

– Who gets the message?

• Solutions– Allow a link to be associated with at most two

processes.– Allow only one process at a time to execute a

receive operation.– Allow the system to select arbitrarily the

receiver.– Sender is notified who the receiver was.

Page 38: Chapter 2 Processes 1. 22 Processes Topics Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

38

Buffering

• Queue of messages attached to the link; implemented in one of three ways.

1. Zero capacity – 0 messages (Max. length = 0)Sender must wait until the recipient receives the message.

2. Bounded capacity – finite length of n messagesat most n messages can reside in the queue.Sender must wait if link full.

3. Unbounded capacity – infinite length Sender never waits.