Introduction
Tom Kelliher, CS43
Feb. 6, 1996
- Contract between students and instructor
- Keys: Responsibility, Commitment, Discipline
- Late assignments accepted only with prior approval
- Use of WWW --- abuse of WWW
- Perspective on collaboration --- useful aid, poor crutch
- Working in Unix, Unix Lab, reference books, keys
- Tentativeness, creation of schedule
-
Demonstration of reasoning, problem solving and decomposition skills
-
Communication, correctness demonstration skills
-
Ability to detect, resolve ambiguity; exercise decision skills
- ``Fluencies'':
-
To develop an awareness of the issues
involved in distributed systems.
-
To achieve an understanding of the design models and
principles associated with distributed systems.
-
To gain hands-on experience with distributed systems by configuring and
studying client services on Unix workstations and through writing some
distributed tools and applications.
- Seminar/Lab organization; extensive discussions.
- Proficient in C, comfortable in Unix.
Need to set-up Unix accounts for those who don't have them.
What is one?
A distributed system is a collection of independent computers that
appear to the users of the system as a single computer.
Examples:
- LAN in a lab
- The Internet
- An automobile
- The Space Shuttle
Issues: speed, reliability, scalability, transparency, ...
- Centralized computing
- Workstations (GUIs, economics, LAN technology)
- Return to centralized? (``big'' pipes, latency, economics, Java)
Over mainframes
- Workstations cheaper than mainframes: better price/performance
- Inherent distribution --- Walmart, groupware
- Reliability
- Incremental growth
Over standalone PCs
- Resource sharing
- Enhanced communication
- Flexibility, mobility
- Load reallocation
- Software: fully utilizing the resources, hiding the distributed
nature of the system
- Network saturation
- Network outages
- Security
A Taxonomy:
Compare/contrast: message delay, bandwidth, scalability, cost
- Private memory
- Workstations on a LAN
- Communication Latency
- Mesh --- dependent routing
- Hypercube --- independent routing
Generalizes to WANs
- Individual machines are distinguishable
- rlogin abacus
- Individual OSs pieced together with a NOS
- File, print servers (NFS, Netware, printcap)
- DNS, RPC
- User information (YP, NIS, NetInfo, NDS)
- email, ftp, gopher, ...
- True distributed system --- indistinguishable machines
- Unifying OS --- single system image
Characteristics? Global and consistent are keys in the
following:
- Namespace (files, services, everything)
- Security
- Communication
- Process management
- Reliability, redundancy
Hide distribution from users (easier), software (harder)
Types of transparency:
- Location
- Migration
- Replication
- Concurrency --- resource sharing
- Parallelism --- utilize multiple CPUs for a single task
``Keep options open.''
Microkernels
Availability, security, fault tolerance
Redundant system should be more reliable than a centralized system
Communication is the bottleneck
Reliability, transparency affect performance
Fit the job to the topology
If it works for 200 CPUs, will it work for 200,000,000?
Avoid centralization of: hardware, software, algorithms (routing info.)
The Internet's anarchy
Thomas P. Kelliher
Tue Feb 6 08:19:07 EST 1996
Tom Kelliher