########################################
#Written by David Tam, 1999.           #
#davidkftam@netscape.net Copyright 2000#
########################################

Bachelor of Applied Science Fourth Year Design Project
------------------------------------------------------
(replaces thesis)

    I designed and implemented a software-based simulation engine to predict
the position of model trains on model train tracks. This simulation engine was
a component of a fourth year computer engineering design project to build
physical and virtual (software-based) model train sets that can be observed and
controlled from the world wide web [1]. The predictions formed the basis for
representing train movement and performing train collision detection and
avoidance.

    The design project requirements included writing a technical proposal,
interim report, final report, delivering a presentation, and participating in a
design exhibition. Due to a large design team, I also performed management
duties such as coordinating tasks, scheduling and chairing meetings,
facilitating communication, and resolving technical issues between various
subgroups.



[1] http://pcdesign4.eecg.utoronto.ca


--------------------------------------------------------------------------------


1. Outline of proposed research
   ----------------------------

    I propose to conduct research in the area of operating systems and computer
architecture with the goal of improving the performance of multiprocessor
computers. These types of computers are becoming increasingly economical and
popular. Yet, performance has not scaled linearly with the number of processors
used. One reason for this behaviour is the lack of technological advances in
operating systems designed for multiprocessors. Most of these operating systems
were originally intended for single processor computers and were retrofitted to
accommodate multiprocessor computers as an after-thought. Such a solution leads
to inefficiencies since it fails to fully account for the behaviour of
multiprocessors. Designing an operating system from the ground up for
multiprocessors would address many of the shortcomings of simply retrofitting
and improve performance dramatically. However, this task is a relatively new
challenge to industry and academia. Further research is required to understand
the behaviour of various aspects of the operating system in a multiprocessor
environment. The areas within the operating system that can be examined for
performance improvements include input/output subsystems, shared memory
architectures, communication protocols and mechanisms, and scheduling
algorithms.

    My research will focus on one of these specific areas and lead to a
master's thesis. I will decide upon the specific area by April 1, 2000, which
is the deadline for thesis proposal submissions as specified by my department.
My specific objectives are to find a particular aspect within operating systems
that has potential for optimization and overall performance improvement,
observe, analyze, theorize, and improve upon its design. This particular
component would be redesigned and re-implemented. Testing of the new design
will be conducted on the Tornado software platform and NUMAchine hardware
platform. Tornado is an experimental operating system while NUMAchine is an
experimental multiprocessor computer both built at the University of Toronto.

    The stages of my research include the following. To meet the requirements
for a master's degree, three graduate level courses will be taken from
September 1, 1999 to December 31, 1999. Two additional courses will be taken
from January 1, 2000 to April 30, 2000. These courses will allow me to gain an
advanced background in computer software, hardware, architecture, and theory.
This background will allow me to conduct research and development in an
efficient and effective manner. As mentioned previously, a thesis proposal must
be submitted by April 1, 2000. From May 1, 2000 to September 1, 2000 the
following activities will take place. Preliminary research in the chosen area
will be conducted, which will include obtaining a thorough background on past
research done in the area and analyzing past results. Subsequently, advanced
research will be conducted, which will include designing and developing
improvements, verifying these improvements using analytical techniques, and
implementing the solution on the Tornado operating system and NUMAchine
multiprocessor. From September 1, 2000 to December 31, 2000 implementation will
continue, and experimental verification and validation of performance will be
conducted. Writing of the master's thesis will occur during the period of
January 1, 2001 to April 30, 2001. In May 2001, an oral presentation of the
thesis will be delivered to my department.

    My research will be conducted under the broader goals of the operating
systems research group at the University of Toronto. The goals of the research
group are to improve and understand the performance aspects of multiprocessor
computers through operating systems design. I will be researching one
particular aspect and contributing knowledge that will lead the group closer to
achieving these goals.



6. Applicant's statement
   ---------------------

a) Research experience

    I have gained valuable experience from my fourth year computer engineering
design project, which involved building a web-enabled automated train system.
At the University of Toronto, the traditional engineering undergraduate thesis
was replaced by a mandatory design project. I have gained experience in
conducting independent investigation, working collaboratively, designing and
developing complex software systems, performing management and coordination
functions, and developing communication skills. Independent investigation
included designing and developing a simulation engine for the train system.
Collaborative experience included high-level design of the simulation software,
integration of the entire software system, and management and coordination
duties. These experiences will be valuable in performing effective and
efficient research and development.


b) Relevant activities

    I participate in a weekly operating systems reading group meeting where
recent journal articles are analyzed, discussed, and debated in an open forum.
Occasionally, I act as the moderator in these meetings. These meetings give me
exposure to current research in the field of operating systems and assist in
developing analytical and critical thought processes. I participate in a weekly
project development meeting where weekly progress on the Tornado operating
system development is reviewed and discussed. I perform teaching assistantship
duties on a weekly basis for an undergraduate engineering laboratory session.
My duties include directing students in the laboratory, evaluating student
performance, grading laboratory preparation work, and assisting students who
have difficulties.


c) Research Career

    My career goals are to design, develop, and improve operating systems for
various hardware platforms. These platforms range from uniprocessor personal
computers, to mid-sized multiprocessor servers, to large supercomputers
containing hundreds of processors. I am interested in both software and
hardware realms of the computer field. I find that by pursuing research and
development of operating systems, I am able to work at the leading-edge and at
the boundary between these two worlds.

    Source: geocities.com/siliconvalley/campus/9640/Grad

               ( geocities.com/siliconvalley/campus/9640)                   ( geocities.com/siliconvalley/campus)                   ( geocities.com/siliconvalley)