OperatingSystems_FA15_3_Process

Download Report

Transcript OperatingSystems_FA15_3_Process

Operating Systems
Dr. Jerry Shiao, Silicon Valley University
Fall 2015
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
1
Processes
 Overview

Process Concepts


Process is Program in Execution
Process Control Blocks ( PCB )



Process State and State Transition
Queuing Model
Operating System Responsibilities:




Process Scheduling
 Short-Term, Long-Term, Medium-Term Schedulers
Operations on Process
 Process Creation / Termination / Suspension
 Process Mode Change / Process State Change
InterProcess Communication
 Shared-Memory Systems
 Message-Passing Systems
Communication in Client-Server Systems
 Sockets
 Remote Procedure Calls
 Pipes
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
2
Processes
 Fundamental Task of Operating System:


Operating System must:






Allocate Resources to Processes.
Protect Resources of Process from other Processes.
Execute System Tasks outside of the Kernel (i.e. sshd Daemon,
inetd Daemon).
Support InterProcess Communication and User Creation of
Processes.
Interleave execution of User Processes and System Processes
to maximize CPU.
Operating System maintains a Data Structure for each
Process.


Process Management.
Enables Operating System to exert Process Control.
Difficulty of Process Management: Concept of Thread.

Thread Property allows concurrent execution streams running
within a Process.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
3
Processes
 Process Concept
 Process is a unit of work in a Time-Sharing System.
 Process in Memory contains:






Text Section – Program code.
CPU Program Counter
CPU Registers
Stack – Temporary data ( function parameters, return addresses,
local variables ).
Data Section – Global variables.
Heap – Dynamically allocated memory during execution.
Max
Stack
Process in Memory
Heap
Data
0
Copyright @ 2009 John
Wiley & Sons Inc.
Text
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
4
Processes


Process Concept
Process Control Block ( PCB )

Process State:


Program Counter:


Base and limit registers, page tables.
Accounting Information:


Process priority, pointer to scheduling queues.
Memory-Management Information:


Accumulators, index registers, stack pointers, general purpose.
CPU-Scheduling Information:


Address of instruction to be executed.
CPU Registers:


New/Ready/Running/Waiting/Terminated
Amount of CPU time used, accounting numbers.
I/O Status Information:

List of I/O devices allocated to the process, list of open files.
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
5
Processes

Process Control Block ( PCB )



Process consists of Program Code, associated Data, and PCB.
Executing Program is characterized by PCB Data Structure.
PCB allows Operating System to interrupt a running process,
support multiple processes, and multiprocessing. Process Control Block
Unique Identifier associated with process.
Running, Ready, Blocked/Waiting, New, Exit
Priority level relative to other processes.
Address of next instruction in program.
Pointer to program code, process data,
shared memory blocks.
Data in Registers in the processor.
Outstanding I/O Requests, I/O Devices
assigned to process, List of files used by
process.
Processor time and clock time used, time
limits, account numbers, statistics.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
6
Processes
 Process Concept

Processor View:

Example: Memory Layout three processes.
Dispatcher or Scheduler
(Runs same code).
Program Counter Instruction Trace
Interleaved Traces of Instructions.
Process A
Process A
Process B
Process C
Process C
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
7
Processes

Process Concept

Processor View:

Time Line
Process Running.
Round Robin Scheduling.
Scheduler Running.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
8
Processes



Process Concept
Operating System determines interleaving pattern for execution and
allocating resources to process.
Two-State Process Model
Simple Process State, either Running
or Not Running.
Operating System keeps track of PCB
in a queue.
Queue entry is a pointer to the PCB.
Inefficent, need to search every entry
in Queue to find non-blocked process
to run.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
9
Processes


Process Concept
Five-State Model

Ready State needs additional state for process waiting (blocked)
for event ( I/O ).



Queue for Blocked Processes waiting for an Event
Require: Queue for each Event.
Ready State processes are dispatched based on Priority
Scheme.

Require: Queue for each Priority Level.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
10
Processes
 Process Concept
 Process State Transition

Null  New:


New  Ready:


Process notifies OS to exits or abort. Process tables and other information
temporarily preserved until OS utilities extract the needed information.
Running  Ready:


OS Scheduler selects one of the processes in the Ready state to run.
Running  Exit:


OS ready schedule the new process.
Ready  Running:


