SlideShare a Scribd company logo
Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Chapter 3: Processes
3.2 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Chapter 3: Processes
 Process Concept
 Process Scheduling
 Operations on Processes
 Interprocess Communication
 Examples of IPC Systems
 Communication in Client-Server Systems
3.3 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Objectives
 To introduce the notion of a process -- a program in execution, which forms the basis of all
computation
 To describe the various features of processes, including scheduling, creation and termination,
and communication
 To describe communication in client-server systems
3.4 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Process Concept
 An operating system executes a variety of programs:
 Batch system – jobs
 Time-shared systems – user programs or tasks
 Textbook uses the terms job and process almost interchangeably
 Process – a program in execution; process execution must progress in sequential fashion
 A process includes:
 program counter
 stack
 data section
3.5 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
The Process
 Multiple parts
 The program code, also called text section
 Current activity including program counter, processor registers
 Stack containing temporary data
 Function parameters, return addresses, local variables
 Data section containing global variables
 Heap containing memory dynamically allocated during run time
 Program is passive entity, process is active
 Program becomes process when executable file loaded into memory
 Execution of program started via GUI mouse clicks, command line entry of its name, etc
 One program can be several processes
 Consider multiple users executing the same program
3.6 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Process in Memory
3.7 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
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 processor
 terminated: The process has finished execution
3.8 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Diagram of Process State
3.9 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Process Control Block (PCB)
Information associated with each process
 Process state
 Program counter
 CPU registers
 CPU scheduling information
 Memory-management information
 Accounting information
 I/O status information
3.10 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
 Process state
The state may be new, ready, running, waiting halted son on
 Program counter
the counter indicates the address of the next instruction to be executed for this process.
 CPU registers
The register are vary in number and type, depending on the computer architecture. The include accumulator ,
index registers , stack pointers and general purpose registers etc.
 CPU scheduling information
This include a process priority , pointer to scheduling queues and any other scheduling parameters.
 Memory-management information
This information may includes such information such as a value of the base and limit registers, the page table or
segment tables, time limit, account numbers, job process numbers and so on memory system used by the
operating system.
 Accounting information
The information includes the amount of CPU and real time used, time limits, account numbers, job and process
number.
 I/O status information
The information includes the list of I/O devices allocated to the process, a list of open files etc
3.11 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Process Control Block (PCB)
3.12 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
CPU Switch From Process to Process
3.13 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Process Scheduling
 Maximize CPU use, quickly switch processes onto CPU for time sharing
 Process scheduler selects among available processes for next execution on CPU
 Maintains scheduling queues of processes
 Job queue – as process enter the system, they are put into a 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
 Processes migrate among the various queues
3.14 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Process Representation in Linux
 Represented by the C structure task_struct
pid_t pid; /* process identifier */
long state; /* state of the process */
unsigned int time_slice /* scheduling information */
struct task_struct *parent; /* this process’s parent */
struct list_head children; /* this process’s children */
struct files_struct *files; /* list of open files */
struct mm_struct *mm; /* address space of this pro */
3.15 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Ready Queue And Various
I/O Device Queues
3.16 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Representation of Process Scheduling
3.17 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
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
 Sometimes the only scheduler in a system
3.18 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
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)
Is used to select a job or user program from job queue to the ready queue in main memory
 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
3.19 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
 Medium term Scheduler
 Some operating system such as time sharing system introduce a medium-term scheduler, which removes process
from memory and thus reduce the degree of multiprogramming.
 At some time later the process sapped out , and in later swapped in by the medium term sceduler.

3.20 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Addition of Medium Term Scheduling
3.21 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
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 via a context switch.
 Context of a process represented in the PCB
 Context-switch time is overhead; the system does no useful work while switching
 The more complex the OS and the PCB -> longer the context switch
 Time dependent on hardware support
 Some hardware provides multiple sets of registers per CPU -> multiple contexts loaded at once
3.22 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Process Creation
 Parent process create children processes, which, in turn create other processes, forming a tree of
processes
 Generally, process identified and managed via a process identifier (pid)
 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
