[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


The keyboard of Budd, Sinclair emitted at some point in time:
>    well well well 
> >From: 	Stefano.Antoniazzi@italtel.it
> >
> >I'm trying a port of the Inferno emulator to the
> >Microware OS-9 operating system.
> >
> >Unfortunately, the OS-9 kernel does not support multi-threading.
> >Is the availability of threads in the host OS actually
> >a strict requirement for porting Inferno ? 
> >
> >Which is the best solution to overcome such limitation ?

This should not be insurmountable. The threads of a process are sharing
(effectively) the data heap, while having their own stack. OS/9 has a
unix-like process model, although the OS/9 fork() is more like a a unix
fork () followed by an exec() of the child, with no need for intervening
code deciding whether you are in parent or child.

To implement threads with that model, all you have to do is to get your
processes to use shareable memory modules (i.e. data areas resident in
memory not part of a process's data space), and to connect to them
explicitely. That means a little bit of work, but since these memory
modules are objects visible from outside (like processes in unix) the
debugging should be simpler, because you can have a user state browser
to inspect them.

Alternatively, you could phone up Microware in Des Moines and ask them for
a quote to put threads into OS/9 for you, I am sure they will oblige.


*   email: cmaae47 @ imperial.ac.uk