New User logs in or new Batch Job is submitted. PCB with Process ID is
created, but OS has not brought the job into memory. Example: OS has limit
of number of processes (prevent performance degradation) or memory not
available.
Process has reached its quantum and OS uses scheduling algorithm to find
next process in the Ready state. OS will preempt running Process, when a
higher priority process is ready to run. Process can also voluntarily release
processor.
Running  Blocked:

Process issues a request and must wait for the event. Process makes a
System Call (I/O Operation,
blocking for a semaphore).
SILICON VALLEY UNIVERSITY
Copyright @ 2009 Pearson
Education, Inc.
CONFIDENTIAL
11
Processes
 Process Concept
 Process State Transition

Blocked  Ready:


Ready  Exit:


Event for which a process is waiting for has occurred.
Parent process terminates a child process. Parent process terminates and
all child processes also terminates.
Blocked  Exit:

Parent process terminates a child process. Parent process terminates and
all child processes also terminates.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
12
Processes


Process Concept
Queuing Model
Ready Queue could
be expanded to
queue per Priority.
Event Queue:
Queue per Event.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
13
Processes


Process Concept
Process Creation


Operating System builds Process Control Block to manage the
Process.
Actions that will create a new Process:
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
14
Processes
 Process Concept
 Process Termination
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
15
Processes
 Process Concept
 Reasons for Process Suspension:
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
16
Processes
 Process Concept
 Swapping



Larger memory means larger processes, not more processes in
memory.
Moving part or all of a process from Main Memory to Disk.
Characteristics of a Swapped or Suspended State for a
Process:



Process not immediately available for execution.
Process may or may not be waiting on an event. Blocking
condition is independent of the suspend condition: just that the
process will not be executing in the near future.
Process placed in Suspend State by an agent: itself, parent
process, or the Operating System to prevent its execution.

Agent must explicitly remove the process from the Suspend State.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
17
Processes
 Process Concept
 Swapping
 Process States Affected:

Running:


Ready:


Process in Main Memory and available for execution.
Blocked:


Process currently executing on processor.
Process in Main Memory and waiting for an event ( I/O, semaphore ).
Process Swapped State Added:

Blocked/Suspend:


Blocked Process swapped-out and waiting for an event.
Ready/Suspend:

Event occurs for a swapped-out process (Block/Suspend State) or Process
(Ready State) must be swapped-out to free Main Memory for higher priority
Process to run.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
18
Processes
 Process Concept
 Swapping
Choices for selecting
process to bring back to
Main Memory:
1) Newly created process
directly admitted to Main
Memory or transitioned to
Ready State.
2) Previously suspended
process that has
transitioned to Ready
State.
3) Previously suspended
process still in the Blocked
State.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
19
Processes
 Process Concept
 Process State Transition

Blocked  Blocked/Suspend:


Blocked/Suspend  Ready/Suspend:


OS needs to free up Main Memory for current process or next scheduled
process.
New  Ready/Suspend:


OS Schedular already scheduled other Ready processes or process has
higher priority than other Ready processes.
Ready  Ready/Suspend:


Event waited on by the Blocked process occurs.
Ready/Suspend  Ready:


Current process or Ready or Ready/Suspend process needs Main Memory,
newly created process needs Main Memory.
New process cannot be added into Main Memory.
New  Ready:

New process can be added into Main Memory.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
20
Processes
 Process Concept
 Process State Transition

Blocked/Suspend  Blocked:


Running  Ready/Suspend:


Preemptive move when Main memory is available, and Blocked/Suspend
State process has high priority.
OS preempting current process when higher-priority Ready/Suspend or
Blocked/Suspend process has become unblocked and ready for execution.
Any State  Exit

Process completes execution or fatal fault condition occurs. Process can be
terminated by process that created it or the parent process itself is
terminated.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
21
Processes
 Process Description
 Operating System must manage the System Resources
for Processes.
 What Information is needed by Operating System to
control Processes and Manage Resources?
 Operating System Control Structures:

Memory Tables: Information Required







Allocation of Main Memory (blocks) to Processes (Process ID).
Allocation of Secondary Memory to Processes.
Any protection attributes of blocks of Main or Virtual Memory (shared
memory regions).
Information needed to manage Virtual Memory.
I/O Tables: Used to manage the I/O Device and monitor the
status of the I/O operations.
File Tables: File Management System manages the mapping of
files (Directories) to Secondary Memory.
Process Tables: List of Process Control Blocks (PCBs) used to
manage processes.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
22
Processes
 Process Description
 Operating System Control Tables
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
23
Processes
 Process Concept
 Process Creation:


