|
From: | Rian Hunter |
Subject: | Re: Questions about copy-on-write |
Date: | Wed, 27 Oct 2004 19:22:05 -0400 |
User-agent: | Mozilla Thunderbird 0.8 (Macintosh/20040913) |
Sam Mason wrote:
All of these questions will be answered in the current L4/Pistachio reference manual. It is almost imperative that you understand how L4 is doing things before worrying how the HURD works on top of it.Neal H. Walfield wrote:physmem holds mappings between virtual frame (per-task handles for physical memory blocks) and physical frames.Is this where most of the memory protections stem from? Tasks can't ask for arbitrary pages of memory but they can ask physmem for a new (otherwise unused) page of memory or they can ask for a specific page of memory out of a container. If that's true then I think my confusion was coming from a belief that this mechanism was in L4 iself, rather then physmem. I think the next challenge for me is to figure out how a task can revoke a mapping it gave to another task. I guess I'll have to give the L4 a bit of a read. . .
In general L4 does hand out pages (only once) using a server called "sigma0" which is where physmem takes all the memory, then takes over managing the memory. By hand out I mean map to a task.
A task revokes a mapping it gave by using the Unmap system call. This is how physmem will revoke a mapping. A discussion that Neal and Marcus had was how physmem will go about unmapping extra frames from user tasks, either pre-emptively unmapping frames it designates as extra or giving the task time to decide which one of it's frames it's extra then conceding that frame. I think it's safe to say that tasks in HURD/L4 will not have to worry about using the Unmap system call.
In the HURD I think it's convention that a user task will revoke a mapping from another task by asking physmem to do it.
-rian
[Prev in Thread] | Current Thread | [Next in Thread] |