Doesn't apply. If they modified Linux to support their system that would be covered, but if they layered something on top, then not.
Doesn't apply. If they modified Linux to support their system that would be covered, but if they layered something on top, then not.
They could put the base OS under GPL and their real stuff layered over that. Just like Apple did. In fact, they could have made Vista over Darwin, and probably should have. That would have at least kept the gooey bits out of the base OS.
Exactly what QNX does. Except it has a loose-coupled processor model as the base. It works, and can exploit, tight-coupled machines too. It runs a kernel process of 15 KILO bytes on each processor, and this supports the message passing core, process/thread scheduling, signals, memory management, and the bottom half of nameservice.
This nameservice is where you find where the file systems, guis etc reside. You see, they can; with some support from the process, migrate to different places.
The _only_ critical component is the nameservice, and this can be backed up and migrated too. So, it is indeed possible to have a QNX cluster ("OS") running for longer than any component part has even existed.
A system that is to run on thousands of processors must adhere to similar design principles. Microkernel by "need to have" principles. Totally distributed, no core parts. Able to work well without having shared memory access, but also able to use it if available. No unreplacable "core" or "Boss" cpu. And only a need-to-have loading of this processor to bootstrap dictionaries of what services are running on the cluster.
I wouldn't see it as unrealistic to run QNX clusters with tens of thousands of processors, in clusters of 32/64 etc with tight coupling; so they can run file system, network, graphics etc sybsystems there.
I have even seen QNX workgroup clusters where all the machines in the workgroup actually ran the same OS, and the system looked to user processes as it it was a large system with many graphics terminals.
-- mrr
Yes it was a Sequent.
But your idea is to have the Boss CPU have control of the whole system; if it does, then the other CPUs cannot run the device drivers without the Boss knowing about it. Having the control of the system means that the scheduling for I/O and memory management has to be done by the Boss, not the other CPUs. Thus, when a slave CPU needs any resources, it has to ask the Boss for it. This will cause the system to grind down to almost a halt because the other CPUs will be in a constant wait state waiting for the Boss to service their requests.
/BAH
We didn't have to think about it; that was the situation with our master/slave implementation.
There was a Datamation article written by Alan Wilson about our SMP implementation. I have no idea how you could find it online but it should be somewhere out there. My hardcopy is packed in one of my unpacked boxes. It might be a good idea to read it if you can find it.
/BAH
/BAH
reality.
hardware of
cores
(data)
The best use of an excess of compute power is to restructure something that works fine as is?
Yep. :-(
/BAH
then the biz has improved a tad. However, those engineers still don't know how to beat up a system like a timesharing monitor can.
/BAH
{snip}
It uses round-robin. The only priority interrupt on the OS core needs is power on reset.
OS core tells process on core-A to pause. Any process on core-B is told to stop. Sub-OS on core-B is told to accept new app. Sub-OS on core-A is told to copy app's data and code to core-B's areas. When copy complete sub-OS on core-B is told to run Appl. Sub-OS on core-A is placed in waiting state or what ever is needed.
You have a main pool and sub-pools for each core. The cores only request more memory from the main pool when their sub-pool is empty.
Main pool in OS core. Sub-pool one on each core.
Yes but humans do a lot of silly things.
Andrew Swallow
itself
to
CPUs,
apps
each
cache.
same=20
ion.html
Let's see, gamers are always compute hungry, they will drive the market. Spice, 3D modeling and other engineering applications are niche markets and will remain so. Office applications cannot use 1 GHz processors effectively, so multi GHz and Multicore are wasted on them, just more idle time (Where do you think the impetus for all the eye-heroin comes from?).
And did you notice academia's decade (and more) long lack of much of anything useful to show for it? A lot like AI. Computing academia's darling products just don't seem to be able to find usefulness in the real world.
DEC politics (and that was a RPITA) demanded that we publish support for 3. We had a customer site who ran with 5. There was a limit, due to the width of a field used in the monitor's data base, of 8 because the field was only 8 bits wide...or was it 6?...can't remember.
One of the things on my Todo list is to get a scan of the picture JMF had of the system configuration of that 5-CPU system. You need the time stamp for this stuff; early 80s.
/BAH
Right. When I crashed it, I was trying to get both running something. Didn't work well at all.
/BAH
Yep. Completely and utterly missed it.
/BAH
Pseudocode is a third generation language that does not compile. By its very nature pseudocode is only suitable for: a. acting as a design aid for assembler programs. b. documenting the algorithm used by an assembler program. Note. When debugging the programmer needs to be able to read the assembler code. The company standards manual should contain warnings to assume the psedocode is a lie. c. A teaching aid. The students translate the pseudocade into C, COBOL or Fortran.
Andrew Swallow
Yes but you don't seem to want to investigate. For a real life implementation, read all of Morten's descriptions about his experiences and work ...I'd say over the last 8 years or so. Pay particular attention to the ones that appear to be about global politics, economies and work getting done in Asia.
/BAH
And that is a bad assumption. Think about networks or apps that exchange data.
Parallelism is a term that seems fall in the same category as "distributed processing" did in the early 80s.
Instead of relying on Wiki learn from those who actually did the work, not the ones who are entering descriptions in that place.
/BAH
In your setup, is there anything that requires one CPU to be the Boss? In our implementation, the wallclock time was one datum.
/BAH
NOpe. There also has to be a priority interrupt mechanism so that the other CPUs can get the Boss' attention. There has to be a way to do that. Usually it has to involve some kind of memory which contains the data required to 1. identify who called 2. identify what has to be done 3. have the address of where the caller expects to have the answer and 5. ring the caller back to say actions completed.
HOW!!!!?
And how is all this communication between the CPUs done? Is there a common memory? Where is that? Is way off in real core^Wdratmemory or in some submemory system associated with all CPUs?
Man, now you have data base (we called them page maps and page map pages) that has to be read/written by each and every CPU.
The laws of physics don't change just because the new young snots are beginning to learn them.
c is slow.
/BAH
Acutally I consider them the test bed. They are wonderful about that kind of work.
Ptui. If those system owners were running an OS that gave them the ability to do more than one thing at a time, they'ld figure out ways to maximize their CPU resource usage.
I don't about that. Certainly the ones who keep touting trying to emulate human thinking fail. I still don't understand why anybody would want to build gear that emulated human-style thinking.
/BAH
Have something to add? Share your thoughts — no account required.
Ask the community — no account required