Topic 1
Timing is a major issue with the implementation of a distributed system.
Each computer in a distributed system must have a concept of time relative
to the other computers in the system and an efficient means to convey this
time to the system in order to provide synchronization between the processes.
There are many factors involved with maintaining time consistency in a
distributed system. Investigate the implementation of timing throughout a
distributed system and the various protocols available to implement
synchronizing. This could include researching the timing behavior
of commonly used programming languages and system. Because timing is very
critical with real-time systems, the project could naturally include a
section on the tools and software available for implementing real-time
applications and their approach to timing.
Topic 2
Distributed computing provides a means for complex problems to be solved
efficiently and quickly by dividing the work among the processors in the
system. This concept is interesting because of its ability to increase
the power of computing. What is even more interesting is the application
of distributed computing. Investigate a set of interesting applications
in which distributed computing is used in industry. In each case, one could
discuss the particular protocols, security issues, and benefits along with
an overview of the system implementation.
Topic 3
Write a term paper on the evolutionary structure of the LINUX operating
system. Topics of discussion could include the basic Kernel structure,
the upper layer services supplied, and the evolutionary basis for the
operating systems current structure.
The LINUX operating system is a classic example of the Open Source software paradigm. Exploring the structural evolution of this system helps to reveal the basis for many of the modern operating system design techniques. Both the good and the bad characteristics of this software have contributed to our understanding of how to architect an operating system.
From a graduate study perspective, this is an excellent operating system to study. There exists a large body of information related to the detailed structure of the LINUX operating system and its history. Such detailed information is not readily available for commercial software packages. The ability to explore the source code and its historical development presents a rare opportunity for students to study an evolutionary operating system development project from the beginning. While the total body of information concerning this operating system is far too large for a single term project, selective study of one of the suggested topics is feasible. The subject matter is certainly one of interest to our current field of study and would benefit a student's understanding of operating systems and their evolution greatly.
Topic 4
Write a term paper on Internet Security and Firewalls. With software being
developed in a distributed environment, it is important for a company to
have data security, and to have the data accessible to all members of a team.
Studying firewalls and Internet security should provide insight into what
details are needed to produce a secure environment. By researching these
subjects, you could gain a greater understanding of firewalls and security
issues related to the Internet. This topic relates to this course
in reference to security issues of operating systems.
Topic 5
Write a term paper on CORBA. Determine how CORBA fits into an operating system
and the specific details of what it takes to implement it.
This topic relates to distributed operating systems because it is a
means to provide interoperability between applications in
a distributed environment.
Topic 6
The Berkeley Network of Workstations (NOW) project seeks to harness the
power of clustered machines connected via high-speed switched networks.
By leveraging commodity workstations and operating systems, NOW can track
industry performance increases. The key to NOW is the advent of the killer
switch-based and high-bandwidth network. This technological evolution allows
NOW to support a variety of disparate workloads, including parallel,
sequential, and interactive jobs, as well as scalable web services,
including the world's fastest web search engine, and commercial workloads,
such as NOW-Sort, the world's fastest disk-to-disk sort. On
April 30, 1997, the NOW team achieved over 10 GFLOPS on the LINPACK benchmark,
propelling the NOW into the top 200 fastest supercomputers!
Topic 7
An operating system structure has a dramatic impact on the performance and the
scope of applications that can be built on it. Since its inception, the field
of operating systems has been attempting to identify an appropriate structure:
pevious attempts include the familiar monolithic and micro-kernel operating
systems as well as more exotic language-based and virtual machine operating
systems.
Exokernels dramatically depart from this previous work. An exokernel eliminates
the notion that an operating system should provide abstractions on which
applications are built. Instead, it concentrates solely on securely
multiplexing the raw hardware: from basic hardware primitives,
application-level libraries and servers can directly implement traditional
operating system abstractions, specialized for appropriateness and speed.
Topic 8
Angel is designed as a generic parallel and distributed operating system,
although it is currently targeted towards a high-speed network of PCs. This
model of computing has the dual advantage of both a cheap initial cost and
also a low incremental cost. By treating a network of nodes as a single shared
memory machine, using distributed virtual shared memory (DVSM) techniques,
Angel addresses both the needs for improved performance and provided a more
portable and useful platform for our applications.
Topic 9
The Advanced Manipulators Laboratory, at
Carnegie Mellon University, has developed the Chimera Real-Time Operating
System, a next generation multiprocessor real-time operating system (RTOS)
designed especially to support the development of dynamically reconfigurable
software for robotic and automation systems. Version 3.0 and later of the
software is already being used by several institutions outside of Carnegie
Mellon, including university, government, and industrial research labs.
Topic 10
Research and write a term paper on
COSY (Universities of Karlsruhe and of Paderborn with Group Members: Wolfgang
Burke, Roger Butenuth, Sven Gilles). Cosy is an operating system for highly
parallel computers, with hundreds or thousands of processors. All parts of the
system are designed to scale up with the number of processors, without any
one becoming a bottleneck.
Topic 11
Helios (Perihelion Distributed Software) is a micro-kernel operating system
for embedded and multiprocessor systems. The operating system is modular in
design and can scale from an embedded runtime executive up to a fully
distributed operating system.
Topic 12
Research and write a term paper on
Hive (Stanford University Flash Project). The Hive OS Team is
designing an operating system that is able to operate effectively in a
traditional supercomputer environment as well as in a general-purpose,
multiprogrammed environment. The latter environment poses significant
challenges since general-purpose environments typically contain large numbers
of processes making many system calls and many small I/O requests.
Topic 13
Research and write a term paper on
Paramecium. This kernel uses an object-based software architecture which
together with instance naming, late binding and explicit overrides enables
easy reconfiguration. Determining which components are allowed to reside in
the kernel address space is up to a certification authority or one of its
delegates. These delegates may include validation programs, correctness
provers, and system administrators. The main advantage of certifications is
that it can handle trust and sharing in a non-cooperative environment.
Topic 14
PEACE (Process Execution And Communication Environment) is a
family of operating systems with a truly object-oriented design developed at
GMD FIRST. Emphasis is laid on subjects such as performance, configurability
and portability. It is the native operating system for the MANNA computer, a
massively parallel computer facilitating a high-performance interconnection
network. Ports to SunOS, FreeBSD and Parix were made and expand the scope of
this system to other parallel computers as well as to workstation networks.
Topic 15
Research and write a term paper on
Puma and relatives (Sandia National Laboratory). The Puma operating system
targets high-performance applications on tightly coupled distributed memory
architectures. It is a descendant of SUNMOS.
Topic 16
Sting is an experimental operating system designed to serve as an efficient
customizable substrate for modern programming languages. The base language in
a recent implementation is Scheme, but Sting's core ideas could be
incorporated into any high-level language. The ultimate goal in this project
is to build a unified programming environment for parallel and distributed
computing.
Topic 17
Tornado (University of Toronto) is a new operating system being developed for
the NUMAchine that addresses NUMA programming issues using novel approaches,
some of which were developed for the previous operating system Hurricane.
Tornado uses an object-oriented, building block approach that allows
applications to customize policies and adapt them to their performance needs.
Researchers intend to tune Tornado for applications with very
large data sets that typically do not fit in memory and hence have high I/O
demands. They also intend to provide applications with an operating environment
that provides predictable performance behavior to allow performance tuning and
to allow the application to appropriately parameterize its algorithms at
run-time.
Topic 18
Currently, gaming is a large
source of bandwidth and programming resources. Games that can be played over
the Internet like Doom are very popular. A project could be done on what is
required to run games like that over a network.
Programming styles could be investigated as well (i.e., what language is
usually used, what type of message passing/shared memory is used, etc). A
game like this is not a true operating system in itself, but
is still an example of distributed computing. The only motivation for a
project like this is that it could be interesting and fun.
Topic 19
Another topic that could be investigated is a review of what distributed
operating systems are currently in use and in development. Most of these
would be academic ventures that would likely have
information available on the Internet. The researcher could look at what
languages are being used as well as what protocols are usually being
implemented. There are many parallel operating systems out there and
they could be surveyed to attempt to identify similarities between them. This
would be more of a survey type paper and not really along project lines.
Topic 20
Distributed computing is obviously important as far as attempting large-scale
problems (such as n-degrees of motion, or n-body type problems). A project
could investigate how far distributed operating systems have come in helping
solve such problems and what advances are likely needed to make such
problems solvable. This would be a valid topic since many distributed
operating systems are used in these types of problems.
Topic 21
Another idea is to investigate the different ways that distributed computing
can be done. A compare/contrast type of paper could look at message passing,
shared memory, and other forms of communication necessary for distributed
computing. While this would be a fairly basic start, upon starting
research, further detail could likely be included and the project subject
defined to a lower level.
Topic 22
Interconnection networks could be studied. There are many different
ways to connect up a network and advantages and disadvantages of each.
Perhaps an in depth study of these different networks
could be performed. Again, the basic idea is fairly simple, and would
probably need to be refined into a smaller topic. For example, the
researcher could investigate the history of the hypercube and write a
report on that. This would provide some of the history behind the
theories of the different designs.
Topic 23
Research and write a term paper on
an investigation into current encryption methods used in distributed
systems, including what the current methods of encryption are, their
implementation, advantages, and disadvantages. As research develops,
the topic may become more focused on a single method of encryption.
Encryption is relevant in web applications to provide the user security when making purchases over the Internet, transmitting personal information, or transmission of competition sensitive information for a company. Most users are unaware of how easy it is for personal information to be snatched and whether or not the site they are using is practicing safe computing. From the daily news headlines about a company's firewalls being breached it appears that companies are not as secure as they think. Encryption is becoming a greater issue as more users unite their computers to break encryption keys previously thought to be too large to be decoded by simply trying every available combination.
Topic 24
Research and write a term paper on
the use of sockets as a means of providing an
open TCP/IP connections between different servers on the Internet.
Sockets are a known means of providing this connection. What alternatives are the latest proposed methods for this connection that will still allow an open architecture? What methods are being utilized to provide a more reliable means of communication with sockets? How do sockets interface with JAVA.
As a research project the goal would be to learn more about sockets and their application in a distributed system. A simple implementation of a socket might also be included.
Topic 25
A possible project/term paper topic is to research what techniques have been developed to make distributed systems work as real-time systems. This could be a broad survey of the field, or it could focus on the details of a particularly useful or popular approach. It could include the different categories of real-time events and some of the characteristics of distributed systems that cause difficulties for real-time systems, along with possible solutions to those difficulties.
Topic 26
Research and write a survey on concurrency control for
distributed database systems.
Concurrency control is one of the major issues in database systems; therefore,
many concurrency control algorithms based on different strategies have been
proposed.
The problem for centralized database management systems is well understood. Distributed concurrency control, by contrast, is still in a state of turbulence. The survey will research the proposed algorithms, and investigate for general solution, or summarize the current development.
Topic 27
Research and write a survey on the
load balancing aspect of distributed systems.
Heterogeneous networks involve processors with different computing power,
different memory capacity, or they have different communication links. How do
they diffuse and balance the load? The survey will research to identify the
problems in load balancing
and summarize the progress of on-going development.
Topic 28
Research and write a term paper on
version management in distributed system.
A distributed software development environment consists of a local area
network of computers, wherein software development is done on these
inter-linked computers. An important problem in program development and
maintenance is version control, i.e., the task of keeping a software
system consisting of many versions and configurations well organized. Every
software system exists in alternative forms, successive releases, or
customer-tailored adaptations for different environments. The objective of a
version control system is to maintain and control transformations made to a
software system during its development and maintenance.
The paper could also discuss different types of distributed environment and
which of those might provide better configuration for version control.
Topic 29
Create a small Java enabled game that could be played across a network
by several players. For a bit more of a challenge, develop an autonomous
player based on genetic algorithms or some other AI technique.
This project would allow a student to expand beyond the realm of network programming into the artificial intelligence branch of computer science. By requiring that the game be network based, knowledge of network (i.e. distributed system) communication will need to be incorporated into the game.
Topic 30
Discuss applet-based versus server-based systems.
An in-depth study of the limitations and advantages of server-based
systems and applets will help to clarify when each system should be used. By
focusing on network issues such as download times, a study could be produced
that is relevant to networked systems, without allowing issues such as ease of
use to overshadow functional issues. An end goal could be to create a spectrum
from server-based to applets (with hybrid approaches in the middle) with many of
the issues facing today's developers put into place.
By concentrating on functional issues, a deep understanding of network transfer times and hardware issues may be needed to complete this project. A student will have a much better concept of Web development and also will know how to analyze future projects at the end of this study.
Topic 31
Research and write a term paper on the
authentication issue in distributed systems.
At many companies, employees are used to using different passwords and changing
the password almost every month, not being able to repeat the same
password for six iterations of password changes. Why do we need all these
precautions? And how can we achieve the security we need, besides using
passwords? To answer similar questions, we need to study authentication
issues connected with distributed systems.
To start with study, following idea is presented:
Most computer security uses a model, which provides a basis for secrecy and
integrity security policies. The elements of a model could be:
To do its work the monitor needs a trustworthy way to know both the source of the request and the access rule. Obtaining the source of the request is called authentication; interpreting the access rule is called authorization. Thus authentication answers the question Who said this?, and authorization answers the question Who is trusted to access this?.
Topic 32
Research the problem of security on a local area network. How do you know
that you have an acceptable user running a computer in your LAN? This project
would research requirements and solutions to this problem to ensure that only
an authorized person has access to information contained within the LAN.
Topic 33
Compare and contrast the attributes of several distributed operating systems.
The class reference material includes information on Amoeba, Chorus, GLUnix,
GUIDE, etc. For example, the availability of resources, response times
and accuracy of responses could be researched, showing the relative strengths
and weaknesses of each.
A table could be developed which addressed the specific attributes of each system. The systems could be further categorized into hard and soft real time systems with respect to the attribute. The data for the report would come from the published data on each system.
Topic 34
A project could be developed in which the desirable characteristics of a
distributed operating system are summarized. Since there are a number of
systems available, each must have some problem it tried to solve. A project
could be developed to quantify these characteristics.
Once the characteristics were listed, evaluation criteria could be developed with the basis for each criteria element detailed. This could become a requirements list for distributed operating systems. It may turn out that there are further criteria that must be developed.