diff --git a/Contributions/Linux_Memory_Management_Essentials.md b/Contributions/Linux_Memory_Management_Essentials.md index 8ff0064..b8946c8 100644 --- a/Contributions/Linux_Memory_Management_Essentials.md +++ b/Contributions/Linux_Memory_Management_Essentials.md @@ -98,7 +98,7 @@ The following section presents a set of statements that can be objectively verif 1. Certain content such as code or constants can be "re-constructed", by relaoding it from file (code pages are likely to necessitate undergoing re-linking), so the actual logical content might disappear, over time. 2. Other pages, on the other hand, are meant to hold non-re-constructible content, such as stack, heap, and variable data. These pages can, at most, be swapped out, and loaded back later on, but they cannot be simply dropped. 3. page cache: it is a collection of memory pages containing data read from files, over time; e.g. code or initialised data from a file that was accessed recently; in some cases the page might never have been used, but it was loaded as part of the readahaead optimisation. The life expectancy of these logical pages is heavily affected by how many processes might keep accesing them and the level of memory starvation of the system caused by other processes, with some additional complexity layered on top of this, by the use of containers. - 3. The kernel utilises various optimisations that are meant to take advantage of hardware features, such as multi-stage caching, and also to cope with different memory architectures (like Non Unifor Memory Architecture - NUMA). The main goals are: + 3. The kernel utilises various optimisations that are meant to take advantage of hardware features, such as multi-stage caching, and also to cope with different memory architectures (like Non Uniform Memory Architecture - NUMA). The main goals are: 1. avoid having to propagate too frequently write operations through the layers of HW cache, which is caused by pages being evicted from the cache, due to memory pressure 2. avoid having multiple cpus writing to the same page, in a NUMA system, where only one cpu has direct write access to that memory page, because it would cause cache invalidation Therefore, the kernel tends to: