Date: Around 1999
I asked you a question once, and I was impressed by the quality
of your answer. I would like to continuely learn from you, and I hope
you would not refuse a eager student. Here is my question:
heard that today's computer can run many tasks " at the same time."
Are these tasks really running at the same time? If a computer is
running five tasks simultaneously, each task, if run by itself would
take one minute to run. In the first situation, all five tasks are
number crunches. In the second situation, all five tasks do a lot of
disk I/O. In the third situation, the five tasks do a mixture of
crunching and I/O. Which task set would take the least overall
time to run? Which task set the most? Why?
Waiting for your reply,
That is a great question.
That is another great question.
Let me define the two forms of multitasking. The first form, which is
most common is, preemptive multitasking. This is achieved by the OS of
the computer giving a program a given amount of time to get a task done.
If the program does not finish the task in this given amount of time, it
is forced to give up control of the CPU and then wait to the next time
it can use the CPU to finish it's task. The other form of multitasking
is cooperative multitasking. Cooperative multitasking is when the OS
gives the program full control of the CPU. With cooperative
multitasking, the current process or task has complete control and will
not allow any other processes to interrupt. This sounds like a good
process but it is the lesser of the two, most applications that run on a
server or a high performance computer are time sensitive, if they cannot
complete their tasks because another process is using 100% of the
processor, they will most likely fail and reduce the performance of the
system. One example of a preemptive OS is Windows NT. NT has the
ability to multitask/ multithread. And the ability to assign a higher,
lower, or real-time priority to the process to get it done with the most
Also noted in your question was the different cases on which task would
run quicker. It all depends on the equipment that your machine is
running. If you have the same platform and computer doing all these
tasks, I would say the number crunching would take the least amount of
time, but would affect other applications running hence making them
slower. Then the combination of disk I/O and number crunching would
take the second least amount of time, due to the fact that the computer
can rely more on the processor and memory over the delay of the disk
I/O. Concluding to take the most time would be a disk I/O due to the
fact that you have a physical limit in the speed of the disk in RPM and
servo access time and disk buffer size.
Thanks for using NEWTON!
Joe Noga MCP, N+
Argonne National Laborator
Click here to return to the Computer Science Archives
Update: June 2012