[coyotos-dev] Voluntary Pageout
cap at isg.axmor.com
Sat Jan 14 16:37:15 EST 2006
Jonathan S. Shapiro wrote:
>On Sat, 2006-01-14 at 17:50 +0600, Constantine Plotnikov wrote:
>>Described variant of media player is possible, but media
>>players usually do not work this way precisely for the
>>specified reason. So the media player use case does not
>>justify this functionality. While other applications might
>>need such functionality, I could not conceive such application
>>right now. ...
>I'm afraid that there has been confusion.
>Internally, more and more implementations of libc (including hurd's)
>attempt to implement I/O via memory mapping. They may map a moving
>window on the file, but they do use mapping. In EROS/Coyotos, *all* file
>I/O is ultimately handled by mapping *somewhere*.
>So: another way to look at this is that it is a mechanism that can be
>used inside stdio so that the read() or write() routines can indicate
>that the current stream position has passed a given frame and keeping
>the frame in memory is no longer a priority.
I guess I get it now. But I still do not see why invalidating is better
than plain unmapping or remapping.
If frame is not needed, why not just unmap it or remap to some other
sector (in that case libc considers mapped frames as cyclic buffer). If
frame is unmapped, other components of the process will be able to use
it. If the completely read frame is remapped to next unmapped sector of
the file on the disk, the page might be already loaded when cursor
reaches it (provided that the storage driver works asynchonously).
More information about the coyotos-dev