Monday, November 29, 1993 Distributed systems (chapter 12) ------------------------------------------------------------------------------- Basic classification scheme for multi-computer systems *tightly coupled system*: Processors share memory and a clock. Also called multi-processor system. *loosely coupled system*: Processors do not share memory or a clock. Also called a distributed system. Here we will consider distributed systems ------------------------------------------------------------------------------- Why distributed systems? - Resource sharing One site can use resources available at another - Computation speedup Partition computation into independent subcomputations. Load sharing to relieve site that is currently overloaded with jobs. - Reliability Redundancy to permit system to continue operation even if some of its sites have failed. - Communication Gives the users of separate systems the spportunity to exchange information, perhaps over great distances. ------------------------------------------------------------------------------- Note that these examples have made an assumption about the characteristics of the network (connectivity, speed of links, etc.) . Consider some of the alternatives now in use: - ARPAnet: 1st widely-used network, developed early 70's but still in use. Connected together large timesharing systems all over the country using leased phone lines. Provided mail, file transfer, remote login. - Usenet: Developed late 70's, early 80's. Unix systems phone each other up to send mail and transfer files. - Local area networks: Developed early 80's to hook together personal computers. Most popular interconnection for LANs is Ethernet. LANs are used very differently than wide-area networks. ------------------------------------------------------------------------------- Network topology Metrics: - Basic cost (how many links) - communication cost (how many hops to get message from A to B) - reliability (how much failure before nodes cut off?) ------------------------------------------------------------------------------- - Fully connected (all sites directly lined with all others) high cost because must have direct communication line between every two sites indeed links grow as square of number of sites advantage: very fast routing (only one link needed), very reliable (many links must fail to partition net) a net is *partitioned* if it has been split into two or more parts that lack connection between them - partially conected some, but not all, nodes are linked message may have to pass through several links (slower communication) net may become partitioned more easily (not as reliable) ------------------------------------------------------------------------------- Some examples of partially connected networks note that multiple hops require nodes to store and forward messages - Hierarchical network organized as a tree for example following corporate structure. note that failure of node partitions subtrees from eachother and from ancestors - star network central hub at most two hops hub can become bottleneck so may need to be dedicated to switching applications failure of hub partitions net - ring each node connected to exactly two other nodes unidirectional: messages flow in one direction only bidirectional: messages flow in either direction up to n-1 hops for unidirectional case up to n/2 for bidirectional case any failure partitions unidirectional net two failures partition bidirectional ring ------------------------------------------------------------------------------- - multiaccess bus single shared link (the bus) with all sites connected to the bus sites communicate directly with one another via the bus comparatively low cost link can become bottleneck failure of nodes not important to partitioning but failure of link completely partitions network examples: Ethernet (linear bus configuration), satellite links issue is how to arrange for link to be shared by multiple nodes -------------------------------------------------------------------------------