[HECnet] 2.11BSD

Johnny Billquist bqt at softjar.se
Wed Dec 19 10:08:55 PST 2012


On 2012-12-19 17:38, Paul_Koning at Dell.com wrote:

On Dec 19, 2012, at 7:08 AM, Johnny Billquist wrote:

On 2012-12-19 03:27, Clem Cole wrote:
The page size on the VAX is 512 bytes and it lacked COW (copy-on-write)
HW (long, long story as to why, which I will not try to repeat).     In
the end, this would be a huge problem with all VAX OSses and HW - take
look any of the sources.

[...]
Well, what it lacks (and I'm sure you know this) is really a modified bit in the page table.
However, it's extremely easy to implement it, and the cost is acceptable, I guess. You just keep the page read-only, and get a trap when someone wants to write. At that time you change the protection, and mark it as modified. There are even a couple of bits in the page entry that are reserved for software use, and you can just decide that one of them is your modified bit.

This is what we do in NetBSD/vax.

I can't imagine any other way of doing it.   A copy on write page has to start out read-only, then when the write occurs the write has to be rejected so the copy can be done first.   The "trap, copy, and write-enable" approach is the common one; for example, MIPS works exactly this way.

Well, I was talking about implementing the MODIFY bit here, but yes, copy-on-write is an extension to this. However, I pretty much am sure that you cannot do it any easier to cheaper with copy-on-write. The MODIFY bit, though, is something most MMUs have in hardware - not so for the VAX. :-(
That becomes important when you want to know if a page is dirty or not...

	Johnny



More information about the Hecnet-list mailing list