[Nottingham] Cooperating Operating Systems

Jason Cozens jason.cozens at computer.org
Tue Apr 27 11:58:42 UTC 2010


Hi,

It's a while since I posted anything here but I'm wondering whether it
would be possible to give an update on the work I presented in August
2008.

I've started defining the outlines of what I call COS -
Cooperating Operating Systems.

I've been making some notes on a wiki at http://greatc.wikia.com.

This includes an outline for some presentations at:

http://greatc.wikia.com/Presentation001

and

http://greatc.wikia.com/Presentation002

As a very rough summary the design started by asking the question if
there was an unlimited number of processors what would an operating
system need to do?

If we assume that a process runs on its own processor, then when a
process wants to fork another process it needs to locate a free
processor. It is the operating system's function to find an available
processor. What is required is something like an employment agency,
that for each free processor holds the processor's contact details
(Processor Id). When a process forks it requests a processor Id from
the OS and then communicates with this processor and launches the
forked process.

We want forking to be lightweight and fast, so for every application
processor we attach a very small OS processor called a Q-Cell. Every
Q-Cell holds a copy of the free processors. When a process forks the
Q-Cell associated with the process broadcast a REQUEST message
identifying the processor Id that will be used. If the broadcast is
successful all Q-Cells update their processor lists and the processor
Id is passed to the forking process.

The Q-Cells communicate using a separate network to the inter process
communication network. In a stable environment that does not require
acknowledgements the time to fork a process is approximately the time
to broadcast a message.

If the rate of process forking is low compared to the time for a
Q-Cell to broadcast, this scales well to 1,000+ processors. With a
modification to the broadcast network structure it should be scalable
to 1,000,000+ processors.

This is only a very short summary of what I have been working on
but I'd be interested to know if there is any interest in these ideas
and in discussing the assumptions I'm making.

Cheers,
Jason.



More information about the Nottingham mailing list