Cloud computing Created 2026-10-24 Updated 2026-11-05
Cloud computing supplies configurable computation resources through a computer network, drawing on a shared pool that users can obtain and release with little provider intervention. The NIST definition distinguishes five characteristics: on-demand self-service, broad network access, resource pooling, rapid elasticity, and measured service. Together these describe how capacity is requested, shared, scaled and accounted for.[ref]
The NIST Definition of Cloud Computing by Peter Mell and Timothy Grance. Section 2, definition and five essential characteristics
For example, a group running a numerical simulation can request several virtual machines, execute independent runs, save the results and release the virtual machines. Rapid elasticity concerns changing allocated capacity as demand changes; measured service records usage such as processor time or storage. A physically distributed system can have a single operator: physical distribution and administrative control answer different questions.
Hypervisor 2026-11-05
A hypervisor manages system virtual machines, giving each guest a virtual machine interface while controlling its use of physical resources. It mediates facilities such as processor execution, computer memory and devices so that several guest operating systems can share a host. Hardware-assisted execution can run many guest instructions directly while retaining control over privileged operations.[ref]
Introduction to System Emulation in the QEMU documentation. Virtualisation Accelerators, guest machine model and supported hypervisors
For example, a guest's apparent physical address need not identify the same physical storage as the identical address in another guest. Separate mappings preserve their distinct computer memory contents. The hypervisor must also schedule execution and enforce device-access rules. Providing a separate guest operating-system kernel distinguishes this interface from ordinary software containers sharing the host operating-system kernel.
Multi-tenancy 2026-11-05
Multi-tenancy lets distinct consumers share a software service or computing infrastructure while retaining separate data and permitted operations. A tenant is the consumer or administrative grouping treated as one isolated customer. Resource pooling commonly assigns shared physical resources dynamically among tenants.[ref]
The NIST Definition of Cloud Computing by Peter Mell and Timothy Grance. §2, Resource pooling and its multi-tenant model
For example, two laboratories can use one hosted database application. Each laboratory's users must access only their permitted records, even when both laboratories' records occupy the same database relation. Checks on each database query and limits on resource use serve different purposes: data isolation does not prevent one tenant's expensive work from delaying another. Separate virtual machines are one possible implementation boundary, rather than a requirement of multi-tenancy.
Resource pooling 2026-11-05
Resource pooling combines provider computing resources to serve multiple consumers, with physical and virtual resources assigned and reassigned according to demand. NIST emphasizes multi-tenant service and some location independence: consumers generally select an abstraction or broad location requirement rather than one permanently assigned physical server.[ref]
The NIST Definition of Cloud Computing by Peter Mell and Timothy Grance. §2, Resource pooling
Pooling can improve utilization when consumers' peak demands occur at different times. It also requires isolation and allocation controls so that one consumer cannot read another's data or monopolize all capacity. For example, virtual machines may share a physical host while retaining separate address spaces. The resource pool and the mechanism enforcing its boundaries are distinct design responsibilities.
Software container Created 2026-10-20 Updated 2026-11-05
A software container runs one or more operating-system processes with a controlled view of files and other operating system resources. A container image supplies a packaged filesystem and execution configuration; starting it creates running operating-system processes with additional runtime state. A software container typically shares the host operating-system kernel, whereas a virtual machine can run its own operating-system kernel.[ref]
What is a container? in the Docker documentation. Container isolation and comparison with virtual machines
For example, two analyses can use different versions of the same software dependency without placing both versions in one shared installation. Reusing a container image helps reproduce those dependencies. Results also depend on the input data, configuration, mounted files and compatible host facilities. Packaging the software therefore records part of a reproducible calculation; the scientific assumptions and numerical methods still need their own justification.
Virtual machine 2026-11-05
A virtual machine presents a specified machine interface implemented using another system. A system virtual machine supplies virtual processors, memory and devices to a guest operating system. A hypervisor mediates access to the underlying resources; execution can combine hardware assistance and software emulation.[ref]
Introduction to System Emulation in the QEMU documentation. system emulation and virtualisation accelerators
For example, a guest can maintain its own kernel and filesystem view while a host schedules several guests on one physical machine. A Java virtual machine instead exposes a bytecode execution model to programs, illustrating a different level of abstraction. A container usually shares the host kernel rather than supplying a separate full guest kernel. The interface being virtualized determines which compatibility and isolation properties a particular virtual machine provides.