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.
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.
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.
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.
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.
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!
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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?.
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.
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.
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.