next up previous contents
Next: Local Actor Garbage Collection Up: Actor Garbage Collection in Previous: Actor Garbage Collection in


The Live Unblocked Actor Principle

In actor-oriented programming languages, an actor must be able to access resources which are encapsulated in service actors. To access a resource, an actor requires a reference to the service actor which encapsulates it. This implies that actors keep persistent references to some special service actors -- such as the file system service and the standard output service. Furthermore, an actor can explicitly create references to public services. For instance, an actor can dynamically convert a string into a reference to communicate with a service actor, analogous to accessing a web service by a web browser using a URL.

Without program analysis techniques, the ability of an actor to access resources provided by an actor-oriented programming language implies explicit reference creation to access service actors. The ability to access local service actors (e.g. the standard output) and explicit reference creation to public service actors make the statement true: every actor has persistent references to root actors. This statement is important because it changes the meaning of actor GC, making actor GC similar to passive object GC. It leads to the live unblocked actor principle, which says every unblocked actor is live. Since each unblocked actor is: 1) an inverse acquaintance of the root actors and 2) defined as potentially live, it is live according to the definition of actor GC. With the live unblocked actor principle, every unblocked actor can be viewed as a root. Liveness of blocked actors depends on the transitive reachability from unblocked actors and root actors. If a blocked actor is transitively reachable from an unblocked actor or a root actor, it is defined as potentially live. With persistent root references, such potentially live, blocked actors are live because they are inverse acquaintances of some root actors.

Notice that the live unblocked actor principle may not be true if considering resource access restrictions. This implies that different security models may result in different sets of actor garbage, given the same actor system. At the programming language level, SALSA assumes the live unblocked actor principle.


next up previous contents
Next: Local Actor Garbage Collection Up: Actor Garbage Collection in Previous: Actor Garbage Collection in
Wei-Jen Wang
2007-11-28