optional · CSS study notes
Computing Environments
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
(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.
Cloud Computing
- Computing resources (servers, storage, databases, networking, software) delivered on-demand over the internet, typically with pay-as-you-go pricing, from a provider's data centre rather than the user's own hardware.
- Service models (a favourite CSS distinction):
| Model | What the provider manages | What the user manages | Example |
|---|---|---|---|
| IaaS (Infrastructure as a Service) | Physical servers, storage, networking, virtualization | OS, runtime, applications, data | Amazon EC2 |
| PaaS (Platform as a Service) | • OS, runtime environment | Application code and data only | Google App Engine, Heroku |
| SaaS (Software as a Service) | Everything, including the application itself | Just their own data/usage | Gmail, Google Docs |
- Deployment types: Public cloud (shared infrastructure, multiple tenants), Private cloud (dedicated to one organization), Hybrid cloud (a mix, for workload flexibility or compliance).
Virtualization — the enabling technology underneath Cloud
A hypervisor allows one physical machine to run multiple independent guest OS instances (VMs), each unaware of the others, by virtualizing the CPU, memory, and I/O (full detail on Type 1/Type 2 hypervisors and containers is on the [OS Structures and Operations] page). This is what lets a cloud provider multiplex thousands of tenants' workloads onto shared hardware — it's the mechanism that makes IaaS practically possible, and is worth mentioning as a linking sentence between Cloud Computing and the older Distributed/Client-Server models.
Edge Computing and IoT (a newer environment increasingly tested)
Edge computing pushes processing physically closer to where data is generated (a sensor, a factory machine, a phone) instead of sending everything to a distant centralized cloud data centre — reducing latency (critical for real-time control) and network bandwidth use, at the cost of less centralized compute power per node.
Internet of Things (IoT): a network of everyday physical devices (sensors, appliances, wearables) embedded with software enabling them to connect and exchange data — typically relies on lightweight embedded OSes and edge computing together, since IoT devices are usually too resource-constrained to run a full cloud round-trip for every decision.
One-Paragraph Comparison Table Recap (for a fast last-minute revision)
| Environment | Coupling | Ownership |
|---|---|---|
| Cluster | Tight | Single organization |
| Grid | Loose | Often multiple organizations |
| Cloud | Virtualized/on-demand | Single provider, multi-tenant |
| P2P | Ad hoc | No central ownership |
🎯 CSS Exam Angle
The examiner's favourite question shape here is comparative: "Differentiate between Client-Server and Peer-to-Peer computing" or "Differentiate between the three cloud service models with examples." Always anchor each answer with a concrete, named real-world example — vague answers without examples lose marks even when the theory is correct.
⚠️ MCQ Traps
- Distributed computing is the goal (transparency); Client-Server and P2P are architectures that can implement it. Don't treat "distributed" as a fourth co-equal item in a list with client-server and P2P — it's the broader category.
- IaaS/PaaS/SaaS boundary: the single most-tested fact is where the user's management responsibility starts. IaaS = user manages from the OS upward; PaaS = user manages from their own application code upward; SaaS = user manages nothing but their own data/usage.
- A private cloud is still cloud computing (on-demand, virtualized, self-service) — it is not the same as simply "owning your own servers" in the traditional sense; the defining feature is the service delivery model, not who owns the hardware.
- Grid ≠ Cluster: grid nodes are usually heterogeneous and span multiple organizations; cluster nodes are usually homogeneous and under one administrative domain.