This package implements frysk's process model of the target system.

## Overview

FRYSK's process model provides a process-level view of the target system. The model consists of hosts (`Host`), processes (`Proc`), and tasks (`Task`, a.k.a., threads). Frysk provides both behavioral and relational views of that model.

The following sections describe each of those views.

## Relational View: A Process Tree

Consistent with the underlying linux system, FRYSK's process model can be viewed as a collection of hosts, each host having a tree of processes:

Process 1 forms the root of the process tree.

The tasks, within a process, form a simple two level tree:

Methods for iterating over, and searching for, a host's process and tasks are provided.

## Behavioral View: Message Passing State Machines

The process model can also be viewed as a collection of independent state-machines. Each state-machine instance tracks the state of the corresponding host, process, or task.

For instance, a process(or {@link frysk.proc.Proc} object) has the following states:

The client manipulates a state-machine instance by sending it request messages. The state-machine, in turn, notifies interested client of state transitions that result from these requests, and other asynchronous events, using observers.

Finally, the individual state-machine uses internal messages to co-ordinate the systems overall state.