Distributed systems are composed of a number of physically separate machines connected by one or more communication links. Unlike parallel systems, there's no shared clock or memory. This means that distributed systems are very loosely coupled; for example, if your web browsercrashes while visiting cnn.com, cnn.com itself will not crash. In general, we can identify several advantages in building distributed systems, such as:
Shared resources do not need to be unnecessarily replicated. For example, you don't need to store all your ?les in all Edlab machines, but rather a distributed network ?lesystem lets it appear that your Edlab ?les are accessible on any of the Edlab machines. At the same time, you generally do not want to store all your ?les in just one machine, and so a distributed ?lesystem could use replication across multiple machines to provide fault tolerance.
Expensive (or scarce) resources can be shared. As an example, a poster-size color laser printer can be shared via a local network. It is possible to present the same working environment to users, by keeping their ?les and pro?les on remote servers. For instance, today, as opposed to during the 1970s, each one of us owns or uses several computers, and we do not just use one big computer. Unfortunately, this is also a problem, since, say, data on our cellphone can be out of sync with data on our laptop. The good news is that distributed systems help to standardize these environments;
one possible solution to this problem, for instance, is to implement thin clients, in which the user might owns only one fast machine but lots of very simple "keyboard-screen" machines.