I keep getting the feeling that we take different meanings from the same terms. In order to clarify the situation, can I point to the Wikipedia entries for multithreading and forking?
RO is presently a N:1 multi-threaded system, that is all thread are mapped onto a sinlge processor, and the application itself schedules those threads. In most cases, it does so in response to reasoncodes retruned by Wimp_Poll.
My Wimp_Poll suggestion is an attempt to change to a 1:1 multithreading system, where all thread scheduling is carried out by the kernel. I suppose it would be more correct to consider such a system pre-pemtive, and to finish the picture, I wonder if the pre-filter mechanism could be used (by the kernel) to prevent blocking. Simtec's Hydra was introduced before prefiltering, I think.
Killermike's suggestion is called "forking" in which the OS creates a new instance of itself and starts a process (application) within that instance, thus giving each application its own OS context. Clearly, since all applications need to share hardware resources, the child processes would not be a copy of the OS, just the API. The rest of t he OS would need to be rwritten to allow more than one context.
Please login before posting a comment. Use the form on the right to do so or create a free account.
Search the archives
Today's featured article
Adventures with a Lego-cased A7K web server Having previously built desktop and laptop cases of out Lego bricks, model building Peter Howkins has turned his attentions towards crafting a slim box to slid his A7000 into a rack, alongside other rackmount servers. Having pieced together the housing, Peter puts a legacy RISC OS machine through its paces as an internet-facing server. 11 comments, latest by jess on 3/12/08 2:07PM. Published: 21 Nov 2008