Perhaps this is not the right forum to post this question and if it indeed is not, I am sorry. I tried to look up on the net/text books but could not really get convinced about the difference between a process and a task. or perhaps a better question is "whats the difference between multi processing and multi threading" (sorry for bold if it means something else than what I intended it to be.)
I thought, multiprocessing is ummmm well..... ability to schedule multiple processes(runing image of a program) based on some time management algorithm. And multi tasking is ........
lets say we have three process A, B and C, and CPU runs them each for say 10 units of time.
A needs 25 units of time to complete.
B needs 35 units of time to complete.
C needs 30 units of time to complete.
Lets say all the other factors remaining same, the order of execution by the CPU is A, B and C.
CPU allocates 10 units to A first and then B and then C and then completes one more cycle of the same. So A, B and C now require 5 units, 15 units and 10 units of time respectively.
A now has gets the CPU time and is done in 5 units of time. Now instead of resting for the next 5 units of time, CPU allocates this time to process B and then at the end of this A's allocated time, B has also completed 25 units. now the CPU allocates 10 units of time to B and B is done as well. (Multi tasking.) A picture could have explained it better.
Now the CPU allocates time to C and C is done too.
This is what I used to think till I started reading "Linux Kernel Programming". In the 3rd chapter, "Introduction to the kernel" (near fig 3.1) I read something which has me confused totally about the same.
Can someone clarify this please?
Thanks,
Anoop.