New User logs in or new Batch Job is submitted.
Create new entry in the Process Table.


Allocate space for the process.




Process State Information initialized. Process State is Ready or
Ready/Suspended.
Process Control Information initialized. Process Priority set to default (lowest
priority) or user request.
Set linkages.


Operating System allocates private User address space (programs and data)
and User Stack.
Assigned as default or user request at process creation time.
Initialize the Process Control Block.


Assign a unique process identifier to the entry.
Place PCB into Ready or Ready/Suspended linked list.
Create or expand other Data Structures.

Operating System may maintain an accounting file on each process to be
used for billing.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
24
Processes
 Process Concept
 Process Switching



Running Process is interrupted and the Operating System
assigns another process to the running state and the process
takes control over the processor.
May occur when Operating System gains control from currently
running process.
Mechanisms for Interrupting the Execution of a Process.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
25
Processes
 Process Concept
 Process Switching: System Interrupts
 Interrupts:

Clock Interrupt: Operating System determines currently running process
has exceeded its allowable running time (Quantum). Currently running
process


I/O Interrupt: Operating System determines I/O action completed.


All blocked processes waiting for this I/O event has their Process State from
Blocked or Blocked/Suspend to Ready or Ready/Suspend.
Memory Fault: Process Virtual Memory reference for addresses not in
Main Memory.


Process State switched to Ready or Ready/Suspended and another process
scheduled.
Process switched to Blocked and OS switch to another process.
Traps

Fatal error or exception condition.


Process State changed to Exit and OS switch to another process.
System Call.

Operating System service can place the Process in a Blocked state ( I/O
Request ).
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
26
Processes
 Process Concept
 Process State Change
 Operating System Environment Changes







Processor context ( Program Counter and other Process State
Information) saved in PCB. Update other PCB Process Control
Information fields.
Process State changed to other state (Ready, Blocked, …).
PCB moved to appropriate queue (Ready, Blocked on Event, …).
Select another process for execution (Highest priority).
Selected process Process State changed to Running.
Update Process Memory Management data structures (Page
Table).
Restore context of selected process. Program Counter restored
to the instruction to be executed before the process was
switched out.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
27
Processes
 Process Concept
 Mode Switching



Different than Process State Change (Context Switch).
Switch from User Mode to Kernel Mode to execute Kernel code.
Interrupt Detection:


Instruction cycle, processor checks for presence of interrupt
signal after executing the instruction.
If an interrupt is pending:




Sets Program Counter to Interrupt Handler program.
Switches from User Mode to Kernel Mode so that privileged instructions can
be executed.
Context of the interrupted user process (the processor state information:
Program Counter, registers, stack information) is saved in the Process
Control Block of the interrupted program.
After interrupt completes:


If another process is scheduled (interrupt is the Real-Time Clock and the
current process running time has expired), then a Process State change
occurs.
If the current running process can resume execution, then the processor
state information is restored from the PCB and the process resumes running.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
28
Processes
 Process Concept
 Operating System Design Approaches
 Execution within User Process:
Process Image
When interrupt, trap, or System Call occurs, the
processor is placed in Kernel Mode and the
user mode context is saved and a mode switch
takes place to an OS routine.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
29
Processes
 Process Concept
 Operating System Design Approaches
 Process-Based Operating System



Operating System as a collection of system processes: Major Kernel
functions are organized as separate processes.
Modular Operating System design.
In multiprocessor environment, OS services can execute on dedicated
processors.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
30
Processes
 Process Concept
 UNIX System V




Operating System executes within the environment of User
Process (System Calls, Interrupts, Traps).
System Processes: Run in Kernel Mode for OS administrative
and management functions (allocation of memory, swapping).
User Processes: Run in User Mode for User programs and
utilities and Kernel Mode when System Call, Trap, or Interrupt
occurs.
Nine Process States with following new states:


Two Running States, indicates whether process is in User Mode
or Kernel Mode.
Two Ready States, Ready to Run/In Memory and Preempted.
Preempted State occurs when process is in Kernel Mode from
System Call, Clock Interrupt, or I/O Interrupt, and the current
Process must be preempted to allow a higher priority process in
Ready state to run.
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
31
Processes
 Process Concept
 UNIX System V Process Management
 UNIX Process States
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
32
Processes
 Process Concept
 UNIX System V Process Management
 UNIX Process State Transition Diagram
Copyright @ 2009 Pearson
Education, Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
33
Processes


Operations on Processes
Windows Process Creation


