When it
comes to computing, there are 3 important tasks that are inter-related
concepts namely multi-programming, multitasking and multi-threading.
What is Multitasking?
- This
has actually emerged out of the need of multitasking since while the
system performed one task a lot of time was wasted.
- As their needs grew,people wanted the computer to perform many tasks at the same time. Multi-tasking is what we call it.
- Here, multiple tasks or processes are carried
out simultaneously.
- The common processing resources i.e., the main memory
and the CPU are shared by these processes.
- If the system has only one CPU
to work with, then it can only run one task at a time.
- Such systems seek
to multi-task by scheduling all the processes required to be carried
out.
- It runs one task and the other one waits in the pipeline.
- The CPU is reassigned to all the tasks
turn by turn and this is termed as a context switch.
- When this happens
very frequently, it gives an illusion that the processes are being
executed in parallel.
- There are other systems called multi-processor
machines which have more than one CPU and can perform a number of tasks
greater than the number of CPUs.
- There are a number of scheduling
strategies that might be adopted by the operating systems and they are:
Ø
Multi
– programming
Ø
Time
– sharing
Ø
Real
– time systems
What is Multi-Programming?
- Earlier we had very slow peripheral devices and therefore the CPU time was
a luxury and so expensive.
- Whenever a program was being executed for
accessing a peripheral, the CPU was to keep waiting for the peripheral to
finish with processing the data.
- It is very inefficient.
- Then
came the concept of multi–programming which was a very good solution.
- When the program reached the waiting status, its context was stored in the
memory and the CPU was given some other program to execute.
- This
processing continued till all the processes at hand were completed.
- Later,developments such as VMT or virtual machine technology and virtual memory
greatly increased the efficiency of the multi – programming systems.
- With
these two technologies the programs were able to make use of the OS and
the memory resources just as they were being used by the currently
executing programs.
- However, there
is one drawback with multi–programming which is that is does not
guarantees that all programs will be executed in a timely manner.
- But then
also it was of a great help in processing multiple batches of programs.
What is Multi-threading?
- With
multi–tasking a great improvement was seen in the throughput of the
computer systems.
- So programmers found themselves implementing programs in
sets of cooperating processes.
- Here, all the processes were assigned
different tasks like one would take input, other one would process it and
a third one would write the output to the display.
- But for this, there was
a requirement of tools that allowed an efficient exchange of the data.
- Threads
were an outcome of the idea that the processes can be made to cooperate
efficiently if their memory space is shared.
- Therefore, threads can be
defined as the processing running in a memory context that is same for
all.
- These threads are said to be light – weight since there is no need
for a change of memory context for switching between them.
- The scheduling
followed here is of the preemptively.
No comments:
Post a Comment