This work presents several approaches for designing self-stabilizing operating systems. The first approach is based on periodical automatic reinstalling of the operating system and restart. The second, reinstalls the executable portion of the operating system and uses predicates on the operating system state (content of variables) to ensure that the operating system does not diverge from its specifications. The last approach presents an example of a tailored self-stabilizing very-tiny operating system. Prototypes using the Intel Pentium processor were composed.
This work presents several approaches for designing the memory management component of self-stabilizing operating systems. We state the requirements 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 preservation a condition in which the memory manager ensures that every process that is proven to stabilize independently, stabilizes under the (self-stabilizing scheduler and) memory manager operation too. Three memory managers that satisfy the above requirements are presented. The first allocates the entire physical memory to a single process at every given point in time. The second one uses fixed partition of memory between processes, while the last one uses memory leases for dynamic memory allocations. The use of leases in the scope of memory allocation in the operating system level is a new and important aspect of our self-stabilizing memory management.
This work presents approaches for designing the input-output device management components of self-stabilizing operating systems. As an example, we demonstrate the nonstability of the ATA standard protocol for storage devices. We state the requirements that an operating system and I/O devices should satisfy in order to become self-stabilizing. Then we suggest two solutions to satisfy these requirements. The first uses leases to guarantee progress from the I/O device side. The second assumes stabilization of the I/O device, and uses snapshots to perform consistency checks. A device driver for a PC hard-disk, using the first solution, was implemented. By supplying an infrastructure for practical self-stabilizing systems, robust and dependable systems can be achieved.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.