Package frysk.proc

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

See:
          Description

Interface Summary
FindProc Interface to be used with Host.requestFindProc.
HostRefreshBuilder [Re-]build the information on the processes running on a host.
Observer Root Observer interface.
ProcBlockObserver An interface perform a one time check of all tasks while each is in the blocked state.
ProcTasksObserver An interface for clients to correctly know about all tasks of a Proc.
TaskAttachedObserverXXX Interface used to notify of a Task that has has been attached, and is about to resume execution in that state.
TaskObserver Observable events generated by a Task.
TaskObserver.Cloned Interface used to notify of Task clone events.
TaskObserver.Code Interface used to notify of a Task that the task's execution has reached a specific point in the code address space.
TaskObserver.Execed Interface used to notify of a Task exec (overlaying the process image with that of a new program).
TaskObserver.Forked Interface used to notify of Task forked (creating a new child process that contains one Task) events.
TaskObserver.Instruction Interface used to notify that a Task has executed a single instruction.
TaskObserver.Signaled Interface used to notify that a Task has a pending signal.
TaskObserver.Syscalls Interface used to notify of a Task either entering, or exiting a system call.
TaskObserver.Terminated Interface used to notify that Task has terminated (the task no longer exits).
TaskObserver.Terminating Interface used to notify of a Task that is terminating.
TaskObserver.Watch  
 

Class Summary
Action An Observer return this Action to indicate what should happen next.
Auxv  
Environ The environment vector.
Host A host machine.
Manager Manager of all operations within the proc model.
MemoryMap Represent a memory map as modelled in /proc/$$/maps.
Observable Observable element of the proc model.
Observation The binding between an Observer and its Observable.
Proc A UNIX Process, containing tasks, memory, ...
ProcBlockAction This class blocks all of the threads in a process and performs a given action defined by the method existingTask(Task task) on each task.
ProcEvent  
ProcEventObservable  
ProcTasksAction Provides a mechanism for tracing all clone events within a process.
Task  
TaskEvent  
 

Package frysk.proc Description

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 Tree

Process 1 forms the root of the process tree.

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

Task 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 Proc object) has the following states:

Process State Model

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.