PATHFINDER

A UNIX Concurrent Communications Process Monitor

Introduction

Course Information

Group Information

Project Description

Development Environment

Developmental Stages

Final Product

References

Future Improvements

Overall Project Difficulties

A Few Words from the Group

User's Guide

Feedback

User Requirements

Currently, there are two (2) user requirements:
  1. The program(s) to be analyzed must contain at least two processes.
  2. The program(s) should already be compiled and error free.

At this stage of the project, PATHFINDER is a user-friendly tool which looks like this:

The user will have the following capabilies:

  • START - start the representation
  • SOURCE CODE - view source code [file(s) entered]
  • PREVIOUS - view previous executed LOC
  • NEXT - view next executed LOC
  • EXIT
The illustration of the different processes will be color coded (kernel, parent process, child process.
When/if a child process transforms into a parent process, that process will be illustrated with
thicker line. The arrows in the Graphical window represent messages sent. This arrow will have its
message id (msgid) displayed next to it. In addition, the time of execution for each event will be
represented. It will be calculated by obtaining the start and end time of each execution and finding
the difference. The unit of time will depend on the unit in which IRIX 6.2 uses to represent time
(ie. nanoseconds). However, the unit of time can be changed to our liking.


Behind The Scenes...

The key elements to PATHFINDER will be its EVENT LOG and its associated WRAPPER
FUNCTIONS
. All the information displayed in the TEXT and GRAPHICS windows will be
obtained from the EVENT LOG, which will be a linked list of all the pertinent data in the order
of execution (FIFO). WRAPPER FUNCIONS enhance system calls and add funcionality
determined by the developer and renames the system call. Thus, the WRAPPER FUNCTION
for the system call fork() can be named _fork() and for the purposes of PATHFINDER,
can enhance it by also storing the information needed for the EVENT LOG (ie process id, msgid,
queue info., and start and end of execution.

The algorithm of PATHFINDER is as follows:

  • Start
  • Accept input program(s)
  • Organize and Compile make_file
  • Execute entered program(s)
  • After each LOC executes, write event to EVENT LOG
  • Once execution completes, display appropriate message
  • At click of START button, begin representation of execution
  • Follow user issued commands

The execution of PATHFINDER will follow the following steps:

  1. Welcome Dialog Box
  2. Prompt for user program(s) to be analyzed
  3. Include Wrapper Library functions and recompile via make_file
  4. Start execution of make_file
  5. Create Event Log based on executing LOC (behind the scenes)
  6. Instructional dialog box appears indicating completion of execution and how to start
  7. PATHFINDER representation begins
  8. User issued commands (buttons) resume control

TOP