Jamaica /
OperatingSystemThe referees' comments in response to our recent TACO submission have prompted me to open a discussion of Operating System options for Jamaica. I can think of 3 significant issues to consider: 1) Do we need a full OS on Jamaica, or do we envisage it as having a conventional front-end processor? 2) Do we want to multiprogram on Jamaica? 3) Do we want Virtual Memory on Jamaica? Here are my (CCK's) (rather hastily considered) thoughts on these questions. Please feel free to add others .... 1) I don't want to worry about a whole load of boring issues and would be very happy to have a conventional front-end processor. I envisage Jamaica as a parallel compute-server, rather than an entirely general purpose machine. Certainly that should be sufficient to prove the usefulness of the parallelisation techniques, etc. However we still need to consider in detail what the interface will be between the front-end and the Jamaica system. That itself will throw up some questions. To me this isn't a matter of principle, just pragmatics. When we have demonstrated that Jamaica is the way to build processors, we can look at absorbing those functions that we now delegate to the front-end; in the meantime, they are not important. 2) Although it is our goal to demonstrate speed-up of individual applications, it seems inevitable that multiprogramming should happen - and that we should cater for it. In doing this, note that separate processes share the JVM, rather than each having their own. It is just that now we have more than one process-initiating thread. Memory allocation is also shared - and probably garbage collection should be concurrent. Top-level scheduling probably needs the same sort of information about the loading of the system as other parts of the adaptive system .... 3) I put VM last because it is clear that the answers above seriously affect the context in which to consider this question. I think the answer is that we DO want some way of over-allocating memory, and of freeing-up rarely used memory, and therefore there is a use for VM. But it is not related to separating memory spaces between threads, or even processes. |