diff options
author | Alex Auvolat <alex.auvolat@ens.fr> | 2015-02-20 15:47:51 +0100 |
---|---|---|
committer | Alex Auvolat <alex.auvolat@ens.fr> | 2015-02-20 15:47:51 +0100 |
commit | 9ba449a6e5f9db20923fb9802eefe0f090ba5fff (patch) | |
tree | f0f58bfa44a30e61e30caf08af1cdf03bef822f0 /README.md | |
parent | 2d4d64189501c253ed6a5b5ff5e27da1cb34407a (diff) | |
download | kogata-9ba449a6e5f9db20923fb9802eefe0f090ba5fff.tar.gz kogata-9ba449a6e5f9db20923fb9802eefe0f090ba5fff.zip |
Change mode of operation for mmap_file (see readme)
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 17 |
1 files changed, 16 insertions, 1 deletions
@@ -93,7 +93,22 @@ running the tests): ### Things to design -* Cache architecture +* Cache architecture : + - A RAM file is basically a bunch of pages that contain the data (rather than a segment of + malloc()'ed memory) + - A framebuffer device is basically a bunch of pages at a fixed hardware location, that cannot + grow + - In the two previous cases, the pages are never freed : they are not a cache, they are the + data itself. + - In the case of an on-disk file, the pages are a copy of the file's data that is originally + on-disk, and we might want to free these pages even while a process is using them, because + we can always reload them from the disk. + - An on-disk file with a page cache must be aware of all the places where the page is mapped, + so that it can unmap it when reclaiming pages. + - Simpler model : cached pages cannot be freed while the file is open with `FM_MMAP` +* Reclaiming physical memory : + - Freeing some cached stuff, ie swapping pages from mmap regions + - Swapping pages from processes non-mmap regions (ie real data regions) * IPC * How does a process exit, what does it do, how do processes synchronize ? * Have several threads in a single process |