Software aging

This method can be classified as an environment diversity technique that usually is implemented through software rejuvenation agents (SRA).

[4] Memory bloating and leaking, along with data corruption and unreleased file-locks are particular causes of software aging.

[5][6] This is because software exhibits over time an increasing failure rate due to data corruption, numerical error accumulation and unlimited resource consumption.

Even high-profile software such as Windows and macOS must receive continual updates to improve performance and fix bugs.

Software development tends to be driven by the need to meet release deadlines rather than to ensure long-term reliability.

This proactive technique was identified as a cost-effective solution during research at the AT&T Bell Laboratories on fault-tolerant software in the 1990s.

[11] The multinational telecommunications corporation AT&T has implemented software rejuvenation in the real time system collecting billing data in the United States for most telephone exchanges.

Freeing the memory is necessary because some operating systems (OS) don't perform garbage collection when a process finishes.

As the physical memory gets full, the OS writes rarely used parts of it to disk, so that it can reallocate it to another application, a process known as paging or swapping.

As a result, extensive swapping can lead to garbage collection cycles extended from milliseconds to tens of seconds.