3.23 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
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
3.24 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Process Creation
3.25 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
C Program Forking Separate Process
#include <sys/types.h>
#include <studio.h>
#include <unistd.h>
int main()
{
pid_t pid;
/* fork another process */
pid = fork();
if (pid < 0) { /* error occurred */
fprintf(stderr, "Fork Failed");
return 1;
}
else if (pid == 0) { /* child process */
execlp("/bin/ls", "ls", NULL);
}
else { /* parent process */
/* parent will wait for the child */
wait (NULL);
printf ("Child Complete");
}
return 0;
}
3.26 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
A Tree of Processes on Solaris
3.27 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Process Termination
 A Process terminates when it finishes executing its final statement and ask the operating system to
delete it by using the exit() system call.
 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 systems do not allow child to continue if its parent terminates
– All children terminated - cascading termination
– If a process terminates then all its children must also be terminated. This
phenomenon referred as cascading termination.
3.28 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Interprocess Communication
 Processes within a system may be independent or cooperating
 Cooperating process can affect or be affected by other processes, including sharing data
 Reasons for cooperating processes:
 Information sharing
 Computation speedup
 Modularity
 Convenience
 Cooperating processes need interprocess communication (IPC)
 Two models of IPC
 Shared memory
In shared-memory model , a region of memory that is shared by cooperating process is established.
Process can then exchange information by reading and wrinintg data to shared region.
 Message passing
 In the message passing model, communication takes place by means of message exchange
between the cooperating process
3.29 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Communications Models
3.30 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
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
process cooperation is necessary because many users may need to access the same information
such as shared file etc. An enviroment must be provided where such information can be accessed
by multiple users concurrently.
 Computation speed-up
One task can be didvided into multiple task to execute it to faster. All divided subtask can be
executed concurently to speedup the computation.
 Modularity
Process cooperation is very important if the system is to be constructed in modular style. The
modular system divides the functions into separate process.
 Convenience
Process cooperation provides convenience if single user is working on multiple tasks at the same
time.
3.31 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Producer-Consumer Problem
 Paradigm for cooperating processes, producer process produces information that is
consumed by a consumer process
 unbounded-buffer places no practical limit on the size of the buffer
 bounded-buffer assumes that there is a fixed buffer size
3.32 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Bounded-Buffer –
Shared-Memory Solution
 Shared data
#define BUFFER_SIZE 10
typedef struct {
. . .
} item;
item buffer[BUFFER_SIZE];
int in = 0;
int out = 0;
 Solution is correct, but can only use BUFFER_SIZE-1 elements
3.33 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Bounded-Buffer – Producer
while (true) {
/* Produce an item */
while (((in = (in + 1) % BUFFER SIZE count) == out)
; /* do nothing -- no free buffers */
buffer[in] = item;
in = (in + 1) % BUFFER SIZE;
}
The producer basically just checks to see if there is any space in
which to put a newly produced item. If there is no space, then it
waits until there is some space.
3.34 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Bounded Buffer – Consumer
while (true) {
while (in == out)
; // do nothing -- nothing to consume
// remove an item from the buffer
item = buffer[out];
out = (out + 1) % BUFFER SIZE;
return item;
}
The consumer waits while the buffer is empty. If there
is something , it grabs the next item and consumes
it.
3.35 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Interprocess Communication –
Message Passing
 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)
 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)
3.36 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Implementation Questions
 How are links established?
 Can a link be associated with more than two processes?
 How many links can there be between every pair of communicating processes?
 What is the capacity of a link?
 Is the size of a message that the link can accommodate fixed or variable?
 Is a link unidirectional or bi-directional?
3.37 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Direct Communication
In direct communication each process that want to communicate must name the sender or recipient of the
communication. There are two schemes of direct communication known as symmetric communication
and asymmetric communication. The symmetric communication requires that both sender and receiver
process must name each other to communicate. In asymmetric , only the sender process must name the
recipient. The recipient process does not need to name the sender process.
 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 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
3.38 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
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
3.39 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
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
3.40 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
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.
3.41 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Synchronization
 Message passing may be either blocking or non-blocking
 Blocking is considered synchronous
 Blocking send the sending process is blocked until the massage is received by the receiving
