This work presents several approaches for designing the memory management component of self-stabilizing operating systems.
We state the requirements which a memory manager should satisfy. One requirement is eventual memory hierarchy consistency among different copies of data residing in different (level of) memory devices e.g., ram and disk. Another requirement is stabilization preserving where the memory manager ensures that every process that is proven to stabilize independently, also stabilizes under the
(self-stabilizing scheduler and the) memory manager operation. Three memory managers that satisfy the above requirements are
presented. The first allocates the entire physical memory to a single process in every given point of time, the second uses
fixed partition of the memory among processes, and the last uses memory leases for dynamic memory allocations.
Partially supported by Rafael, Microsoft, IBM, NSF, Intel, Deutsche Telekom, Rita Altura Trust Chair in Computer Sciences
and Lynn and William Frankel Center for Computer Sciences.