chapter 3: processeshscc.cs.nthu.edu.tw/~os/lecture_note/ch03.pdf · selecting processes from the...
TRANSCRIPT
![Page 1: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/1.jpg)
Chapter 3: ProcessesChapter 3: Processes
3.1 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 2: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/2.jpg)
Chapter 3: ProcessesChapter 3: Processes
� Process Concept
� Process Scheduling
� Operations on Processes
� Cooperating Processes
3.2 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� Cooperating Processes
� Interprocess Communication
� Communication in Client-Server Systems
![Page 3: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/3.jpg)
Process Concept (1)Process Concept (1)
� Process (job): a program in execution (informally) � the unit of work in most systems
� A system consists of a collection of processes (system processes and user processes) executing concurrently, with CPU multiplexed among them
� A process is more than the program code (known as
3.3 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
the text section). It also includes: (more formal formal definitiondefinition)� current activity (program counter, content of registers)
� stack containing temporary data (e.g., parameters)
� heap for dynamically memory allocation
� data section containing global variables
� a set of associated resources
![Page 4: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/4.jpg)
Process in MemoryProcess in Memory
3.4 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 5: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/5.jpg)
Process Concept (2)Process Concept (2)
�� program counterprogram counter: next instruction to be executed
� A program is a passivepassive entity but a process is an activeactive entity
� Two processes may be associated with the same program, they are considered as separate execution
3.5 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
program, they are considered as separate execution sequences� They have the same text section, but their data section will
vary e.g., several users may running the copies of the mail/editor program
� A process may spawnspawn many processes as it runs
![Page 6: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/6.jpg)
Process StateProcess 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
3.6 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� ready : The process is waiting to be assigned to a process
� terminated : The process has finished execution
![Page 7: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/7.jpg)
Diagram of Process StateDiagram of Process State
3.7 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 8: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/8.jpg)
Process Control Block (PCB)Process Control Block (PCB)
Information associated with each process
� Process state
� Program counter
� CPU registers
� CPU scheduling information
3.8 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� CPU scheduling information
� Memory-management information
� Accounting information
� I/O status information
![Page 9: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/9.jpg)
Process Control Block (PCB)Process Control Block (PCB)
3.9 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 10: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/10.jpg)
CPU Switch From Process to ProcessCPU Switch From Process to Process
3.10 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 11: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/11.jpg)
Process Scheduling QueuesProcess Scheduling 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
3.11 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
device
� Processes migrate among the various queues
![Page 12: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/12.jpg)
Ready Queue And Various I/O Device QueuesReady Queue And Various I/O Device Queues
3.12 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 13: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/13.jpg)
Representation of Process SchedulingRepresentation of Process Scheduling
3.13 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 14: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/14.jpg)
SchedulersSchedulers
� 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
3.14 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
executed next and allocates
![Page 15: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/15.jpg)
LongLong--term Scheduler (job Scheduler):term Scheduler (job Scheduler):
� Selecting processes from the job pool and loads them into memory for execution
� Execute less frequently (e.g., once several minutes)
� Control the degree of multiprogrammingdegree of multiprogramming
Select a good process mixprocess mix of I/OI/O--boundbound processesprocesses
3.15 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� Select a good process mixprocess mix of I/OI/O--boundbound processesprocessesand CPUCPU--bound processesbound processes
� Some system, such as time-sharing system, do not have. Their multiprogramming degree are controlled by hardware limitation (e.g., # of terminals) or on the self-adjusting nature of users
![Page 16: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/16.jpg)
ShortShort--term scheduler (CPU scheduler)term scheduler (CPU scheduler)
� Selecting one of the ready processes, and allocates the CPU to it. � Execute quite frequently (e.g., once per 100ms )
� must be very fast e.g., if it takes 10 ms, then 10/(100+10) percent of CPU is wasted.
3.16 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
ready queue
I/O queue(s)I/O
CPU
short-termlong-term
end
![Page 17: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/17.jpg)
Addition of Medium Term SchedulingAddition of Medium Term Scheduling
�swap out : removing processes from memory to reduce the degree of multiprogramming.�swap in : reintroducing swap-out processes into memory
3.17 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 18: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/18.jpg)
Context SwitchContext Switch
� Context switch : saving the state of the old process and loading the saved state of the new process
� This is a pure overheadoverhead
� switch time (about 1~1000 ms) depends on
�memory speed
number of registers
3.18 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
�number of registers
�existence of special instructions
e.g., a single instruction to save/load all registers
�hardware support
e.g., multiple sets of registers
![Page 19: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/19.jpg)
Schedulers (Cont.)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
3.19 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
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 20: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/20.jpg)
Process CreationProcess 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
3.20 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� Children share subset of parent’s resources
� Parent and child share no resources , the child ask new one from OS
� Execution
� Parent and children execute concurrently
� Parent waits until children terminate
![Page 21: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/21.jpg)
Process Creation (Cont.)Process Creation (Cont.)
� Address space
� Child duplicate of parent , communication via sharing variables (it has the same program and data as the parent)
� Child has a program loaded into it ,
3.21 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
communication via message passing
� UNIX examples
� fork system call creates new process
� exec system call used after a fork to replace the process’s memory space with a new program
![Page 22: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/22.jpg)
Process CreationProcess Creation
3.22 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 23: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/23.jpg)
C Program Forking Separate ProcessC Program Forking Separate Process
int main(){Pid_t pid;
/* fork another process */pid = fork();if (pid < 0) { /* error occurred */
fprintf(stderr, "Fork Failed");exit(-1);
}else if (pid == 0) { /* child process */
3.23 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
else if (pid == 0) { /* child process */execlp("/bin/ls", "ls", NULL);
}else { /* parent process */
/* parent will wait for the child to complete */wait (NULL);printf ("Child Complete");exit(0);
}}
![Page 24: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/24.jpg)
A tree of processes on a typical SolarisA tree of processes on a typical Solaris
3.24 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 25: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/25.jpg)
Process TerminationProcess Termination
� Process executes last statement and asks the operating system to delete it (exit )� Output data from child to parent (via wait )
� Process’s resources are deallocated by operating system
� Parent may terminate execution of children processes (abort )
3.25 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
(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
– All children terminated - cascading termination
![Page 26: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/26.jpg)
Cooperating ProcessesCooperating 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
3.26 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� Information sharing ( e.g. a shared file)
� Computation speed-up (e.g. parallel processing)
� Modularity
� Convenience (e.g., A user can performs several tasks at one time (editing, printing, compiling))
![Page 27: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/27.jpg)
ProducerProducer--Consumer ProblemConsumer Problem
� Paradigm for cooperating processes, producer process produces information that is consumed by a consumer process
�� unboundedunbounded--bufferbuffer places no practical limit on the size of the buffer
3.27 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
�producer: no wait
�consumer: wait when buffer is empty
�� boundedbounded--bufferbuffer assumes that there is a fixed buffer size
�producer: wait when buffer is full
�consumer: wait when buffer is empty
![Page 28: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/28.jpg)
BoundedBounded--Buffer Buffer –– SharedShared--Memory Memory SolutionSolution
� Shared data
#define BUFFER_SIZE 10
Typedef struct {
. . .
} item;
3.28 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
item buffer[BUFFER_SIZE];
int in = 0;
int out = 0;
� Solution is correct, but can only use BUFFER_SIZE-1 elements
![Page 29: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/29.jpg)
BoundedBounded--Buffer Buffer –– Insert() MethodInsert() Method
while (true) {/* Produce an item */
while (((in = (in + 1) % BUFFER SIZE count) == out)
3.29 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
out)
; /* do nothing -- no free buffers */
buffer[in] = item;
in = (in + 1) % BUFFER SIZE;
{
![Page 30: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/30.jpg)
Bounded Buffer Bounded Buffer –– Remove() MethodRemove() Method
while (true) {
while (in == out)
; // do nothing -- nothing to consume
// remove an item from the buffer
3.30 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
// remove an item from the buffer
item = buffer[out];
out = (out + 1) % BUFFER SIZE;
return item;
{
![Page 31: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/31.jpg)
MessageMessage--Passing SystemsPassing Systems
� 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)
3.31 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� 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) such as channel or socket
![Page 32: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/32.jpg)
Implementation QuestionsImplementation 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?
3.32 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� 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?
![Page 33: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/33.jpg)
Logical LinksLogical Links
� Several methods for logically implementing a linkand the send/receive operations:
� Direct or indirect communication
� Symmetric or asymmetric communication
3.33 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� Automatic or explicit buffering
![Page 34: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/34.jpg)
Direct CommunicationDirect Communication
� Processes must name each other explicitly:� send (P, message) – send a message to process P
� receive (Q, message) – receive a message from process Q
� Properties of communication link
3.34 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� 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 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/35.jpg)
Indirect CommunicationIndirect 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
3.35 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� 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 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/36.jpg)
Indirect CommunicationIndirect Communication
� Operations
� create a new mailbox
� send and receive messages through mailbox
� destroy a mailbox
3.36 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� 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
![Page 37: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/37.jpg)
Indirect CommunicationIndirect Communication
� Mailbox sharing� P1, P2, and P3 share mailbox A
� P1, sends; P2 and P3 receive
� Who gets the message?
� The answer depends on which of the following
3.37 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
methods we choose� 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 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/38.jpg)
SynchronizationSynchronization
� Message passing may be either blocking or non-blocking
� Blocking is considered synchronous� Blocking send has the sender block until the message
is received
� Blocking receive has the receiver block until a
3.38 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
� 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
![Page 39: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/39.jpg)
BufferingBuffering
� Queue of messages attached to the link; implemented in one of three ways
1.Zero capacity – 0 messagesSender must wait for receiver (rendezvous)
2.Bounded capacity – finite length of n messages
3.39 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Sender must wait if link full
3.Unbounded capacity – infinite length Sender never waits
![Page 40: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/40.jpg)
ClientClient--Server CommunicationServer Communication
� Sockets
� Remote Procedure Calls
� Remote Method Invocation (Java)
3.40 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 41: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/41.jpg)
SocketsSockets
� 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
3.41 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
1625 on host 161.25.19.8
� Communication consists between a pair of sockets
![Page 42: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/42.jpg)
Socket CommunicationSocket Communication
3.42 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 43: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/43.jpg)
Remote Procedure CallsRemote Procedure Calls
� Remote procedure call (RPC) abstracts procedure calls between processes on networked systems.
� Stubs – client-side routine for the actual procedure on the server.
� The client-side stub locates the server and marshals
3.43 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
the parameters.
� The server-side stub receives this message, unpacks the marshalled parameters, and performs the procedure on the server.
![Page 44: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/44.jpg)
Execution of RPCExecution of RPC
3.44 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 45: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/45.jpg)
Remote Method InvocationRemote Method Invocation
� Remote Method Invocation (RMI) is a Java mechanism similar to RPCs.
� RMI allows a Java program on one machine to invoke a method on a remote object.
3.45 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 46: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/46.jpg)
Marshalling ParametersMarshalling Parameters
3.46 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 47: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/47.jpg)
Home worksHome works
� 1, 2, 3, 5 (Due: Oct. 31)
� 7, 8, 9 (option) (Due: Nov. 5)
3.47 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
![Page 48: Chapter 3: Processeshscc.cs.nthu.edu.tw/~os/lecture_note/CH03.pdf · Selecting processes from the job pool and loads them into memory for execution Execute less frequently (e.g.,](https://reader036.vdocuments.net/reader036/viewer/2022071005/5fc2e8660603913c6031eb3a/html5/thumbnails/48.jpg)
End of Chapter 3End of Chapter 3
3.48 Silberschatz, Galvin and Gagne ©2005Operating System Concepts