process or by the mailbox.
 Blocking receive has the receiver block until a message is available
 Non-blocking is considered asynchronous
 Non-blocking send has the sender send the message and continue
 Non-blocking receive has the receiver receive a valid message or null
3.42 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Buffering
 The messages exchanged via any type of communication reside in a temporary queue. These queues
can be implemented in the following ways .
 Queue of messages attached to the link; implemented in one of three ways
1. Zero capacity-the queue has a maximum length zero. The link cannot have any message waiting
in it. The sender must wait until the recipient receives the message. The two process must be
synchronized for the transfer of a message. The zero capacity link is referred to as a message-
passing system without buffering.
2. Bounded capacity – finite length of n messages
Sender must wait if link full
3. Unbounded capacity – infinite length
Sender never waits
3.43 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Examples of IPC Systems - POSIX
 POSIX Shared Memory
 Process first creates shared memory segment
segment id = shmget(IPC PRIVATE, size, S IRUSR | S IWUSR);
 Process wanting access to that shared memory must attach to it
shared memory = (char *) shmat(id, NULL, 0);
 Now the process could write to the shared memory
sprintf(shared memory, "Writing to shared memory");
 When done a process can detach the shared memory from its address space
shmdt(shared memory);
3.44 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
 Several IPC mechanisms are available for POSIX systems, including shared memory and message
passing. Here, we explore the POSIX API for shared memory.
 A process must first create a shared memory segment using the shmget () system call (shmget () is
derived from SHared Memory GET). The following example illustrates the use of shmget ():
 segment_id = shmget (IPC-PRIVATE, size, S_lRUSR I S_lWUSR) ;
 This first parameter specifies the key (or identifier) of the shared-memory segment.
 The second parameter specifies the size (in bytes) of the shared-memory Segment.
 the third parameter identifies the mode, which indicates how the shared-memory segment is to be
used-that is, for reading, writing, or both. By setting the mode to S_lRUSR 1 S_lWUSR,
3.45 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
 Processes that wish to access a shared-memory segment must attach it to their
address space using the shmat () (SHared Memory ATtach) system call.
 The call to shmat () expects three parameters as well. The first is the integer identifier
of the shared-memory segment being attached,
 the second is a pointer location in memory indicating where the shared ncemory will
be attached. If we pass a value of NULL, the operating system selects the location on
the user's behalf.
 The third parameter identifies a flag that allows the sharedmemory region to be
attached in read-only or read-write mode; by passing a parameter of 0, we allow both
reads and writes to the shared region.
 We attach a region of shared memory using shmat () as follows:
shared_memory =(char*) shmat(id, NULL, 0);
3.46 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
 Once the region of shared ncemory is attached to a process's address space, the process can access the shared
memory as a routine memory access using the pointer returned from shmat (). In this example, shmat () returns a
pointer to a character string. Thus, we could write to the shared-memory region as follows:
 sprintf(shared_memory, "Writing to shared memory");
 Other processes sharing this segment would see the updates to the sharedmemory segment.
3.47 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Examples of IPC Systems - Mach
 Mach communication is message based
 Even system calls are messages
 Each task gets two mailboxes at creation- Kernel and Notify
 Only three system calls needed for message transfer
msg_send(), msg_receive(), msg_rpc()
 Mailboxes needed for commuication, created via
port_allocate()
3.48 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Examples of IPC Systems – Windows XP
 Message-passing centric via local procedure call (LPC) facility
 Only works between processes on the same system
 Uses ports (like mailboxes) to establish and maintain communication channels
 Communication works as follows:
 The client opens a handle to the subsystem’s connection port object.
 The client sends a connection request.
 The server creates two private communication ports and returns the handle to one of them to
the client.
 The client and server use the corresponding port handle to send messages or callbacks and
to listen for replies.
3.49 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Local Procedure Calls in Windows XP
3.50 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Communications in Client-Server Systems
 Sockets
 Remote Procedure Calls
 Pipes
 Remote Method Invocation (Java)
