source: doc/theses/colby_parsons_MMAth/text/actors.tex @ d964c39

ADTast-experimental
Last change on this file since d964c39 was 46ab782, checked in by caparson <caparson@…>, 17 months ago

partial commit to move theses framework to plg

  • Property mode set to 100644
File size: 2.2 KB
Line 
1% ======================================================================
2% ======================================================================
3\chapter{Concurrent Actors}\label{actors}
4% ======================================================================
5% ======================================================================
6
7% C_TODO: add citations
8Before discussing \CFA's actor system in detail, it is important to first describe the actor model, and the classic approach to implementing an actor system.
9
10\section{The Actor Model}
11The actor model is a paradigm of concurrent computation, where tasks are broken into units of work that are distributed to actors in the form of messages \cite{Hewitt73}. Actors execute asynchronously upon receiving a message and can modify their own state, make decisions, spawn more actors, and send messages to other actors. The actor model is an implicit model of concurrency. As such, one strength of the actor model is that it abstracts away many considerations that are needed in other paradigms of concurrent computation. Mutual exclusion, and locking are rarely relevant concepts to users of an actor model, as actors traditionally operate on local state.
12
13% C_TODO: make and insert a classic actor system diagram
14
15\section{Classic Actor System}
16An implementation of the actor model with a community of actors is called an actor system. Actor systems largely follow the actor model, but differ in some ways. While the definition of the actor model provides no restrictions on message ordering, actor systems tend to guarantee that messages sent from a given actor i to actor j will arrive at actor j in the order they were sent. Another way an actor system varies from the model is that actors are often allowed to access non-local state. When this occurs it can complicate the implementation as this will break any mutual exclusion guarantees given by accessing only local state.
17
18Actor systems \cite{} have often been implemented as an actor-centric system. As such they are constructed as a set of actors that are scheduled and run on some underlying threads. Each actor has their own mailbox for receiving messages. When they receive messages in their mailbox, actors are moved from idle to ready queues and then scheduled on a thread.
Note: See TracBrowser for help on using the repository browser.