proving ESL: The Actor Model of Concurrency

Abstract

Actor Model of computation is a mathematical theory of computations that exist to solve the problem of concurrency in distributed systems. The actor serves as a process and communicates with other actors via asynchronous message passing. The actor models can be incorporated into any programing language either sequential or functional using CPS transform. Erlang is the most popular actor model and it has a separate toolkit(AKKA) for the actor model. Overtime, industry’s and technologies such as Twitter, Facebook and Microsoft have leverage on the actor model. Trending technologies like IOT and cloud computing have included the actor model to their technologies. With all these growths, the actor model has its own downside such as lack of inheritance and polymorphism. ESL (actor-based language) is in a growth stage to solve these challenges. System development methodology will be used to advance the ESL technology. 

 

1)   Introduction: Actor Model

“One actor is no actor”. The actor model comes as a system where everything is an actor. The actors communicate by sending an asynchronous message to each other. 

The actor model is a mathematical theory of computation that treats “Actors” as the universal primitives of concurrent digital computation (Hewitt,2010). The actor model was invented by Carl Hewitt in 1973.

Dissimilar to preceding models of computation, Actor model was motivated by physical law. Programming languages like Lisp, Smalltalk, ideas for Petri Nets, capability-based systems and packet switching also motivated the invention of the model.

The actor model had been used as a tool to aid the understanding of concurrency and conceptual implications of concurrent systems.  

The emergence of massive concurrency through client-cloud computing and many-core computer architectures has galvanized interest in the Actor model (Hewitt, 2009).

Before the invention of the actor model, Threads were used for concurrency. Threads faced challenges such as lost update; where different process tries to change the value of a variable at the same time and the use of a lock to solve this problem also created another problem called deadlock; happens when two process tries to obtain two locks at the same time. An algorithm representation is shown below.

Lost Update

Process 1

Process 2

a = acc.get()

a = a + 100

b = acc.get()

b = b + 50

acc.set(b)

acc.set(a)

Deadlock

Process 1

Process 2

lock(A)

lock(B)

lock(B)

lock(A)

The actor model provides a solution to the above challenges.

2) The Actor model

2.1) Fundamental concept

The actor model is a light-weight entity that has a state, thread of control, mailbox and a supervisor strategy. It is inherently concurrent.

 

2.1.1) The actor model of computation involves

  • Autonomous concurrent actor: They are inherently concurrent. Programming languages like Java that uses threads for currency, tends to separate the model of concurrency with the model of the object (Agha, 2013). Actor model unifies these two notion.
  • No shared state: To avoid the issue of a data race, race condition and sharing of a variable, the actor model does not implement the sharing of state.
  • Asynchronous message passing: primitively, actors communicate asynchronously. They exchange and share information and it aids in synchronization.

2.1.2) Standard actor semantics

  • Encapsulation:  The state of the actor model is isolated. The actor is not directly exposed to the environment. Actors do not modify the state of another actor directly. This can only be done indirectly through message passing (Waldron and Nash, 2016)
  • Fairness: If an actor sends a message, and the actor receiving the message is not permanently disabled then eventually the message will be received (Agha, 2013).
  • Location Transparency: You don’t have to know which memory is processing a certain command. The systems decide which commands needs to be executed by a certain core.
  • Mobility: Enhancement of Location transparency.  Actors can move around and the underlying system can take care of where actors are.

2.1.3) Actor anatomy

As shown in the figure below, an actor consists of a mailbox where messages are stored/queue. A thread of control that gets messages from the mailbox for processing. And a state that changes when processing a message.

Actor = Encapsulated state + behaviour + thread of control + mailbox


2.1.4) Messaging

Place your order
(550 words)

Approximate price: $22

Calculate the price of your order

550 words
We'll send you the first draft for approval by September 11, 2018 at 10:52 AM
Total price:
$26
The price is based on these factors:
Academic level
Number of pages
Urgency
Basic features
  • Free title page and bibliography
  • Unlimited revisions
  • Plagiarism-free guarantee
  • Money-back guarantee
  • 24/7 support
On-demand options
  • Writer’s samples
  • Part-by-part delivery
  • Overnight delivery
  • Copies of used sources
  • Expert Proofreading
Paper format
  • 275 words per page
  • 12 pt Arial/Times New Roman
  • Double line spacing
  • Any citation style (APA, MLA, Chicago/Turabian, Harvard)

Our Guarantees

Money-back Guarantee

You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.

Read more

Zero-plagiarism Guarantee

Each paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.

Read more

Free-revision Policy

Thanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.

Read more

Privacy Policy

Your email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.

Read more

Fair-cooperation Guarantee

By sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.

Read more