3.51 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Sockets
 A socket is defined as an endpoint for communication
 Concatenation of IP address and port
 The socket 161.25.19.8:1625 refers to port 1625 on host 161.25.19.8
 Communication consists between a pair of sockets
3.52 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Socket Communication
3.53 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Remote Procedure Calls
 Remote procedure call (RPC) abstracts procedure calls between processes on networked systems
 Stubs – client-side proxy for the actual procedure on the server
 The client-side stub locates the server and marshalls the parameters
 The server-side stub receives this message, unpacks the marshalled parameters, and performs the
procedure on the server
3.54 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Execution of RPC
3.55 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Pipes
 Acts as a conduit allowing two processes to communicate
 Issues
 Is communication unidirectional or bidirectional?
 In the case of two-way communication, is it half or full-duplex?
 Must there exist a relationship (i.e. parent-child) between the communicating processes?
 Can the pipes be used over a network?
3.56 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Ordinary Pipes
 Ordinary Pipes allow communication in standard producer-consumer style
 Producer writes to one end (the write-end of the pipe)
 Consumer reads from the other end (the read-end of the pipe)
 Ordinary pipes are therefore unidirectional
 Require parent-child relationship between communicating processes
3.57 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Ordinary Pipes
3.58 Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
Named Pipes
 Named Pipes are more powerful than ordinary pipes
 Communication is bidirectional
 No parent-child relationship is necessary between the communicating processes
 Several processes can use the named pipe for communication
 Provided on both UNIX and Windows systems
Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
End of Chapter 3
Silberschatz, Galvin and Gagne ©2009
Operating System Concepts – 8th Edition
End of Chapter 3

More Related Content

Similar to ch3-lect7.pptx

ch3.ppt
ch3.pptch3.ppt
ch3.ppt
Sami Mughal
 
ch3 s ppt
ch3 s                                  pptch3 s                                  ppt
ch3 s ppt
DhruvilSTATUS
 
cs8493 - operating systems unit 2
cs8493 - operating systems unit 2cs8493 - operating systems unit 2
cs8493 - operating systems unit 2
SIMONTHOMAS S
 
ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 c...
ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 c...ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 c...
ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 c...
SanjeevKumarSinha13
 
Processes
ProcessesProcesses
Processes
K Gowsic Gowsic
 
Operating System
Operating SystemOperating System
Operating System
Indhu Periys
 
process management.ppt
process management.pptprocess management.ppt
process management.ppt
ShubhamGoel184057
 
ch3.ppt
ch3.pptch3.ppt
ch3.ppt
SonaliAjankar
 
Chapter 3: Processes
Chapter 3: ProcessesChapter 3: Processes
Chapter 3: Processes
Shafaan Khaliq Bhatti
 
ch3_smu.ppt
ch3_smu.pptch3_smu.ppt
ch3_smu.ppt
JubayerPial
 
OS-operating systems- ch03
OS-operating systems- ch03OS-operating systems- ch03
OS-operating systems- ch03
Dr. Mazin Mohamed alkathiri
 
Ch3 processes
Ch3 processesCh3 processes
Ch3 processes
Ankit Dubey
 
Processes
ProcessesProcesses
Processes
RezaSony
 
ch3.pptx
ch3.pptxch3.pptx
ch3.pptx
HuyNguyn660008
 
ch03.pptx
ch03.pptxch03.pptx
ch03.pptx
SHIKHAARYA26
 
ch3.pptx
ch3.pptxch3.pptx
ch3.pptx
ZoYaKazmi3
 
Process_Concepts.pdf
Process_Concepts.pdfProcess_Concepts.pdf
Process_Concepts.pdf
IrsaAamir1
 
ch3_LU6_LU7_Lecture_1691052564579.pptx
ch3_LU6_LU7_Lecture_1691052564579.pptxch3_LU6_LU7_Lecture_1691052564579.pptx
ch3_LU6_LU7_Lecture_1691052564579.pptx
AKumaraGuru
 

Similar to ch3-lect7.pptx (20)

ch3.ppt
ch3.pptch3.ppt
ch3.ppt
 
