17 March 2013 9 10K Report

The standing definition of multiprocessing or multi-programming in operating systems is that they share processor time to a number of programs. When a computer has one processor, sharing time is logical and designing an OS to do so is also a logical way to go around providing multitasking capabilities.

However, in case we have a computer with more processors and/or a computer with multi-core processor(s) in its configuration, wouldn't it be logical to design an OS which combines the traditional shared time approach and the dedicated CPU thread approach, where one CPU handles one program and all of its instructions?

For example, say that we have a computer with two processors. We could execute two programs, one per core. These programs might also be task managers (which handle time sharing, for that specific core or CPU). This way, we could have independent task sets working parallel, but not exclusively like in traditional time sharing mode.

I know that there are operating system kernels that use this approach, but what I’d like to know is what is more efficient? Having a single manager share time on one or more CPUs, or having per CPU manager that shares time on the CPU which is assigned to it?

More Milan Tair's questions See All
Similar questions and discussions