CSS Optional — Paper-II, Section-A · P-II.III.I (cont.)
"Computing environment" describes the arrangement of machines, networks, and control that an OS must operate within — distinct from "classification of OS" (which is about the OS's own internal design goals). Examiners sometimes blur the two; if a question mentions multiple machines cooperating, answer from this page's angle.
Traditional (Standalone/Single-User) Computing
One user, one machine, no networking dependency for core operation. The OS's job is local resource management only. Largely superseded but conceptually the baseline every other model is compared against.
Client-Server Computing
graph LR
C1["Client 1"] -->|"request"| S["Server<br>(shared resource/service)"]
C2["Client 2"] -->|"request"| S
C3["Client 3"] -->|"request"| S
S -->|"response"| C1
- A small number of powerful servers provide services (files, databases, web pages, printing) to many client machines that request them over a network.
- Two common patterns: compute-server (client sends a request, e.g. an SQL query, and the server does the heavy processing and returns just the result) and file-server (server just supplies raw files; the client does its own processing on them).
- Centralized control and easier security/backup, but the server is a single point of failure and a potential bottleneck.
Peer-to-Peer (P2P) Computing
- No dedicated server: every node (peer) can act as both client and server, requesting services from others while also providing services itself.
- Peers locate each other via a lookup protocol (a centralized directory, or a fully decentralized broadcast/DHT scheme).
- Advantages: no single point of failure, scales well as more peers join (more peers = more total capacity). Disadvantage: harder to secure and administer since there's no central authority.
- Example: BitTorrent file sharing, Skype's original architecture.
Distributed Computing
- A collection of physically separate, independent computers connected by a network that cooperate and present themselves to the user as though they were a single coherent system (transparency).
- Goals: resource sharing, increased reliability (a node failing doesn't halt the whole system), computation speed-up via parallel work distribution, and communication between components.
- This is the OS-level concept that Client-Server and P2P are two possible architectural implementations of — Distributed Computing is the umbrella goal (transparency + cooperation); Client-Server/P2P describe how the machines are organized to achieve it.
Grid Computing (a distributed-computing variant worth naming alongside Cluster/Distributed)
Grid computing links geographically dispersed computers (often owned by different organizations) to work together on a large computational problem, coordinated via middleware rather than tight clustering hardware — used for scientific computation (e.g. protein folding, SETI@home-style projects). The key contrast with Cluster Computing (see [Classification of Operating Systems]): grid nodes are heterogeneous and loosely coupled across administrative domains, while a cluster's nodes are typically homogeneous and under one administrative domain.