ch3.ppt
ch3.pptch3.ppt
ch3.ppt
 
ch3 s ppt
ch3 s                                  pptch3 s                                  ppt
ch3 s ppt
 
cs8493 - operating systems unit 2
cs8493 - operating systems unit 2cs8493 - operating systems unit 2
cs8493 - operating systems unit 2
 
ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 c...
ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 c...ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 c...
ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 ch3 c...
 
Processes
ProcessesProcesses
Processes
 
Operating System
Operating SystemOperating System
Operating System
 
process management.ppt
process management.pptprocess management.ppt
process management.ppt
 
ch3.ppt
ch3.pptch3.ppt
ch3.ppt
 
Chapter 3: Processes
Chapter 3: ProcessesChapter 3: Processes
Chapter 3: Processes
 
ch3_smu.ppt
ch3_smu.pptch3_smu.ppt
ch3_smu.ppt
 
OS-operating systems- ch03
OS-operating systems- ch03OS-operating systems- ch03
OS-operating systems- ch03
 
Ch3 processes
Ch3 processesCh3 processes
Ch3 processes
 
14712-l4.pptx
14712-l4.pptx14712-l4.pptx
14712-l4.pptx
 
Processes
ProcessesProcesses
Processes
 
ch3.pptx
ch3.pptxch3.pptx
ch3.pptx
 
ch03.pptx
ch03.pptxch03.pptx
ch03.pptx
 
ch3.pptx
ch3.pptxch3.pptx
ch3.pptx
 
Process_Concepts.pdf
Process_Concepts.pdfProcess_Concepts.pdf
Process_Concepts.pdf
 
ch3_LU6_LU7_Lecture_1691052564579.pptx
ch3_LU6_LU7_Lecture_1691052564579.pptxch3_LU6_LU7_Lecture_1691052564579.pptx
ch3_LU6_LU7_Lecture_1691052564579.pptx
 

Recently uploaded

TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Po-Chuan Chen
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
heathfieldcps1
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
Tamralipta Mahavidyalaya
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
Special education needs
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
vaibhavrinwa19
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
timhan337
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
Celine George
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
Peter Windle
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf
CarlosHernanMontoyab2
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
GeoBlogs
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 

Recently uploaded (20)

TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 
678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 

