Chapter 2 Processes Processes Topics Process Concept Process

  • Slides: 38
Download presentation
Chapter 2 Processes

Chapter 2 Processes

Processes Topics • • • Process Concept Process Scheduling Operations on Processes Cooperating Processes

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

Process Concept • An operating system executes a variety of programs: – Batch system

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) 3

Why Have Processes? · Resource sharing ( logical (files) and physical (hardware) ). ·

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. 4

Process State • As a process executes, it changes state – New: The process

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. 5

Diagram of Process State 6

Diagram of Process State 6

Suspended state and swapping · Suspended : Another process has explicitly told this process

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 7

A Seven-state Process Model 8

A Seven-state Process Model 8

New state transitions (mid-term scheduling) • Blocked --> Blocked Suspend – When all processes

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 9

Process Control Block (PCB) Contains Information Associated With Each Process: • It's a data

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

CPU Switch From Process to Process 11

CPU Switch From Process to Process 11

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

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. 12

Ready Queue And Various I/O Device Queues 13

Ready Queue And Various I/O Device Queues 13

Representation of Process Scheduling 14

Representation of Process Scheduling 14

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. • 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. 15

Life cycle of a typical process 16

Life cycle of a typical process 16

Addition of Medium Term Scheduling 17

Addition of Medium Term Scheduling 17

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

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. 18

Dispatcher (short-term scheduler) • Swaps processes out to secondary storage. • It prevents a

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. 19

Dispatcher at work 20

Dispatcher at work 20

Context Switch • When an event occurs, the operating system saves the state of

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. 21

Memory: to save or NOT to save • Here are the possibilities: • Save

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 1 MB/sec. How long does saving a 4 MB 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, 22

Process Creation • Parent process create children processes, which, in turn create other processes,

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. 23

Process Creation (Cont. ) • Address space – Child duplicate of parent. – Child

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. 24

A fork() System Call 25

A fork() System Call 25

Process Creation 26

Process Creation 26

A exec() System Call 27

A exec() System Call 27

Process Creation • Parent process create children processes, which, in turn create other processes,

Process Creation • Parent process create children processes, which, in turn create other processes, forming a tree of processes. Processes Tree on a UNIX System 28

Process Termination • Process executes its last statement and asks the operating system to

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. 29

Cooperating Processes • Independent process cannot affect or be affected by the execution of

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). 30

Cooperating Processes (Contd. . ) – Computation speed-up • We want a particular task

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). 31

Interprocess Communication (IPC) • Mechanism for processes to communicate and to synchronize their actions.

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) 32

Interprocess Communication (IPC) • If P and Q wish to communicate, they need to:

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) 33

Direct Communication • Processes that wants to communicate must explicitly name the recipient or

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. 34

Indirect Communication • Messages are directed and received from mailboxes (also referred to as

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. 35

Indirect Communication • Operations – create a new mailbox – send and receive messages

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

Indirect Communication • Mailbox sharing – P 1, P 2, and P 3 share

Indirect Communication • Mailbox sharing – P 1, P 2, and P 3 share mailbox A. – P 1, sends; P 2 and P 3 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. 37

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

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 messages at most n messages can reside in the queue. Sender must wait if link full. 3. Unbounded capacity – infinite length Sender never waits. 38