######################################## #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.