New deffinitions for RealTime, MultiTasking and MicroKernel.
Posted: Mon Jul 09, 2007 1:22 pm
I posted this in a newsgroup in response to a guy who asked to explain him some definitions of Multiprogramming and Multitasking that he had read somewhere...
* Multitasking is the opposite of real-time;
* Micro-kernels are the Rococo of multi-taskness;
* Micro-kernels are the opposite of real-time...
JJ
Three important correlations:I, in comp.os.coherent, wrote:arash.zaryab AT gmail DOT com had written:
> 2-"Multitasking (i.e., time sharing) is a type of multiprogramming
> that is useful for inter-active systems". (How? and Why?)
Multitasking is useful for inter-active systems (and not so useful for
non-interactive ones) because it allows one program to respond to the user
(ideally, in a real-time manner, this is, as soon as the request is made,
the system responds on it (and concludes it before doing anything else, in
case of hard real-time)) while another one is waiting for the kernel, the
hardware or another program (through the kernel, of course...).
Multitasking is not needed for e.g. your digital wristwatch, because
watches do not require interactiveness. They work alone.
Multitasking can to some extend be seen as the opposite of real-time.
That's because if the processor time is entirely distributed through
scheduling, then all the real-time performance gets killed.
In classical multi-tasking capable OS, the only code that is real-time is
that running in kernel mode.
If you have a micro-kernel with no interrupt handling capabilities (ok,
this doesn't exist because no one would code such a ****!), then you will
have an example of what I presented in the sentence before the above one.
That's because in a micro-kernel the drivers work in user-mode, and thus
additional work is needed to make sure that those drivers have some sort of
real-time responsivity. This additional work is not need in monolithic kernels.
So, micro-kernels can be seen as a radical state of multi-taskness: not
even the drivers are above other applications (that is, in terms of chances to control
the processor), but they are just like any other app.
> 1-Throughput is defined as the amount of work done per unit time.
> "The degree of multiprogramming in a computer system has direct
> influence on the throughput of the system".
I'm assuming that multiprogramming is really the same thing as multi-tasking...
If the time spent by a program while it waits for someone is not wasted but
instead is used by another program to do computations (work), then you are
able to increase the throughput of the system as a whole.
PS: Of course, just like everything, the perfect OS (if such a thing is
even possible) is a combination of all the above approaches, thus
equilibrating throughput and responsiveness, which are both good predicates...
JJ
* Multitasking is the opposite of real-time;
* Micro-kernels are the Rococo of multi-taskness;
* Micro-kernels are the opposite of real-time...
JJ