10/16 -- Distributed Operating Systems - Transparency is the holy grail for a distributed system. A distributed operating system should make a collection of computers behave like a single computer with better performance and reliability. - Transparency can be classified in different categories: 1. Location transparency---Users cannot tell from the name where resources are located. 2. Migration transparency---Resources can move at will without changing their names. 3. Replication transparency---The users cannot tell how many copies exist. 4. Concurrency transparency---Multiple users can share resources 5. Parallelism transparency---Activities might happen in parallel without users knowing it. - Example of distributed operating system: Athena - If you ssh to x.mit.edu from y.mit.edu, how transparent is Athena? - Names. Hesiod names. Hesiod/DNS. - Files. Named by global names (/afs). AFS - Users. Named by global names. Kerberos. Moira. - Email. Named by global names. Kpop, Moira. - Windows/keyboard/mouse. Named by global names. X. (or X forwarding using ssh agent. - Printers. Named by a global name. LPRng. - Program binaries. Athena naming conventions. - Observation: each requires a naming system and its own set of protocols (e.g., DNS, AFS, Kerberos, Kpop, X, LRPng) - What is not transparent? - Sound device card. - Process ids. - TCP Port numbers. - ... - From the different categories which ones are provided by Athena? 1. Location transparency. Pretty good. 2. Migration transparency. No. 3. Replication transparency. AFS. 4. Concurrency transparency. AFS. 5. Parallelism transparency. No. - Naming systems are key to transparency. - If names to refer to objects contain location information in some way or another, then it is hard to achieve location transparency. - Example: Athena. - Files are named by global names that don't specify location. - Etc. - What does a naming system do? - It defines a rules for what legal names are (e.g., dns names) - It maps names to objects (e.g., dns name to IP addresses) N(name) -> object - Objects can be other names. (e.g., IP addresses name a computer on the Internet) - The mapping from names to object is often context-dependent. N(name, context) -> object Eg., AFS-mapping(file name without /, current working directory) -> File. - See 6.033 Chapter 5 for an introduction to naming. - Example: Plan 9.