Module 4: Processes
Download
Report
Transcript Module 4: Processes
Chapter 3: Processes
Objectives
Understand
Process concept
Process scheduling
Creating and terminating processes
Interprocess communication
Operating System Concepts
3.2
Silberschatz, Galvin and Gagne ©2005
Process Concept
An operating system executes a variety of programs:
Batch system – jobs
Time-shared systems – user programs or tasks
The terms job and process are almost interchangeable
Process – a program in execution; process execution must
progress in sequential fashion
A process includes:
program counter
stack
data section
Operating System Concepts
3.3
Silberschatz, Galvin and Gagne ©2005
Process in Memory
int global = 0;
int main (int arg)
{
float local;
char *ptr;
Local variables
Return address
ptr = malloc(100);
local = 0;
local += 10*5;
…..
….
foo();
…. /* return addr */
….
return 0;
Dynamically
allocated
Global variables
Program code
}
Operating System Concepts
3.4
Silberschatz, Galvin and Gagne ©2005
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
ready: The process is waiting to be assigned to a process
terminated: The process has finished execution
Operating System Concepts
3.5
Silberschatz, Galvin and Gagne ©2005
Process Control Block (PCB)
OS maintains info about process in PCB
Process state
Program counter
CPU registers
CPU scheduling information
Memory-management information
Accounting information
I/O status information
Typically, a large C structure in the kernel
Linux: struct task_struct
Used extensively to manage processes
E.g., to switch CPU from one process
to another
Operating System Concepts
3.6
Silberschatz, Galvin and Gagne ©2005
CPU Switch From Process to Process
(Context Switch)
When switching occurs,
kernel
Saves state of P0 in
PCB0 (in memory)
Loads state of P1
from PCB1 into
registers
State = values of the
CPU registers, including
the program counter,
stack pointer
Operating System Concepts
3.7
Silberschatz, Galvin and Gagne ©2005
Context Switch
Context-switch time is pure overhead; no useful work is done
The switching time depends on the hardware support
Some systems (Sun UltraSPARC) provide multiple register sets
very fast switching (just change a pointer)
Typical systems, few milliseconds for switching
Operating System Concepts
3.8
Silberschatz, Galvin and Gagne ©2005
Job Types
Jobs (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
Operating System Concepts
3.9
Silberschatz, Galvin and Gagne ©2005
Scheduling: The Big Picture
Consider a large computer system to which many jobs are submitted
Initially, jobs go to the secondary storage (disk)
Then, job scheduler chooses some of them to go to the memory
(ready queue)
Then, CPU scheduler chooses from the ready queue a job to run on
the CPU
Medium-term scheduler may move (swap) some partially-executed
jobs from memory to disk (to enhance performance)
Operating System Concepts
3.10
Silberschatz, Galvin and Gagne ©2005
Scheduling: The Big Picture (cont’d)
Midterm sched.
Jobs
Disk
Job sched.
CPU sched.
In most small and interactive systems (UNIX, WinXP, …),
only the CPU scheduler exists
Operating System Concepts
3.11
Silberschatz, Galvin and Gagne ©2005
Schedulers
Long-term scheduler (or job scheduler)
Selects which processes should be brought into ready queue
Controls the degree of multiprogramming
Invoked infrequently (seconds, minutes) (can be slow)
Should maintain a ‘good mix’ of CPU-bound and I/O-bound jobs in
the system
Short-term scheduler (or CPU scheduler)
selects which process should be executed next and allocates CPU
Short-term scheduler is invoked very frequently (milliseconds)
(must be fast)
Medium-term scheduler
Operating System Concepts
Swap processes in and out of the ready queue to enhance
performance (i.e., maintain the good mix of jobs)
3.12
Silberschatz, Galvin and Gagne ©2005
Process Scheduling Queues
Processes migrate among
various 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
Operating System Concepts
3.13
Silberschatz, Galvin and Gagne ©2005
Process Lifetime
Operating System Concepts
3.14
Silberschatz, Galvin and Gagne ©2005
Process Creation
Parent process creates children processes, which, in turn create
other processes, forming a tree of processes
Execution
Parent and children execute concurrently
Parent waits until children terminate
Resource sharing can take the form (depending on the OS):
Parent and children share all resources
Children share subset of parent’s resources
Parent and children share no resources
Operating System Concepts
3.15
Silberschatz, Galvin and Gagne ©2005
Process Creation: Unix Example
Process creates another process (child) by using fork system call
Child is a copy of the parent
Typically, child loads another program into its address space
using exec system
Parent waits for its children to terminate
Operating System Concepts
3.16
Silberschatz, Galvin and Gagne ©2005
C Program Forking Separate Process
int main()
{
pid_t pid;
pid = fork(); /* fork another process */
if (pid < 0) { /* error occurred */
fprintf (stderr, "Fork Failed");
exit(-1);
}
else if (pid == 0) { /* child process */
execlp ("/bin/ls", "ls", NULL);
}
else { /* parent process */
/* parent will wait for child to complete */
wait (NULL);
printf ("Child Complete");
exit(0);
Note: fork returns 0 to child and the pid of the
}
}
Operating System Concepts
new process to parent.
3.17
Silberschatz, Galvin and Gagne ©2005
A tree of processes on a typical Solaris
Operating System Concepts
3.18
Silberschatz, Galvin and Gagne ©2005
Process Termination
Process executes last statement and asks the operating system to
delete it (exit)
Output data from child to parent (via wait)
Process’ resources are deallocated by operating system
Parent may terminate execution of children processes (abort)
Child has exceeded allocated resources
Task assigned to child is no longer required
If parent is exiting
Some operating system do not allow child to continue if its
parent terminates
–
Operating System Concepts
All children terminated - cascading termination
3.19
Silberschatz, Galvin and Gagne ©2005
Cooperating Processes
Cooperating process can affect or be affected by the execution of
another process
Why processes cooperate?
Information sharing
Computation speed-up
Modularity, Convenience
Interprocess Communications (IPC) methods
Shared memory
Message passing
Operating System Concepts
3.20
Silberschatz, Galvin and Gagne ©2005
Interprocess Communications Models
Message Passing
Operating System Concepts
Shared Memory
3.21
Silberschatz, Galvin and Gagne ©2005
IPC: Shared Memory
Processes communicate by creating a shared place in memory
One process creates a shared memory—shmget()
Other processes attach shared memory to their own address
space—shmat()
Then, shared memory is treated as regular memory
Synchronization is needed to prevent concurrent access to
shared memory (conflicts)
Pros
Fast (memory speed)
Convenient to programmers (just regular memory)
Cons
Need to manage conflicts (tricky for distributed systems)
Operating System Concepts
3.22
Silberschatz, Galvin and Gagne ©2005
IPC: Message Passing
If processes P and Q wish to communicate, they need to:
establish a communication channel between them
exchange messages via:
send (message) – message size fixed or variable
receive (message)
Pros
No conflict easy to exchange messages especially in
distributed systems
Cons
Overhead (message headers)
Slow
prepare messages
Kernel involvement: sender kernel receiver (several
system calls)
Operating System Concepts
3.23
Silberschatz, Galvin and Gagne ©2005
IPC: Message Passing (cont’d)
Communication channel can be
Direct: Processes must name each other explicitly:
send (P, message) – send a message to process P
receive (Q, message) – receive a message from process Q
Indirect: Processes communicate via mailboxes (or ports)
Messages are sent to and received from mailboxes
Each mailbox has a unique id
Operating System Concepts
–
Send (A, message) – send a message to mailbox A
–
Receive (A, message) – receive a message from
mailbox A
3.24
Silberschatz, Galvin and Gagne ©2005
IPC: Message Passing (cont’d)
Synchronization: message passing is either
Blocking (or synchronous)
send () has the sender block until the message is received
receive () has the receiver block until a message is
available
Non-blocking (or asynchronous)
send () has the sender send the message and continue
receive () has the receiver receive a valid message or null
Buffering: Queue of messages attached to the comm. channel
Zero capacity – Sender must wait for receiver (rendezvous)
Bounded capacity – Sender must wait if link full
Unbounded capacity – Sender never waits
Operating System Concepts
3.25
Silberschatz, Galvin and Gagne ©2005
Summary
Process is a program in execution
OS maintains process info in PCB
Process State diagram
Creating and terminating processes (fork)
Process scheduling
Long-, short-, and medium-term schedulers
Scheduling queues
Interprocess communication
Shared memory
Message passing
Operating System Concepts
3.26
Silberschatz, Galvin and Gagne ©2005