Process Addressing in Distributed System
Last Updated :
15 Mar, 2022
In this article, we will go through the concept of addressing processes involved in communication in Distributed Systems in detail.
In a Message-based communication system, another vital issue is to name or address the processes that are involved in communication. The following are the two types of addressing schemes supported by the Message Process Addressing:
- Explicit Addressing
- Implicit Addressing
Explicit Addressing: In the Explicit Addressing scheme, there is an explicit specification of the process as a parameter in the communication primitive used. The primitives used in Explicit Addressing are as follows:
- Send(process_id, message): A message is sent to the process whose process_id is specified as a parameter.
- Receive(process_id, message): A message is received from the process whose process_id is specified as a parameter.
Implicit Addressing: In the Implicit Addressing scheme, the process that wants to communicate with another process need not be specified explicitly as a parameter in the communication primitive used rather a service_id is specified. The primitives used in Implicit Addressing are as follows:
- Send_any(service_id, message): A message will be sent to any process that provides the service corresponding to the service_id type. In this primitive, the sender names a service in place of process. It finds its application in client-server communications in which the client is least bothered about which server out of a set of servers in providing the service.
- Receive_any(process_id, message): It receives a message from any sending process then returns the process_id of the process that has sent the message. In this primitive, the message can be received from any process by the receiver. It finds its application in client-server communications in which all authorized clients receive service from the server.
Methods for Process Addressing:
machine_id@local_id: This method uses machine and local id for identifying processes. A machine_id refers to the address of the receiver's machine which is used by sending the machine for sending messages and local_id refers to the process_id or port identifier or name of a receiving process.
Example: Berkeley Unix gives 32 bit IP Addresses and 16-bit process_id or local_id (IP address, port number).
Advantage:
- In order to address the processes, no global coordination is required with this method.
Disadvantage:
- Migration of processes is not permitted with this method.
machine_id1@local_id@machine_id2: This method is having one extra field of machine_id for migrated processes. That is the reason it is known as Link-based addressing. A machine_id1 recognizes the node or machine where the process was created and local_id is generated by the machine on which the process was created. Here machine_id2 refers to the last known location of the created process. It is used in the case of process migration because when a process migrates to another machine, it lefts the link information which consists of the machine_id of the node to which it is migrating with the current machine. The purpose of this link information is that whenever required messages can be forwarded to the migrated processes.
Advantage:
- It allows the migration of processes.
Disadvantages:
- It becomes a location overhead, due to the migration of the process several times, The other issue can also arise if a machine gets down due to the reason on which the process was executing then it is quite difficult to locate a process.
Location Transparent Process Addressing:
In the Location Transparent Process Addressing mechanism, when a process is willing to send a message to another process, simply gives a high-level name to the process which is then mapped by name server to its low-level name. For future reference, mapping can be cached also by the sending kernel so that need to contact the name server again is eliminated.
An important goal in the process of addressing is to provide location transparency. The most commonly used method to achieve this goal is to use a two-level naming scheme for processes and a name server to map high-level, machine-independent process names to their low-level, machine-dependent names. A variant of this method of process addressing is used in DEMOSIMP and Charlotte. Although this method of process addressing supports the process migration facility, it suffers from two main drawbacks:
- The overload of locating a process may be large if the process has migrated several times during its lifetime.
- It may not be possible to locate a process if an intermediate node on which the process once resided during its lifetime is down.
Similar Reads
File Accessing Models in Distributed System
In Distributed File Systems (DFS), multiple machines are used to provide the file systemâs facility. Different file system utilize different conceptual models of a file. The two most usually involved standards for file modeling are structure and modifiability. File models in view of these standards
4 min read
Agreement Protocols in Distributed Systems
Agreement protocols in distributed systems ensure that multiple nodes or processes reach a consensus on a shared state or decision despite failures and network partitions. This introduction explores the fundamental concepts, challenges, and key protocols used to achieve reliable agreement in decentr
12 min read
Design Principles of Distributed File System
A distributed file system is a computer system that allows users to store and access data from multiple computers in a network. It is a way to share information between different computers and is used in data centers, corporate networks, and cloud computing. Despite their importance, the design of d
6 min read
Back Pressure in Distributed Systems
Back Pressure in Distributed Systems explains how back pressure mechanisms help manage data flow in complex computer systems that span multiple servers or devices. When too much data is sent too quickly, it can overwhelm parts of the system, causing delays or failures. Back pressure works like traff
12 min read
Design Principles of Security in Distributed System
Design Principles of Security in Distributed Systems explores essential strategies to safeguard data integrity, confidentiality, and availability across interconnected nodes. This article addresses the complexities and critical considerations for implementing robust security measures in distributed
11 min read
Paxos Algorithm in Distributed System
In Distributed Systems, the Paxos algorithm ensures consensus among distributed processes despite failures. It is crucial for achieving reliability and consistency in networks where components can unpredictably fail or become inaccessible. This article explains the Paxos algorithm, exploring its mec
9 min read
Process Migration in Distributed System
Process migration in distributed systems involves relocating a process from one node to another within a network. This technique optimizes resource use, balances load, and improves fault tolerance, enhancing overall system performance and reliability.Process Migration in Distributed SystemImportant
9 min read
Actor Model in Distributed Systems
The complexity of software systems continues to grow, with distributed systems becoming a cornerstone of modern computing. As these systems scale, traditional models of concurrency and data management often struggle to keep pace. The Actor Model offers a compelling approach to addressing these chall
7 min read
Distributed Messaging System | System Design
In our fast-paced world, how we share information matters more than ever. Old-school messaging setups sometimes struggle to keep up with today's tech demands. That's where distributed messaging systems step in. They're like a breath of fresh air, changing the game and making sure our messages get wh
8 min read
Process Management in Distributed System
Process management in distributed systems involves coordinating tasks across multiple interconnected nodes. This article explores how processes are managed, synchronized, and controlled to ensure efficiency, fault tolerance, and scalability in distributed computing environments.Process Management in
10 min read