Chapter 16 and chapter 17; Distributed Services: . telnet: . typically, each machine has a telnet daemon running; the daemon listens for connection request for port 80 (the default telnet port) on the machine; . when the user type "telnet vega4.cs.wisc.edu", the telnet program (the client) connects to port 80 on vega4.cs.wisc.edu; . the telnet daemon on vega4.cs.wisc.edu then accepts the connection, and forks a new process; the new process handles the telnet interactions, and acts on the user's behalf on vega4; . the communication between the telnet client process and the new process is simple: the telnet client sends all the user's input to the new process, which acts as a shell and executes the user commands; the new process then forward the output from the commands to the client process, which then display it on the screen; . ftp: . similar to telnet, a ftp daemon listens on a default port number for connection requests, and forks a new process to handle ftp transactions with each user; . different from telnet, the new process only understands a few commands such as "get", "put", "cd", and "ls"; . also different from telnet, ftp can support "anomynous ftp", in which the new process runs as "nobody" or "system:anyuser" on the machine, so that the new process can only access files that the user "nobody" or "system:anyuser" can access; . WWW: . users the HTTP protocol, strict request-response model (client send a request to the Web server, the server responds with the file, then end of communication), different from telnet and ftp; . the WWW server doesn't have to fork a new process for every request, since all it has to be do is to send back a file; . typically, the Web client process first connects to port 8000 or 8080 of the WWW server machine. After the server machine accepts the connection request, a communication channel is established between the WWW client and the server. The client then send the HTTP request to the server; the server responds with the requested file. After the server sends back all the data in the file, it tears down the communication channel by closing the connection. . database transactions: . most credit card purchases in fact result in a database transaction at a remote server. That is, a request message is sent to the processing center for credit card transactions; the processing center usually have many highly powerful database servers; the servers will verify the card and check the permission for the purchase, update the account balance, and send back a approval to the caller; . similar scenario occurs for TYME or ATM machine transactions; . the processing center typically uses fault-tolerance techniques. It may have servers located at different places on earth and databases replicated at all servers. In this case, every transaction in fact occurs at all servers. Distributed OS: . At first, people wanted to do one kernel handling multiple machines, too hard! reason: the kernel has to deal with the case that one machine failed, but others are still running; . then people tried to accomplish simpler things, like: . Distributed File Systems; . Process Migration/Computation Migration; Example: the "condor" system developed by Prof. Miron Livny; . Multiprocessor kernel: . one issue arising in the distributed system context is clock synchronization; Distributed File Systems: See section 17.1 through 17.3 of the book.