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).
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.