Well, prefetching isnt a new topic but there is possibility that it can be optimized into the next generation of computing...
I found an interesting Google SoC Project page that shows some promise, ive been searching around for prefetching and ReadyBoost solutions for Ubuntu and ran accross this...
In todays computer systems the main bottleneck is not CPU but disk access which is several orders of magnitude slower than CPU and memory. In such circumstances the way to improve application performance is to prefetch data it needs from disk before it even requests it and it is the point of prefetching techniques.
The example of prefetching solution is Windows prefetcher.
Here is a little bit from their thesis:
"In this thesis we develop preload, a daemon that prefetches binaries and shared libraries
from the hard disk to main memory on desktop computer systems, to achieve faster
application start-up times. Preload is adaptive: it monitors applications that the user
runs, and by analyzing this data, predicts what applications she might run in the near
future, and fetches those binaries and their dependencies into memory.
We build a Markov-based probabilistic model capturing the correlation between every
two applications on the system. The model is then used to infer the probability that each
application may be started in the near future. These probabilities are used to choose
files to prefetch into the main memory. Special care is taken to not degrade system
performance and only prefetch when enough resources are available.
Preload is implemented as a user-space application running on Linux 2.6 systems."
Howto test optimizations:
*Warning* This is experimental and I have not tested this yet, I am about to once im done posting this, This may or may not be correct, let me know of any issues!
The following is an edited version of there wiki located here
Testing Boot Prefetching and Applications Prefetching
First testing version of kernel with automatic boot prefetching and tracing is available. This version is precompiled for Debian-based systems (tested on Ubuntu Gutsy, other distributions might not work). The kernel is standard Ubuntu kernel with these prefetch patches.
Standard disclaimer applies: this is experimental version, it might damage your system use at your own risk and only on systems where you have backups.
*This Requires Ubuntu Gutsy*
In order to use kernel with prefetching:
Download kernel linux-image deb
Install linux-image deb package
Install linux-headers deb package
Remove readahead package using: sudo apt-get remove --purge readahead -
please note that this will cause removing (x/k/edu)ubuntu-desktop package.
Download userspace prefetch support deb and install it using:
dpkg -i prefetch*.deb
Now reboot and select "kernel 188.8.131.52pf.3" during boot.
In order to remove kernel with prefetching:
Reboot into standard (non-prefetching) kernel.
Remove prefetch userspace support files using apt-get remove --purge prefetch
Install readahead and (x/k/edu)ubuntu-desktop package.
Remove linux-image package with prefetching support (with "pf" in name).
Summer Of Code 2007 Progress
Google Code Page