Windows: CreateProcess ( ) System Call.
 Similar to UNIX fork( ), but CreateProcess( ) is passed, as a
parameter, the program to load and execute.
Process Termination

Child exceeded resource usage ( shared
with parent and other child processes ).
 Child’s program execution not needed.
 Parent termination.
WaitForSingleObject( )
Parent
CreateProcess ( )
Parent
Resumes
Child
‘cmd’
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
exit( )
34
Processes


Operations on Processes
UNIX Process Creation



Process ( parent process ) creates new processes ( child
process ).
Process Identifier ( PID ) uniquely identifies a process.
UNIX: fork ( ) System Call.


Created process used to execute another program in parallel ( parent
process continue to execute ) or parent program will wait for child process to
complete.
exec ( ) system call loads binary image into memory to execute, but loaded
over the process that called exec ( ).
Parent
fork( )
wait( )
Parent
Resumes
Child
exec(‘cmd’ )
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
exit( )
35
Processes
 Process Concept
 Threads


Executing
Process performs single thread of execution.
Multiple threads per process used for Multi-programming.
Process P0
Operating System
Process P1
Interrupt or System Call
Save State into PCB0
...
Reload State From PCB1
Executing
Interrupt or System Call
Save State into PCB1
...
Executing
Copyright @ 2009 John
Wiley & Sons Inc.
Reload State From PCB0
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
36
Processes
 Process Scheduling

Objectives:



Ready Queue:


Processes waiting to execute.
Device Queues:


For Multi-Programming, maximize CPU utilization.
For Time Sharing, switch CPU amount processes
Processes waiting for I/O Request to complete.
Scheduling Queues
PCB 0
Ready Queue
Disk Unit 0
PCB 2
Head
Head
Head
Tail
Registers
Registers
...
...
NULL
PCB 3
Head
Head
Tail
Registers
NULL
...
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
37
Processes
 Process Scheduling
 Schedulers

Short-Term Scheduler





Selects a new process for the CPU frequently ( every 100 milliseconds ).
I/O bound processes - Interactive processes are I/O-bound, spending a lot of
time waiting for I/O operations.
Interactive processes waiting for human input.
 Response time must be quick (latency 50-150ms).
 Command shells, text editors, graphical applications, mouse and
keyboard processes.
Time-Sharing systems, UNIX and Microsoft Windows.
Long-Term Scheduler




Selects a new process less frequently ( order of minutes ).
Controls the degree of multi-programming ( number of processes in
memory ). Ideally, new process starts as a process exits.
CPU bound processe - Batch processes are CPU-bound, heavily ultilize
CPU time for computations.
 Batch processes typically executing in background, i.e. compilers,
database search engines, and scientific computiations.
 No user interactions.
Batch systems, IBM mainframe systems.
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
38
Processes


Process Scheduling
Schedulers

Medium-Term Scheduler




Time-Sharing systems needs combination of short and long term schedulers.
Reduce the degree of mult-programming ( remove processes from memory )
and contention for CPU by swapping processes out to disk.
Overcommitted available memory.
Process swapped in later when process mix is more favorable.
Swap In
Process To Be
Scheduled
Partially Executed
Swapped-Out Processes
Process
Terminate
Scheduled
Ready Queue
I/O
Copyright @ 2009 John
Wiley & Sons Inc.
Swap Out
CPU
I/O Waiting Queues
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
39
Processes


Process Scheduling
Context Switch

Interrupts switch CPU from executing process to Kernel process.


PCB contains context of the process





Need to save and restore interrupted process.
CPU Registers
Process State
Memory-Management Information
Switch the CPU to another process
All Overhead, speed depends on:



Memory Speed
Number of registers
Hardware assist



Copyright @ 2009 John
Wiley & Sons Inc.
Single instruction to load or restore all registers .
CPU contains multiple sets of registers ( Sun UltraSPARC ).
Preserve and restore process Page Table.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
40
Processes



Interprocess Communication
Process is independent if it cannot affect or be affected
by other processes in the system.
Process is cooperating if it can affect or be affected by
other processes in the system.





Concurrent access to shared data.
Computational speedup with subtasks.
Modularity in system design with separate processes or threads.
Convenience with subtasks.
Cooperating Process and InterProcess Communcation
( IPC )

Shared-Memory Systems


Region of memory shared between processes to exchange
messages and data.
Message Passing Systems

Messages exchanged through System Calls to the Kernel.
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
41
Processes

