Saturday, August 6, 2022

  

                                                     Concurrent and Distributed Modeling

 

This post will cover thoughts and ideas regarding the study of concurrent and distributed technology. It will describe the presented materials and concepts.

Part 1:  Dual-Phase – Total Order Multicasting Diagram

Below is a two-phase multicasting diagram of total order that displays the message delivery sequence where node S sends a message named m1 to group members G1 and G2, and node S sends message m2 to G2 and G1, respectively. 

      Post application layer messaging:

1)      Message multicast is committed and ordered by the timestamp of commitment (B. I. Sandén, 2011b).

      Phase 1: All messages originate from S1 and get an ack with a delivery time suggested by either G1 or G2

      Phase 2: Messages committed with a commit time agreement

1)      That commit time > delivery time to ensure the integrity of order regarding all members (B. I. Sandén, 2011b).
 

      The diagram depicts the local decision to deliver a message prior to delivery to the application layer and where the decision lies concerning the associated group member.

1)      The diagram also shows when a message is delivered and is more significant than all pending messages needing delivery (B. I. Sandén, 2011b).


 

Part 2:  State diagram of a voting algorithm (Maekawa's)

Fig.2 diagram below illustrates the scenario where the node represented by "this" will execute a vote from received requests invoked from other nodes showing transitions and associated actions (Sanden, 1989).




 Distributed mutual exclusion diagram and essay

 

Threads and Safe Object:  Interaction

            Threading, especially multi-threading, was covered quite well in this course. The concepts gained from the course flow were detailed and broad when studying thread synchronization and the protocols required to access shared resources. In addition, a cornerstone of the study was to understand that a safe object is a catalyst to alleviate multiple thread intrusions of critical sections using messaging communication that detects thread intrusions (B. I. Sandén, 2011a).

            The most value I attained from the course study regarding multi-threading was the use of Semaphores and how they employ to acquire and release methods. I thought I was reasonably well versed in threading. However, I expanded on knowledge by studying why safe objects are crucial for concurrency (B. I. Sandén, 2009). Students are also accustomed to creating applications that employ atomic threaded functions, which affects performance under multi-threaded requirements. The study of safe objects ensures students are aware and can identify when multiple threads access a shared object. This particular section of the study covered several different approaches to safe objects. I have listed a few below.

·         Semaphore: As mentioned previously, it manages access control through acquiring and releasing resources.

·         Test and Set: Prevents crucial access to critical sections in multi-threaded operations, typically using 1 or 0 as the control mechanism

·         Reentrant (Locks): Simply put, it allows multiple thread locking for safe resource access

·         Preemptive Concurrency: This safety-based protocol allows multiple threads to swap in priority, alleviating overloading and increasing performance.

·         Priority Inversion: Ensures threads with the highest priority access a critical section or shared resource.

 

Entity Life Modeling:  Event Sequence Models, Deadlocks

            To summarize, this course regarding event sequencing models first requires to explain how the event sequence model is used to address specific issues. Since rules and models

had thread-event correlation, this course was instrumental in teaching the student the core meaning of the event sequencing model – a sight picture (B. Sandén, 1995).

            Event-sequencing starts with learning multi-threaded architecture and how event sequencing models depict a separate flow of execution. This course illustrated applicable concept models to show a multi-threaded system's states, events, and actions.

            Regarding research in this study, the course focused on exploring and explaining the sequential nature of event concepts with granular insights into the expectation of event occurrences and how they relate sequentially. In this course, we learned the concept of event sequencing and logically modeling events sequence to solve a common problem domain – deadlocks (B. Sandén, 1995).

            The course covered deadlocks in detail, especially the concept of identifying circularity in an event sequence. The course's valuable platform provided information about wait-chain diagrams depicting circular phenomenons that lead to various deadlocks and their consequences. The important vantage point during the identification of circularity started with understanding how many nodes were required to create deadlocks.  

Digital Clocks:  Distributed Mutual Exclusion Communication

            The course study covering Distributed Mutual exclusion provided a contrast between multi-threaded architecture and the relation to resource sharing. The core instruction aimed to provide insights into distributed concurrency concepts about multiple processing of simultaneous access to critical sections (B. I. Sandén, 2011b).

            One of the most exciting aspects of this study was using Digital Clocks and how it systemically manages devices in a distributed network. Specifically, the purposeful direction of the study detailed the processing of events and their referential integrity with time duration. The course paved the way for helpful knowledge that provided a conceptual understanding of order management of mutual processes within a logical period (Zhou, Li, Wang, Xue, & Feng, 2018).

            It was essential to understand Lamport's Clock Algorithm and its interactions with different aspects of   Distributed Mutual Exclusion. Conceptually. The core concepts were the fundamental rules that allowed dissection into the algorithm and how it leverages protocols to manage access to synchronization for distributed systems in visual acuity (Zhou et al., 2018). It is easy to take away a clear definition from this study of different hypotheses from the acquisition and release of locks and the release of critical sections.

            As a practitioner in the field who aims to use the knowledge of discovery from this course, I will take a different approach toward distributed RFID platforms, concurrency, and mutual exclusion of devices in a network landscape in the RFID field. Further analysis and discovery of how RFID devices communicate with referential co-located devices in the realm of concurrency are in the future.

Conclusion:  Concurrency, Distributed Systems, and Real-World

            Overall, the course was exciting. My current position as an RFID and IoT company owner allows the utilization of what I have learned as a practitioner in the field (Shull, 2015). Some of the tasks that I have accomplished in laboratories aligned perfectly with the course flow, direction, and goals. This post provided insights into concurrency that will have a genuine, significant impact in the field of distributed systems..

. 

References  

Sanden, B. (1989). An entity-life modeling approach to the design of concurrent software. Communications of the ACM, 32(3), 330-343.

 

Sandén, B. (1995). Resource sharing deadlock prevention. In Tutorial proceedings on TRI-Ada'91: Ada's role in global markets: solutions for a complex changing world (pp. 70-103).

 

Sandén, B. I. (2009). Multi-threading. Colorado Technical University, Colorado Springs.

 

Sandén, B. I. (2011a). Design of multi-threaded software: The entity-life modeling approach: John Wiley & Sons.

 

Sandén, B. I. (2011b). Simultaneous Exclusive Access to Multiple Resources.

 

Shull, C. L. (2015). Design-first distributed real-time RFID tracking system. In: Google Patents.

 

Zhou, Q., Li, L., Wang, L., Xue, J., & Feng, X. (2018). May-happen-in-parallel analysis with static vector clocks. Paper presented at the Proceedings of the 2018 International Symposium on Code Generation and Optimization.

 

No comments:

Post a Comment

                                                          Concurrent and Distributed Modeling   This post will cover thoughts and idea...