ch3-lect7.pptx

  • 1. Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Chapter 3: Processes
  • 2. 3.2 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Chapter 3: Processes  Process Concept  Process Scheduling  Operations on Processes  Interprocess Communication  Examples of IPC Systems  Communication in Client-Server Systems
  • 3. 3.3 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Objectives  To introduce the notion of a process -- a program in execution, which forms the basis of all computation  To describe the various features of processes, including scheduling, creation and termination, and communication  To describe communication in client-server systems
  • 4. 3.4 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Process Concept  An operating system executes a variety of programs:  Batch system – jobs  Time-shared systems – user programs or tasks  Textbook uses the terms job and process almost interchangeably  Process – a program in execution; process execution must progress in sequential fashion  A process includes:  program counter  stack  data section
  • 5. 3.5 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition The Process  Multiple parts  The program code, also called text section  Current activity including program counter, processor registers  Stack containing temporary data  Function parameters, return addresses, local variables  Data section containing global variables  Heap containing memory dynamically allocated during run time  Program is passive entity, process is active  Program becomes process when executable file loaded into memory  Execution of program started via GUI mouse clicks, command line entry of its name, etc  One program can be several processes  Consider multiple users executing the same program
  • 6. 3.6 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Process in Memory
  • 7. 3.7 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition 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 processor  terminated: The process has finished execution
  • 8. 3.8 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Diagram of Process State
  • 9. 3.9 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Process Control Block (PCB) Information associated with each process  Process state  Program counter  CPU registers  CPU scheduling information  Memory-management information  Accounting information  I/O status information
  • 10. 3.10 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition  Process state The state may be new, ready, running, waiting halted son on  Program counter the counter indicates the address of the next instruction to be executed for this process.  CPU registers The register are vary in number and type, depending on the computer architecture. The include accumulator , index registers , stack pointers and general purpose registers etc.  CPU scheduling information This include a process priority , pointer to scheduling queues and any other scheduling parameters.  Memory-management information This information may includes such information such as a value of the base and limit registers, the page table or segment tables, time limit, account numbers, job process numbers and so on memory system used by the operating system.  Accounting information The information includes the amount of CPU and real time used, time limits, account numbers, job and process number.  I/O status information The information includes the list of I/O devices allocated to the process, a list of open files etc
  • 11. 3.11 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Process Control Block (PCB)
  • 12. 3.12 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition CPU Switch From Process to Process
  • 13. 3.13 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Process Scheduling  Maximize CPU use, quickly switch processes onto CPU for time sharing  Process scheduler selects among available processes for next execution on CPU  Maintains scheduling queues of processes  Job queue – as process enter the system, they are put into a 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  Processes migrate among the various queues
  • 14. 3.14 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Process Representation in Linux  Represented by the C structure task_struct pid_t pid; /* process identifier */ long state; /* state of the process */ unsigned int time_slice /* scheduling information */ struct task_struct *parent; /* this process’s parent */ struct list_head children; /* this process’s children */ struct files_struct *files; /* list of open files */ struct mm_struct *mm; /* address space of this pro */
  • 15. 3.15 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Ready Queue And Various I/O Device Queues
  • 16. 3.16 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Representation of Process Scheduling
  • 17. 3.17 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition 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  Sometimes the only scheduler in a system
  • 18. 3.18 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition 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) Is used to select a job or user program from job queue to the ready queue in main memory  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
  • 19. 3.19 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition  Medium term Scheduler  Some operating system such as time sharing system introduce a medium-term scheduler, which removes process from memory and thus reduce the degree of multiprogramming.  At some time later the process sapped out , and in later swapped in by the medium term sceduler. 
  • 20. 3.20 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Addition of Medium Term Scheduling
  • 21. 3.21 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition 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 via a context switch.  Context of a process represented in the PCB  Context-switch time is overhead; the system does no useful work while switching  The more complex the OS and the PCB -> longer the context switch  Time dependent on hardware support  Some hardware provides multiple sets of registers per CPU -> multiple contexts loaded at once
  • 22. 3.22 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Process Creation  Parent process create children processes, which, in turn create other processes, forming a tree of processes  Generally, process identified and managed via a process identifier (pid)  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. 3.23 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition 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. 3.24 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Process Creation
  • 25. 3.25 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition C Program Forking Separate Process #include <sys/types.h> #include <studio.h> #include <unistd.h> int main() { pid_t pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); return 1; } else if (pid == 0) { /* child process */ execlp("/bin/ls", "ls", NULL); } else { /* parent process */ /* parent will wait for the child */ wait (NULL); printf ("Child Complete"); } return 0; }
  • 26. 3.26 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition A Tree of Processes on Solaris
  • 27. 3.27 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Process Termination  A Process terminates when it finishes executing its final statement and ask the operating system to delete it by using the exit() system call.  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 systems do not allow child to continue if its parent terminates – All children terminated - cascading termination – If a process terminates then all its children must also be terminated. This phenomenon referred as cascading termination.
  • 28. 3.28 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Interprocess Communication  Processes within a system may be independent or cooperating  Cooperating process can affect or be affected by other processes, including sharing data  Reasons for cooperating processes:  Information sharing  Computation speedup  Modularity  Convenience  Cooperating processes need interprocess communication (IPC)  Two models of IPC  Shared memory In shared-memory model , a region of memory that is shared by cooperating process is established. Process can then exchange information by reading and wrinintg data to shared region.  Message passing  In the message passing model, communication takes place by means of message exchange between the cooperating process
  • 29. 3.29 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Communications Models
  • 30. 3.30 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition 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 process cooperation is necessary because many users may need to access the same information such as shared file etc. An enviroment must be provided where such information can be accessed by multiple users concurrently.  Computation speed-up One task can be didvided into multiple task to execute it to faster. All divided subtask can be executed concurently to speedup the computation.  Modularity Process cooperation is very important if the system is to be constructed in modular style. The modular system divides the functions into separate process.  Convenience Process cooperation provides convenience if single user is working on multiple tasks at the same time.
  • 31. 3.31 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Producer-Consumer Problem  Paradigm for cooperating processes, producer process produces information that is consumed by a consumer process  unbounded-buffer places no practical limit on the size of the buffer  bounded-buffer assumes that there is a fixed buffer size
  • 32. 3.32 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Bounded-Buffer – Shared-Memory Solution  Shared data #define BUFFER_SIZE 10 typedef struct { . . . } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0;  Solution is correct, but can only use BUFFER_SIZE-1 elements
  • 33. 3.33 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Bounded-Buffer – Producer while (true) { /* Produce an item */ while (((in = (in + 1) % BUFFER SIZE count) == out) ; /* do nothing -- no free buffers */ buffer[in] = item; in = (in + 1) % BUFFER SIZE; } The producer basically just checks to see if there is any space in which to put a newly produced item. If there is no space, then it waits until there is some space.
  • 34. 3.34 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Bounded Buffer – Consumer while (true) { while (in == out) ; // do nothing -- nothing to consume // remove an item from the buffer item = buffer[out]; out = (out + 1) % BUFFER SIZE; return item; } The consumer waits while the buffer is empty. If there is something , it grabs the next item and consumes it.
  • 35. 3.35 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Interprocess Communication – Message Passing  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)  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)
  • 36. 3.36 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Implementation Questions  How are links established?  Can a link be associated with more than two processes?  How many links can there be between every pair of communicating processes?  What is the capacity of a link?  Is the size of a message that the link can accommodate fixed or variable?  Is a link unidirectional or bi-directional?
  • 37. 3.37 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Direct Communication In direct communication each process that want to communicate must name the sender or recipient of the communication. There are two schemes of direct communication known as symmetric communication and asymmetric communication. The symmetric communication requires that both sender and receiver process must name each other to communicate. In asymmetric , only the sender process must name the recipient. The recipient process does not need to name the sender process.  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 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
  • 38. 3.38 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition 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
  • 39. 3.39 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition 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
  • 40. 3.40 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition 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.
  • 41. 3.41 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Synchronization  Message passing may be either blocking or non-blocking  Blocking is considered synchronous  Blocking send the sending process is blocked until the massage is received by the receiving process or by the mailbox.  Blocking receive has the receiver block until a message is available  Non-blocking is considered asynchronous  Non-blocking send has the sender send the message and continue  Non-blocking receive has the receiver receive a valid message or null
  • 42. 3.42 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Buffering  The messages exchanged via any type of communication reside in a temporary queue. These queues can be implemented in the following ways .  Queue of messages attached to the link; implemented in one of three ways 1. Zero capacity-the queue has a maximum length zero. The link cannot have any message waiting in it. The sender must wait until the recipient receives the message. The two process must be synchronized for the transfer of a message. The zero capacity link is referred to as a message- passing system without buffering. 2. Bounded capacity – finite length of n messages Sender must wait if link full 3. Unbounded capacity – infinite length Sender never waits
  • 43. 3.43 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Examples of IPC Systems - POSIX  POSIX Shared Memory  Process first creates shared memory segment segment id = shmget(IPC PRIVATE, size, S IRUSR | S IWUSR);  Process wanting access to that shared memory must attach to it shared memory = (char *) shmat(id, NULL, 0);  Now the process could write to the shared memory sprintf(shared memory, "Writing to shared memory");  When done a process can detach the shared memory from its address space shmdt(shared memory);
  • 44. 3.44 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition  Several IPC mechanisms are available for POSIX systems, including shared memory and message passing. Here, we explore the POSIX API for shared memory.  A process must first create a shared memory segment using the shmget () system call (shmget () is derived from SHared Memory GET). The following example illustrates the use of shmget ():  segment_id = shmget (IPC-PRIVATE, size, S_lRUSR I S_lWUSR) ;  This first parameter specifies the key (or identifier) of the shared-memory segment.  The second parameter specifies the size (in bytes) of the shared-memory Segment.  the third parameter identifies the mode, which indicates how the shared-memory segment is to be used-that is, for reading, writing, or both. By setting the mode to S_lRUSR 1 S_lWUSR,
  • 45. 3.45 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition  Processes that wish to access a shared-memory segment must attach it to their address space using the shmat () (SHared Memory ATtach) system call.  The call to shmat () expects three parameters as well. The first is the integer identifier of the shared-memory segment being attached,  the second is a pointer location in memory indicating where the shared ncemory will be attached. If we pass a value of NULL, the operating system selects the location on the user's behalf.  The third parameter identifies a flag that allows the sharedmemory region to be attached in read-only or read-write mode; by passing a parameter of 0, we allow both reads and writes to the shared region.  We attach a region of shared memory using shmat () as follows: shared_memory =(char*) shmat(id, NULL, 0);
  • 46. 3.46 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition  Once the region of shared ncemory is attached to a process's address space, the process can access the shared memory as a routine memory access using the pointer returned from shmat (). In this example, shmat () returns a pointer to a character string. Thus, we could write to the shared-memory region as follows:  sprintf(shared_memory, "Writing to shared memory");  Other processes sharing this segment would see the updates to the sharedmemory segment.
  • 47. 3.47 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Examples of IPC Systems - Mach  Mach communication is message based  Even system calls are messages  Each task gets two mailboxes at creation- Kernel and Notify  Only three system calls needed for message transfer msg_send(), msg_receive(), msg_rpc()  Mailboxes needed for commuication, created via port_allocate()
  • 48. 3.48 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Examples of IPC Systems – Windows XP  Message-passing centric via local procedure call (LPC) facility  Only works between processes on the same system  Uses ports (like mailboxes) to establish and maintain communication channels  Communication works as follows:  The client opens a handle to the subsystem’s connection port object.  The client sends a connection request.  The server creates two private communication ports and returns the handle to one of them to the client.  The client and server use the corresponding port handle to send messages or callbacks and to listen for replies.
  • 49. 3.49 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Local Procedure Calls in Windows XP
  • 50. 3.50 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Communications in Client-Server Systems  Sockets  Remote Procedure Calls  Pipes  Remote Method Invocation (Java)
  • 51. 3.51 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Sockets  A socket is defined as an endpoint for communication  Concatenation of IP address and port  The socket 161.25.19.8:1625 refers to port 1625 on host 161.25.19.8  Communication consists between a pair of sockets
  • 52. 3.52 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Socket Communication
  • 53. 3.53 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Remote Procedure Calls  Remote procedure call (RPC) abstracts procedure calls between processes on networked systems  Stubs – client-side proxy for the actual procedure on the server  The client-side stub locates the server and marshalls the parameters  The server-side stub receives this message, unpacks the marshalled parameters, and performs the procedure on the server
  • 54. 3.54 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Execution of RPC
  • 55. 3.55 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Pipes  Acts as a conduit allowing two processes to communicate  Issues  Is communication unidirectional or bidirectional?  In the case of two-way communication, is it half or full-duplex?  Must there exist a relationship (i.e. parent-child) between the communicating processes?  Can the pipes be used over a network?
  • 56. 3.56 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Ordinary Pipes  Ordinary Pipes allow communication in standard producer-consumer style  Producer writes to one end (the write-end of the pipe)  Consumer reads from the other end (the read-end of the pipe)  Ordinary pipes are therefore unidirectional  Require parent-child relationship between communicating processes
  • 57. 3.57 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Ordinary Pipes
  • 58. 3.58 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition Named Pipes  Named Pipes are more powerful than ordinary pipes  Communication is bidirectional  No parent-child relationship is necessary between the communicating processes  Several processes can use the named pipe for communication  Provided on both UNIX and Windows systems
  • 59. Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition End of Chapter 3
  • 60. Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8th Edition End of Chapter 3

Editor's Notes

  1. POSIX an acronym for "Portable Operating System Interface",[1] is a family of standards specified by the IEEE for maintaining compatibility between operating systems