From: davidsen@ariel.crd.GE.COM (william E Davidsen) Subject: Re: VM86 Date: 2 Sep 1992 14:10:13 GMT
In article <richard.715353503@stat.tamu.edu>, richard@stat.tamu.edu (richard henderson) writes:
| >I like Bill Davidsen's idea of using a read-only memory trap to detect
| >writes to the screen, though. I wonder if it would be worthwhile to use
| >this method to divide the screen up into large chunks (e.g. 4 or 8) and
| >then copy only those blocks that have changed (if any) since the last
| >timer tick.
Thank you, I like the idea of no overhead if the screen is not
modified, but I wonder what the trap will cost.
| Also, if it were possible to get at the "page dirty" flag, it would be
| very easy to tell which 4K chunks have been modified. This without
| needing to service interrupts. It seems to me that waiting for the
| alarm and checking all 16 pages at the same time would be faster than
| having the overhead of a (several?) task-switch to service each interrupt.
And poll the page dirty flags? Hum. I don`t know what that would
entail, or even if it would be less overhead, since a system call to get
the flags might cost as much as a trap to indicate a modification. Fun
times finding out!
I believe the best thing is to map the screen memory whenever
possible, sunce as when running directly rather than under X. This
reduces trapping to just the registers.
Re the comment I seem to have edited out, SysV shared memory would
probably be easy using the code from mmap(), only that doesn't work in
the general case, either.
There is room for a lot of missing IPC still, like semiphores, message
queues, etc. That's not a complaint in any way, just a comment on the
current state of the kernel.
--
bill davidsen, GE Corp. R&D Center; Box 8; Schenectady NY 12345
I admit that when I was in school I wrote COBOL. But I didn't compile.