Before software can use your computer's RAM, it requests a memory allocation from the operating system. The operating system attempts to accommodate the request, based on factors including how much memory is being used by other software. If not enough memory can be allocated, the software may not be able to run.
Before a non-volatile storage device such as a hard disk or SSD can be used, some or all its available space must be allocated. The allocation is performed by disk management software, such as your operating system installer, Windows Disk Management, fdisk, or GParted. The allocation is called a partition. Any space on your disk that has not been partitioned is called unallocated.
Memory allocation in computer programming
Each computer programming language offers its own approach to memory management. The C programming language requires that the developer explicitly allocate and free memory used by a C program. The Python programming language manages memory automatically, which makes the developer's life easier, at the expense of performance. Like C, the C++ programming language permits for explicitly managed memory, but also provides optional memory management features such as GC (garbage collection).