Interprocess Communication
Message Passing
Process A
Shared memory
M
Process A
Shared
Process B
M
Kernel
M
Copyright @ 2009 John
Wiley & Sons Inc.
Process B
Kernel
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
42
Processes


Interprocess Communication
Shared-Memory Systems



Shared Region exists in the address space of the process
creating the shared-memory segment.
Processes must handle synchronizing shared-memory segment
read and write.
Cooperating Processes: Producer – Consumer

Producer ( Server ): Produces information


Consumer ( Client ): Consumes information


Web Server creates and sends HTML files and images.
Web Browser reads the HTML files and images.
Producer – Consumer relationship between local processes
represented by shared-memory segment.



Shared-memory segment circular buffer and in / out pointers.
Producer process writes into circular buffer moving in pointer.
Consumer process reads from circular buffer moving out pointer.
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
43
Processes




Interprocess Communication
Shared-Memory Systems
POSIX API for Shared Memory
Create shared-memory segment
segment_id = shmget( segment_id, size, S_IRUSR | S_IWUSR )
segment_id = IPC_PRIVATE or ftok(“<filename>”, id)
IPC_PRIVATE: New shared memory segment is created.
size: In bytes of shared-memory segment.
S_IRUSR | S_IWUSR: Read and write to shared-memory segment.

Access shared-memory segment
shared_memory = (char *) shmat( segment_id, NULL, 0 )
shared_memory: Pointer to shared-memory segment.
segment_id: Shared-memory segment identifier.
NULL: Operating System selects where to attach the shared-memory.
0: Attach shared-memory in read / write mode.

Remove shared-memory segment
shmdt ( shared_memory )
shared memory: Detach shared-memory region.
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
44
Processes
 Interprocess Communication
 Message-Passing System
 Operating System provides message-passing facility for
cooperating processes.
 Communication Link for send ( ) / receive ( ) operations:


How to refer to the process
Direct Communication




Explicitly name the recipient or sender establishes link automatically:
 send ( <processID1>, message ), receive ( <processID2>, message ).
Symmetry addressing ( recipient and sender names must be known).
Asymmetry addressing ( Sender name known, recipient receives processID ).
 send ( <processID1>, message ), receive ( <id>, message ).
Indirect Communication




Messages sent to and received from mailboxes or ports (unique identifier).
 send ( <mailbox ID>, message ), receive ( <mailboxID>, message )
Process has number of different links, each link corresponding to one
mailbox.
Mailbox Process Owned: Dependency, unique owner.
Mailbox Operating System Owned: Independent, not attached to a process.
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
45
Processes
 Interprocess Communication
 Message-Passing System
 Communication Link for send ( ) / receive ( ) operations:

Synchronous Communications



Asynchronous Communications



Blocking Send: Sending process blocked until receive by process or mailbox.
Blocking Receive: Receiving process blocks until message received.
NonBlocking Send: Sending process not blocked.
NonBlocking Receive: Receiving process receives message or NULL.
Buffering




Messages exchanged reside in queue.
Zero Capacity: Queue has depth of zero. Sender must block until
the recipient receives the message.
Bounded Capacity: Queue has n depth. Sender must block when
the queue is full.
Unbounded Capacity: Queue has infinite depth. Sender never
blocks.
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
46
Processes
 Interprocess Communication
 Message-Passing System: Mach Operating System
(MicroKernel)
 System Calls and all intertask communication handled
by messages (ports).

Application Created: Kernel Mailbox and Notify Mailbox are
created.







Kernel Mailbox: Communication between Kernel and the task.
Notify Mailbox: Kernel sends notification of events to the task.
port_allocate ( ) System Call creates new mailbox and allocate space for 8
(default) messages.
All messages has same priority, FIFO ordering.
Messages contents has list of typed data items (Type:Length:Value).
Mailbox Set (Server Tasks): Collection of mailboxes treated as one mailbox.
Intrasystem Messaging:


Virtual Memory Management to eliminate physical message copying.
Mach maps Sender address space containing Sender’s Message into the
Receiver address space.
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
47
Processes


Interprocess Communication
Message-Passing System: Windows XP

Local Procedure Calls (LPC) communicates between two processes.
 Win32 API Remote Procedure Calls (RPC) indirectly handle messages on
the same Computer System as LPC.
 Two Connection Port Objects:
 Connection Port visible to all processes.
 Communication Port between client and server.
