An exploration of protocols and methods for allocating to more than one processor various parts of the work associated with a single task. Emphasis is on environments such as array processing, parallel processing and multiprocessor systems, and communication among cooperating processes. Issues discussed include reliability, security, and protection, as well as how these issues affect the development of programs and systems. Course Introduction This course is an introduction to a new and rapidly developing area of computer science. Supermarket cashiers and garage mechanics alike depend on computers to do their daily work.
Some people wonder what is left for computer scientists to do.
Although there are many tasks remaining for computer scientists, there are few areas where the need is as clear and as well-defined as the development of distributed systems. Computer hardware continues to become smaller, cheaper, and more powerful. Applications that were previously impractical may be well-suited for distribution over a number of computing devices. Together these devices can solve a single problem or even bring a resource to a number of users concurrently. In time, distributed systems will be as common and as routinely used as ordinary computer applications are today, but there is a lot of work to be done to bring that about.