summaryrefslogtreecommitdiff
path: root/user
diff options
context:
space:
mode:
authorhttp://etenil.myopenid.com/ <http://etenil.myopenid.com/@web>2011-02-15 20:19:47 +0000
committerGNU Hurd web pages engine <web-hurd@gnu.org>2011-02-15 20:19:47 +0000
commit166b6203876f583308fcfbd17df3123f90271ecf (patch)
treefaf27ef95058985ae7ae06b9ce3b332cba1015ae /user
parent28ceff654b028b2ae816a4131b7e6da46548cf83 (diff)
Diffstat (limited to 'user')
-rw-r--r--user/Etenil.mdwn8
1 files changed, 8 insertions, 0 deletions
diff --git a/user/Etenil.mdwn b/user/Etenil.mdwn
index f19a5697..3dd41071 100644
--- a/user/Etenil.mdwn
+++ b/user/Etenil.mdwn
@@ -40,8 +40,16 @@ VM allocation happens with a call to:
- - -
## Implementation plan
+
+### Ideas
To start of with, I will toy with the VM (even if it breaks stuff). My initial intent is to systematically allocate more memory than requested in the hope that the excess will be manipulated by the task in the near future, thus saving on future I/O requests.
I'd also need to keep track of the pre-allocated memory and so that I can pass it on to the task on demand and prefetch even more. I could also possibly time the prefetched data and unallocate it if it's not requested after a while, but that's just an idea.
The tricky part is to understand how the memory allocation works in Mach and to create an additional struct for the prefetched data.
+
+### Foreseeable difficulties
+* Tracking the prefetched memory
+* Unallocating prefetched memory along with the requested memory
+* Shared prefetched memory (i.e. a task requested memory, some more was prefetched and a second task used the prefetched memory)
+* Page faults