Client
Application
Programs
Server
Connection
Request
Connection Port
Handle
Handle
Client Communication
Port (Small Messages)
Server Communication
Port (Small Messages)
Handle
Windows XP
Subsystem Server
Communication Port:
Copies messages
between Client and
Server.
Section Object Port:
Uses shared memory
Shared Section
Object
(<= 256 Bytes)
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
48
Processes


Client-Server System Communications
Sockets


Endpoints for communication.
Network IP address: port uniquely identifies connection




Port identifies the services to handle the request.
Port 23 = Telnet, Port 21 = FTP, Port 80 = HTTP.
Ports below 1024 are well-known for standard services.
Structure of message imposed by the client and server.
Client: Web Browser
Server: Web Server
Dest=192.168.1.100 : 80
Src = 192.168.1.10 : 1625
Dest = 192.168.1.10 : 1625
Src = 192.168.1.100 : 80
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
49
Processes
 Client-Server System Communications
 Remote Procedure Calls ( RPC )



Abstract procedure-call mechanism to use between computer
systems over a network connection.
Network IP address: RPC port uniquely identifies RPC program
RPC Port:


Statically defined RPC port number.
A daemon (program) at fixed port number that returns the RPC port number.
Client: Send command in RPC message.
Server: Process command in RPC message.
Dest=192.168.1.100 : <RPC port>
Src = 192.168.1.10 : 1625
Dest = 192.168.1.10 : 1625
Src = 192.168.1.100 : <RPC port>
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
50
Processes
 Client-Server System Communications
Client
Message
Server
User calls Kernel to
send RPC message
to procedure X.
Kernel sends
message to MM to
find port number.
From: Client
To: Server, Port: MM
Re: Address for RPC X
MM (MatchMaker)
receives message,
looks up answer.
Kernel places port P
in user RPC
message.
From: Server
To: Client, Port: Kernel
Re: RPC X Port: P
Matchmaker replies
to client with port P.
Kernel sends RPC.
From: Client
To: Server, Port: P
< contents >
Daemon listening to
port P receives
message.
Kernel receives
reply, passes it to
user.
From: RPC, Port: P
To: Client, Port: Kernel
< output >
Daemon processes
request and process
send output.
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
51
Processes
 Client-Server System Communications
 Pipes
 Conduit allowing two processes to communicate
 Ordinary Pipes




Unidirectional, one-way communication.
Two-way communication require two pipes.
Parent-Child process relationship.
UNIX treats pipes as special files, requiring file descriptors.




pipe ( int fd [ ] ) command creates two file descriptors.
fd [ 0 ] is the read-end of the pipe.
fd [ 1 ] is the write-end of the pipe.
Use standard read ( ) and write ( ) system calls.
Parent
fd(0)
Child
fd(1)
fd(0)
fd(1)
Pipe
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
52
Processes
 Client-Server System Communications
 Pipes
 Named Pipes




Bidirectional, but only half-duplex is permitted.
No Parent-Child process relationship.
Named pipes continue to exist after processes exits.
UNIX treats pipes as special FIFO files, requiring file descriptors.





mkfifo ( char *pathname ) command creates file.
Use standard open ( ) to get file descriptor and then use read ( ) and
write ( ) system calls.
Both sides of fifo file must be opened, else one side blocks on open
until another process opens the fifo file.
Processes must reside on same computer system.
Windows bidirectional, full-duplex permitted.




Processes can reside on the same or different computer systems.
CreateNamedPipe ( ) creates the named pipe.
ConnectNamedPipe ( ) connects to named pipe.
ReadFile() and WriteFile() used to manipulate the named pipe.
Copyright @ 2009 John
Wiley & Sons Inc.
SILICON VALLEY UNIVERSITY
CONFIDENTIAL
53
Processes
 Summary
 Process is a Unit of Work in the Operating System.
 System and User Processes Execute Concurrently with
Operating System Multiplexing CPU Between Processes.
 Operating System Placed Processes in Queues.
 Two major classes of queues: I/O Request Queue and
Ready Queue.
 Scheduling the Queues:


Parent / Child Process


Executes Concurrent or Parent Waits for Child Terminate.
Inter-Process Communication


Long-Term Scheduler, Short-Term Scheduler, Medium-Term
Scheduler.
Shared Memory and Message Passing
Client-Server Systems
Sockets, Remote Procedure Calls (RPC), Pipes (Ordinary and
Named)
SILICON VALLEY UNIVERSITY
Copyright @ 2009 John

Wiley & Sons Inc.
CONFIDENTIAL
54