Transparent Contribution of Storage and Memory
Overview
The goal of our project is to demonstrate operating system modifications to provide services for contributory applications.
Like CPU-prioritization, these services allow contributory applications
to inform the operating system that they are less important than other
processes on the machine, and that their resources should be managed
accordingly.
- TFS is a file system which provides transparent files which do not interfere with other storage resources.
- TMM is a memory manager which prevents transparent applications from encroaching on the memory needs of ordinary applications.
What are Contributory Applications?
Contributory applications
are programs which allow users to donate computing resources to someone
else. These applications are designed to contribute a number of
resources, including CPU cycles, space in the computer's RAM, on-disk
storage, and network bandwidth.
A common trait among these
applications is that the user is participating voluntarily. Because of
this, if the application interferes with the user's own activity, the
application will be disabled. As a result, contributory applications
are written to be transparent to the user. That is, the
behavior of the user's applications should be the same, whether or not
they are running a contributory application.
Contributory Applications and Resource Management
Writers
of such applications have been able to manage the use of some resources
from user space. For instance, to avoid interfering with the user's use
of the CPU, these applications use existing operating system features
to either run at a lower (less important) priority, or to run as a
screen saver when the user is not actively using the computer.
Other resources tend to be harder to manage. Main memory
is a difficult resource to manage because it is unclear how much RAM
the user can give up before noticing a performance impact. Furthermore,
if memory resources are taken while the user is not active (e.g. by a
screen saver), the time it takes to reallocate these resources when the
user returns is noticeable.
Another such resource is disk space.
Users are reluctant to give up more than a small portion of their disk,
even if that storage is completely empty. Even when users are willing
to sacrifice the storage, consuming large amounts of storage
accelerates the effects of file system aging.