First page Back Continue Last page Overview Graphics

Bad memory management examples


Here is an example of two independent memory management systems interacting to produce a very bad situation.
If both the UML and host are swapping, they will both need to choose pages to write to swap. It is likely that they will choose some of the same pages, since they are using the same criteria to choose them.
So, if both the host and UML choose the same page for swapout, and the host wins the race, and writes it out and frees it, the UML will follow by swapping it out to its own swap area, release it, and reuse it. This will immediately force the host to read it back in from its own swap.
The result is extra, unnecessary IO in a situation where the host was already likely to be IO bound. In a truly bad situation, the UML forcing pages to be immediately read back in after being swapped could contribute to thrashing.