Master's Papers and Projects
Permanent URI for this collection
Browse
Browsing Master's Papers and Projects by Department "Computer Science"
Results Per Page
Sort Options
- ACT++ 3.0: implementation of the actor model using POSIX threadsKhare, Arjun (Virginia Tech, 1994-07-15)The actor model provides a framework for writing concurrent programs. ACT ++ is an implementation of the actor model in C++, allowing concurrent programs to be written in an object-oriented style. In ACT++, each actor is an object possessing one or more independent threads of control. Version 2.0 of ACT ++ uses the PRESTO threads package. As PRESTO threads are available only for certain architectures and operating systems, its use does not meet one of the goals of ACT ++, namely portability among a variety of architectures. To facilitate portability, ACT++ 3.0 is written using the IEEE POSIX 1003.4a standard for threads (Pthreads). This project deals with the implementation of ACT++ 3.0, the testing of the implementation, and its performance.
- Actor systems platform design and implementation of the actor paradigm in a distributed object-oriented environmentJoshi, Nandan (Virginia Tech, 1993-08-05)This project was undertaken as part of an effort to explore the design of object -oriented systems that are distributed, concurrent, real-time and/or embedded in nature. This work seeks to integrate the concurrency features of the actor model in a distributed, object oriented environment, ESP. The integrated system, called the Actor Systems Platform (ASP), provides a platform for designing concurrent, distributed applications. The actor model provides a mechanism for expressing the inherent concurrency in an application. The concurrency in the application can be exploited by the distributed features available in ESP. The actor abstraction in ASP is provided by a application-level class hierarchy in ESP. The message passing semantics of the actor model are implemented by using special operator overloading in C++. Cboxes are implemented to provide a synchronization mechanism and a means of returning replies. In a concurrent system, simultaneous execution of an object's methods can cause its state to be inconsistent. This is prevented by providing a method locking mechanism using behavior sets. While integrating the concurrency features of the actor model in an object-oriented environment, differences were encountered in determining the invocation semantics of the actor model and those of inherited methods. The problem is investigated and a taxonomy of solutions is presented.
- An analysis of database design transformations as applied to the Advanced Education Database SystemQuarles, April Michelle (Virginia Tech, 1993)This paper presents an analysis of a database design using three different database methodologies. The database system used as a case study for analysis is the Advanced Education Program Database System. This system is designed using the Formed-Based, Relational, and Object-Oriented approaches to database design. Once these different logical structural designs have been completed, the report presents a series of transformations that can occur between the different design methodologies. Several examples of the transformation techniques are provided to show the variances that exist in the converted designs. A summarization is then made as to the feasibility of using the various transformation techniques that exist.
- Analysis of digital audio samples for the extraction of musical informationMcCoy, Charles (Virginia Tech, 1995)This project led to the development of a Macintosh application that analyzes digital audio samples and generates MIDI data. The program, compiled with THINK C++ 6.0, uses standard Macintosh 'snd_' resources as input. The output is written to a Standard MIDI File. The Macintosh application derived from this project behaves like any standard Macintosh application with windows, menus, and an "about box". The complete source code for the application is included in this report. The Fast Fourier Transform (FFT) was considered for the transformation from the time domain to the frequency domain. This did not prove to be the most appropriate method for this application. A new method was developed that looks at the waveform and matches repetitions of the waveform to get the base frequency for the sound. The new method does not suffer from the problems involved in using the FFT. It can be used for the detection of a base frequency in a sample that has a waveform that repeats regularly and does not contain much noise. This is much faster to compute and yields a much more accurate frequency measurement as well as greater timing accuracy.
- Chitra93: a Tool to Analyze System Behavior by Visualizing and Modeling Ensembles of TracesLee, Timothy J. (Virginia Tech, 1994-04-15)A key cause of poor system performance is inherently due to the lack of understanding of system behavior. Performance problems are especially apparent in parallel and distributed programs, for which expected speedup is difficult to achieve. Theoretical models and trace visualization tools are suitable for extracting insights into the behavior of a system. Theoretical models available today work for certain types of systems and require possibly unrealistic assumptions, and hence are not considered here. Existing trace visualization tools have yielded new insights into the behavior of the sequential, parallel, and distributed programs. However, they have two inherent limitations: (1) Each tool visualizes only one execution of a program. (This is dangerous when analyzing concurrent programs, which are prone to non-deterministic behavior.) (2) The applicable domain of a visualization tool will be limited unless the tool incorporates a large variety of methods to visually display data. This is because a single display method may yield new insights into only certain systems. In addition, finding the "right" display that can provide the needed insights is a potentially time-consuming process. This project carries through the previous work-CHITRA92. This project addresses these limitations by providing the following four capabilities to analyze traces: (1) CHITRA93 analyzes a set (or ensemble) of traces to obtain the typical behavior of a system. (2) CHITRA93 incorporates three transforms to simplify ensembles by reducing either the state space size or the interval over which time is defined in the ensemble. (3) CHITRA93 builds compact summary of the dynamic behavior (or model) of a system from an ensemble. (4) CHITRA93, to avoid building models that poorly fit an ensemble, provides a suite of methods to partition ensembles into mutually exclusive, exhaustive, and homogeneous subsets so that each subset displays "similar" behavior. These methods include several visual techniques and statistical methods. Finally, a portion of the project seeks to stabilize and to produce a correct version of CHITRA.
- Class hierarchy design for space time problemsChopra, Sanjay (Virginia Tech, 1995-07-06)The purpose of the project is to design a class hierarchy that will aid in the development of simulations for certain space time problems. The class hierarchy and the problem domain to which it applies are illustrated by considering simulations of three representative problems: a pool game; a collision detection system for robot arms; an automated highway system. The emphasis in the simulations is on the class hierarchy. The class hierarchy contains base classes to model objects, space, time and interactions among objects. These classes could be applied to other similar problems in the problem domain. For example the class objects help to model various objects like cars, pool balls, robots, trains, birds etc. Class space allows the user to subdivide the problem space into smaller dynamic sub-spaces. The user can define rules to decompose the space into 'n’ smaller spaces when there are more than 'x' objects in the space.
- Class management in a distributed actor systemVykunta, Venkateswara Rao (Virginia Tech, 1994)The goal of this project is to develop part of an environment to allow the creation of distributed applications in ACT++. ACT++ is a distributed, object-based programming system in which concurrent object-oriented programs can be written in C++. Programs in ACT++ consist of a collection of active objects called actors. This project is concerned only with the problems related to the creation, destruction, and the invocations of the methods of an object located through a directory agent on a remote machine. The specific services developed in the project allow the dynamic loading and unloading of object code for a class when it is not available in memory, static loading of object code on machines that do not support dynamic linking, and the location of classes and their instances through a directory agent. Other related projects concern the development of a communication infrastructure that configures a collection of heterogeneous machines for use in the distributed version of ACT++ and the use of lightweight threads. The solution functionally was tested on several simple examples.
- Communication infratructure for a distibuted actor systemGandhi, Rajiv (Virginia Tech, 1994-06-15)The goal of this project was to develop part of the environment that would allow the creation of distributed applications in ACT++. ACT++ is a programming framework in which concurrent object-oriented programs can be written in C++. The concurrent objects in ACT ++ are called actors. Specifically, the project is concerned with the development of a communication infrastructure that configures a collection of heterogeneous machines for use in the distributed version of ACT++. A utility, "ActorControl," was implemented through which the user can specify how ACT ++ is to run on each of the nodes by means of a configuration file. The "ActorControl" utility starts a process on each of the nodes specified in the configuration file and establishes TCP socket based connections among all of them. To simplify the communication between the different nodes, a special type of actor called an interface actor is used. Instead of issuing communication requests directly to sockets, a request is directed to an interface actor that is responsible for that socket. A related project is concerned with the problems of creation, destruction and invocation of the methods on the remote machine. Thus the project consists of two parts. The first part is the implementation of the "Actor Control" utility that establishes socket connections among all the nodes participating in the distributed ACT ++. The second part is the implementation of the interface actors that are present at each end of the connection between any pair of machines.
- Computerized simulations for geography instruction: sense of placeHines, David T. (Virginia Tech, 1995-05-05)
Sense of Place is a Project GeoSim educational software module focusing on U.S. states and counties. A comprehensive statistical database is combined with a set of simple visualization techniques to allow geography students to gain an understanding of the characteristics of states and counties. Students can examine data for anyone of the statistical variables in the database. In addition, students can create me tries consisting of target values for several variables, and rate counties or states by how closely their data match the targets. Symbolic mapping is used to illustrate spatial characteristics of a state or county, such as its size, shape, and location, as well as regional patterns among different states and counties. Graphing is used to illustrate basic concepts of data distributions and to depict the distributions of specific variables. A spreadsheet is used to view the multivariate data sets created by user metrics. These visualization techniques and the graphical user interface tools required to control them are incorporated into interchangeable "views". This approach allows additional views to be added to Sense of Place in the future.
- Computerized simulations for introductory geography instruction: international populationKriss, Sheryl Kay (Virginia Tech, 1991-05-05)Few introductory geography courses offer laboratory sessions. Computer-aided instruction (CAl) techniques offer good means of satisfying the need for laboratory instruction in geography, by providing graphical manipulation of representations of geographic processes. Traditional classroom approaches are unable to provide such graphical manipulation. This paper focuses on the design and implementation of the International Population module, one of six computerized laboratory modules being developed to support introductory geography instruction as proposed for project GeoSim. This module illustrates the effects of age distribution, as well as birth and death rates, on population growth for selected countries from around the world. The student is presented with key themes involved in population dynamics through assorted graphs and figures. Population projections for each country can be computed, and students may modify birth and death rates to investigate resulting effects on projected populations. The module uses Macintosh Toolbox routines to support a highly interactive window-based, menu-driven graphical interface which runs under the Macintosh II System.
- Computerized simulations for introductory geography instruction: mental mappingMiranda, Vincent F. (Virginia Tech, 1991)The study of geography is an important component of a university education. While computer-aided instruction (CAI) techniques offer good means of satisfying the rapidly growing demand for instruction in geography, traditional approaches to tutor construction appear to be of little use in meeting the special requirements of an application based on complex graphical manipulation. This project focuses on the design and implementation of a Mental Mapping Module which explores the mental maps of students by asking them to locate various places in the world by pointing at positions on an outline map drawn on the computer screen. The computer then warps country borders in relation to errors in placement to show the student’s “mental map” of that country. The module also gathers data from students on their perceptions of place characteristics such as population size, climate and cost of housing. The interactive graphics design approach for the module is implemented using the X Window System, which allows a “point-and-click” interface with graphical and textual cues to initiate operations. The Mental Mapping Module forms one of the six computerized laboratory modules applicable to several introductory geography courses that have been proposed in project GeoSim: CAI software for the teaching of introductory geography.
- Computerized simulations for introductory geography instruction: orienteeringThiruvengadam, Nirupama (Virginia Tech, 1993)Computer-aided education (CAE) techniques offer good means of satisfying the need for laboratory instruction in geography. These techniques provide graphical manipulation of representations of geographical processes in a manner that stresses dynamic processes over static processes. This project focuses on the design and development of the Orienteering module. This is a surrogate travel program which shows the view one sees while moving through a mixed woods and fields area. This module uses Intel’s Digital Video Interactive (DVI) Technology to enhance the orienteering experience by providing a simulation of forward motion and a simulation of panoramic, seamless view at every location of the terrain. The student uses a compass presented on the screen to navigate across the terrain. The Orienteering module is one of the six computerized laboratory modules of project GeoSim, which is being developed to support introductory geography instruction.
- A consignment library of reusable software components for use over the World-Wide WebHicklin, R. Austin (Virginia Tech, 1995-05-24)This research project report discusses the development of a commercial, consignment-based library (a) of reusable software components to be accessed using the World-Wide Web. The research project consists of two parts: the development of a prototype system that provides interface and information retrieval functionality for such a system, and an analysis of the technical and business issues involved in making the library operational as a commercial entity. The prototype system uses a hypertext browser and a query-based search mechanism to access descriptions of reusable software components; these descriptions are structured by a variation of a faceted classification system. The issues addressed include the classification and description of reusable software components; methods of retrieval, especially library browsing methods based on component classification; and analysis of incentives for reuse.
- Crop rotation planning using simulated annealingShakoor, Arif (Virginia Tech, 1995)The goal of this project is to explore the potential of simulated annealing in solving a combinatorial optimization problem in agriculture. The specific problem addressed in this project is the generation of optimal crop rotation plans for farms. The whole-farm planning problem is a practical challenge faced by the farmers and environmental and federal agencies. The goal of farm planning is to come up with crop rotation plans that are environmentally safe and economically feasible. The farmers are encouraged, and in some cases mandated, to follow National Resource Conservation Services (NRCS) guidelines in cropping and tillage practices in order to reduce the loss of top-soil due to water erosion, reduce the risk of pesticide and nutrient leaching, and reduce surface runoff risk. The conflicting nature of these goals with the farmers’ goals makes this a difficult problem and neither the agencies nor the farmers have the necessary tools to generate plans that satisfy the farmers’ need while adhering to environmental restrictions. This project uses simulated annealing, a method derived from statistical mechanics, to find acceptable plans for farms with a wide variety of local and global constraints. We define the farm planning problem, lay the framework of the annealing algorithm, use the annealing algorithm to produce plans for a specific farm, compare the results with those obtained by another Al-based heuristic technique, and determine the plan’s feasibility in actual farming practice. The framework upon which simulated annealing is based is very simple and most optimization problems can be formulated to fit this framework quite easily. Results obtained in this project are comparable with those obtained by another Al-based heuristic technique. Increasing the search space decreased the speed of convergence somewhat but for problems like farm planning where time is not extremely crucial, annealing seems to be a viable optimization tool.
- A data analysis software tool for the visual simulation environmentTuglu, Ali (Virginia Tech, 1995)The objective of the research described herein is to develop a prototype data analysis software tool integrated within the Visual Simulation Environment (VSE). The VSE is an integrated set of software tools that provide computer-aided assistance throughout the development life cycle of visual discrete-event simulation models. Simulation input and output data analyses are commonly needed in simulation studies. A software tool performing such data analysis is required within the VSE to provide automated support for input data modeling and output data analysis phases of the model development life cycle. The VSE DataAnalyzer provides general statistics. histograms, confidence intervals, and randomness tests for the data sets. It can also create C modules for generating random variates based on a collected set of data. Furthermore, the VSE DataAnalyzer possesses the basic file management, editing, printing, and formatting functionalities as well as a complete help feature. It has been used in a senior-level Simulation and Modeling course, and the feedback from the students has been positive. New functionalities can easily be added to the VSE DataAnalyzer due to its object-oriented software structure. The VSE DataAnalyzer is yet another software tool created to provide more comprehensive automated support throughout the visual simulation model development.
- Database manager for EnvisionDalal, Kaushal R. (Virginia Tech, 1994-08-05)As multimedia systems and digital libraries increase in popularity, it becomes increasingly important to develop systems able to store and retrieve multiple formats of data, provide an intuitive, usable interface and allow concurrent execution of multiple sessions. This project concentrates on the issues of database management - data loading and retrieval of data - for the Envision System. A version of the database manager supporting approximately 100,000 records is implemented.
- Design and construction of a prototype general purpose syntax-aware text editorFaber, Joseph Lewis (Virginia Tech, 1991-05-05)A comparison is made between traditional text editors, syntax-directed editors and syntax-aware editors. The design for a prototype general purpose syntax-aware editor is presented. This editor utilizes a user-written language specification to continuously parse the text buffer. Errors are indicated to the user non-intrusively by modifying the display color of the text. Error messages are presented to the user as the cursor is placed over portions of the text which are in error. A description of the implementation of the editor, and a critique of its usefulness is included.
- Design and implementation of a historical database for the Blacksburg Electronic VillageSchmidt, Kenneth William (Virginia Tech, 1996)This research project report discusses the development of a dynamic, self-documenting, historical database (HistoryBase) of the Blacksburg Electronic Village (BEV). The research project consists of two parts, the development of a system to be accessed and extended via the World-Wide Web, and a brief analysis of the issues faced during the design and implementation of the system.
- Detection of maximal repeating patterns and limited length repeating patternsMartin, David J. (Virginia Tech, 1995)Given a string of characters, that string may contain patterns of characters that occur more than once. These are Repeating Patterns. A Maximal Repeating Pattern (MRP) is a repeating pattern that is not a substring of a longer repeating pattern or occurs at least once where it is not a substring of another repeating pattern. This report rigorously addresses the computation of MRPs and proposes two new categories of repeating patterns whose computational bounds are more attractive for use in human-computer interaction where the computational complexity is a significant issue. A modified trie is used to find Maximal Repeating Patterns in a given text string. The advantages in time complexity and memory usage gained by limiting the length of MRPs and the usefulness of limiting the spatial context of repeating patterns when processing large data sets are explored.
- The development of a CHAID-based model for CHITRA93Cadiz, Horacio T. (Virginia Tech, 1994-02-14)The complexity of the behavior of parallel and distributed programs is the major reason for the difficulties in the analysis and diagnosis of their performance. Complex systems such as these have frequently been studied using models as abstractions of such systems. By capturing only the details of the system which are considered essential, a model is a replica of the complex system which is simpler and easier to understand than the real system. CHITRA92, the second generation of the performance analysis tool CHITRA, builds a continuous time semi-Markov chain to model program behavior. However, this model is limited to representing relationships between states which are only immediate predecessors or successors of each other. This project introduces and implements a new empirical model of the behavior of software programs which is able to represent dependencies between nonsequential program states. The implementation combines deterministic and probabilistic modeling and is based on the Chi Automatic Interaction Detection (CHAID) statistical technique designed for investigating categorical data. The empirical model, constructed by analyzing an ensemble of program execution sequences, is stochastic and non-Markovian in the form of an N -step Transition Matrix. The algorithm is integrated as one of the modeling subsystems of CHITRA93, the third generation of CHITRA.
- «
- 1 (current)
- 2
- 3
- »