NivaarExam PrepOfficial exam papers ↗

25-Comp-B10 Distributed Systems · May 2013

Question 1 of 7: Characteristics of Distributed Systems

Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)

Notes on this paper

98-Comp-B10 Distributed Systems — National Examinations, May 2013. 3 hours, closed book, non-programmable calculator only. Candidates were instructed to answer any five of the seven questions, all carrying equal weight and mostly requiring essay-format answers; all seven are answered below as a complete study resource.

Reference texts: Coulouris, Dollimore, Kindberg & Blair, Distributed Systems: Concepts and Design (5th ed.) — system models and client-server architecture (ch. 2), interprocess communication and the request-reply protocol (ch. 4–5), operating system support for distributed systems (ch. 7), security (ch. 11), distributed file systems (ch. 12–12.4, AFS/NFS), and time, coordination, replication and fault tolerance (ch. 14–15, 18).

Check — sub-part lettering. Both sub-parts of Questions 1, 3 and 5 are lettered “a.” in the paper's numbering. Each of those three questions is answered below as two genuinely distinct sub-parts, relettered (a) and (b) in the order printed; content and marks weight are unaffected.

Question 1: Characteristics of Distributed Systems

Question text not reproduced: the examination questions are © Engineers and Geoscientists BC. Open the official past paper (linked at the top of this page) to read the question, then follow the worked solution below.

(a) Client and server programs. In the client-server model, a server is a program that runs continuously (or on demand), listens on a well-known network address/port, and provides a defined service by responding to requests. A client is a program that initiates communication by sending a request to a server and consuming the reply, typically on behalf of an interactive user. The relationship is asymmetric: the server is passive (waits to be asked) and typically shared by many concurrent clients, while each client instance is usually private to one user or one task and initiates the interaction. The two communicate over a network using a request-reply protocol built on top of transport-layer sockets (TCP or UDP): the client marshals its request into a message, sends it to the server's address, and blocks (or polls asynchronously) until the reply message arrives.

Client-server architecture of the Web (HTTP) Client (Web browser) Server (Web / HTTP server) 1. HTTP GET /index.html 2. HTTP 200 OK + HTML/CSS/images Internet Initiates request; renders reply Passive; shared by many clients
Fig. Q1(a) — client-server exchange for a Web page fetch. The browser (client) opens a TCP connection to the Web server's well-known port (80/443), sends an HTTP request naming a resource, and the server processes it and returns a response message; the same request-reply pattern underlies email (SMTP/IMAP) and ftp with different message formats and port numbers.

The same skeleton generalizes to email and ftp: an email client speaks SMTP to a mail-submission server and IMAP/POP3 to a mailbox server to fetch messages; an ftp client opens a control connection to negotiate commands and a separate data connection for the actual file transfer. In every case, the server exposes a stable, addressable service and the client is the one that must know where to find it and initiate contact.

(b) Resources shared efficiently in distributed systems. Software resources: (1) a shared database or file-server volume — e.g. a company's order-management database is hosted once and accessed concurrently by many client applications over the network, with the DBMS serializing/coordinating concurrent updates so clients never see a fragmented view; (2) a shared network/print service — a print server maintains one spool queue and one physical printer driver that many client workstations submit jobs to, rather than every desktop needing its own driver and direct cable to a printer. Hardware resources: (1) high-capacity storage (a NAS/SAN array) — many clients mount the same network volume so expensive, high-reliability (RAID-protected) disks are amortized across an organization instead of duplicated per desktop; (2) specialized compute hardware, e.g. a GPU/compute cluster — scientific or rendering jobs are submitted from many client machines to a shared cluster of accelerators, which is far more cost-effective than equipping every workstation with the same capability it uses only occasionally. In each case the resource is efficient to share precisely because individual clients need it only intermittently, while the server keeps it centrally available and multiplexes access across the community of users.

← Paper overview