Whats the difference between multitasking, multiprogramming & multiprocessing
This comes regularly for my university OS exams and I can\'t find a good answer. I
Multitasking*(Time sharing)*:
Time shared systems allows many users to share the computer simultaneously.
Multiprogramming- Jobs to be executed are loaded into a pool. Some number of those jobs are loaded into main memory, and one is selected from the pool for execution by the CPU. If at some point the program in progress terminates or requires the services of a peripheral device, the control of the CPU is given to the next job in the pool. As programs terminate, more jobs are loaded into memory for execution, and CPU control is switched to another job in memory. In this way the CPU is always executing some program or some portion thereof, instead of waiting for a printer, tape drive, or console input
Multiprocessing - the simultaneous execution of two or more programs or instruction sequences by separate CPUs under integrated control
multitasking System - the concurrent or interleaved execution of two or more jobs by a single CPU.
Multiusers System - a computer system in which multiple terminals connect to a host computer that handles processing tasks.
Multiprogramming - This term is used in the context of batch systems. You've got several programs in main memory concurrently. The CPU schedules a time for each one.
I.e. submitting multiple jobs and all of them are loaded into memory and executed according to a scheduling algorithm. Common batch system scheduling algorithms include: First-Come-First-Served, Shortest-Job-First, Shortest-Remaining-Time-Next.
Multitasking - This is basically multiprogramming in the context of a single-user interactive environment, in which the OS switches between several programs in main memory so as to give the illusion that several are running at once. Common scheduling algorithms used for multitasking are: Round-Robin, Priority Scheduling (multiple queues), Shortest-Process-Next.
Multiprograming
Running more then one program with in an application to perform a certain task.
Example : In MS WORD, Writing in document and sending Email
Multitasking
Running more then one application to perform a certain task.
Example: listening Song, playing game, work in ms word, excel and other applications simultaneously
Multiprocessing
Running more then one instruction through a processor.
Example When create a file then computer takes Time and date default.
Multi-programming :-
More than one task(job) process can reside into main memory at a time. It is basically design to reduce CPU wastage during I/O operation , example : if a job is executing currently and need I/O operation . I/O operation is done using DMA and processor assign to some Other job from the job queue till I/O operation of job1 completed . then job1 continue again . In this way it reduce CPU wastage .
Multi -Tasking :-
In this type of OS multiple task(process) are performed concurrently (Concurrently does't mean that task executing exactly at same time instant ..as multitasking does't imply parallelism ) . In this system a new task start before other task ended depend on CPU scheduling technique it uses && all processes share common resources .
Multi -Processing :-
Use 2 or more processor within single CPU . So task can execute in parallel .But some synchronization b/w them is needed .
Multi-programming :-
More than one task(job) process can reside into main memory at a time. It is basically design to reduce CPU wastage during I/O operation , example : if a job is executing currently and need I/O operation . I/O operation is done using DMA and processor assign to some Other job from the job queue till I/O operation of job1 completed . then job1 continue again . In this way it reduce CPU wastage .