Difference Between Multiprogramming, Multitasking, Multiprocessing and Multithreading

In this tutorial you will learn about difference between multiprogramming, multitasking, multiprocessing and multithreading.

Although these terms seems similar but there are some differences between them which are given below.

Multiprogramming

Multiprogramming is also the ability of an operating system to execute more than one program on a single processor machine. More than one task/program/job/process can reside into the main memory at one point of time. A computer running excel and firefox browser simultaneously is an example of multiprogramming.

 

Multiprogramming
Memory layout for Multiprogramming System

Multitasking

Multitasking is the ability of an operating system to execute more than one task simultaneously on a single processor machine. Though we say so but in reality no two tasks on a single processor machine can be executed at the same time. Actually CPU switches from one task to the next task so quickly that appears as if all the tasks are executing at the same time. More than one task/program/job/process can reside into the same CPU at one point of time.

 

Multitasking
Multitasking System

Multiprocessing

Multiprocessing is the ability of an operating system to execute more than one process simultaneously on a multi processor machine. In this, a computer uses more than one CPU at a time.

 

Multiprocessing
Multiprocessing System

Multithreading

Multithreading is the ability of an operating system to execute the different parts of a program called threads at the same time. Threads are the light wait processes which are independent part of a process or program. In multithreading system, more than one threads are executed parallely on a single CPU.

Image Credits: TutorialsPoint, National Instruments

18 thoughts on “Difference Between Multiprogramming, Multitasking, Multiprocessing and Multithreading

  1. simran

    actually i wanted to ask that it’s written in multiprogramming that at a time two processess are handled by processor but at the same point in multitaking ,totally in contrast , saying no processor can work at same time rather working is simultaneous.
    i wanted to know the exact difference betwwen all these multiprogrammin multiprocesing multitasking

    Reply
    1. Gurmeet

      multitasking n multiprogramming both Are same because both use single processor but the only difference is that in multiprogramming more than one job can reside in main memory and on the other hand in multitasking cpu switches so quickly among jobs that it seems all are in mamory but cpu just switches
      only one job can reside in main memory

      Reply
    2. GauravDwid

      “””Multiprogramming””””” is the technique of running “””””SEVERAL PROGRAMS””””””” at a time using timesharing.It allows a computer to do several things at the same time.
      While
      “””Multitasking””””” is the logical extension of multiprogramming .The concept of multitasking is quite similar to multiprogramming but difference is that the “””””SWITCHING BETWEEN JOBS”””””””” occurs so frequently that the users can interact with each program while it is running..

      Reply
    3. DHARMPAL CHAUDHARY

      Hello,
      Actually the multiprogramming is an abstract and it is implements based on multitasking,multithreading ,and swapping between main memory and secondary memory………………….It,s all about single processor …………………………………………….
      in multiprogramming only one program run at a time and they share same resources and internally it can be implemented by multitasking ,multithreading ,and swapping between main memory and secondary memory

      and multiprocessing is not possible in single processor ………..one processor can run only one process at a time…….so in multiprocessing for running n process we required n processor and they will run parallely (simultaneously).

      Now, I think you both are clear

      Reply
  2. Charly

    Hi friends, from my opinion
    – what was before multiprogramming? Computers operated by operators feeding program and data to the I/Os of the computer (cards with 80 columns, tapes and disc cartridges) with results to disk cartridges and tapes and printers. One task finished – lets start the next… My first job for some time in the early 1970s (IBM 360).
    – multiprogramming is the ability have more than one exeutable program in memory. A scheduler assigns time slices sequentially to those tasks (and or users) that are ready for processing. Most likely, author(s) have had those timesharing computers of the 1970s in mind.
    – multitasking: 1st line is wrong and better explained in the 2nd. Multitasking needs capabilities of above, but the scheduler is aware of priorities. Still same single CPU, which can of course NOT serve more than one task at any given time.
    – multiprocessing: I agree with these few lines.
    – multithreading: only agree to the very first line.
    End of theory: my computer is a 5-year old quadcore Intel-based one with strong graphics. I use it for video processing, input is H.264 video (HD) and separate audio channels, output is .mp4 and DVDs. With inital 32-bit application program, up to 4GB of memory was used, CPU cores were utilized in the range of 5 to 30%. New license, 64-bit application program utilizes more memory and thanks to CUDA, rendering process is faster than viewing the result (1 hr DVD now rendered in less than 1 hr).
    Regards
    Charly

    Reply
  3. RAHIL

    Still I am not getting the main difference between the multiprogramming and multitasking.
    Both seems like similar to each other.

    Reply
  4. Amit Jain

    Guys,
    In multiprogramming, more than one program lies in the memory i.e. in terms of operating system but only one program is executed at one time, example- we open word, excel, email, internet explorer at the same time. But we will be using only one of them at a time like either we’l be writing mail or typing in word or entering data in excel or googling something on IE.

    But in multi tasking, multiple processes will be running at the same point of time like listening music on media player and parallely googling something on internet explorer.
    Usually, CPU processes only one task at a time but the switching of CPU between the processes (also known as Context Switching) is so fast that it looks like CPU(or processor) is executing multiple processes at a time.

    Reply
    1. Tejaswini

      I think Amit you gave correct answer.. It is quite related to exact differene between them..

      Reply
      1. kiran thimmappa

        The main difference is of-course how it is implemented internally.
        Meaning, multi-programming has all jobs stored in the memory already and multi-tasking has only 1 task stored in memory at a given point of time. So multi-programming works out much faster than multi-tasking as it doesnt need to do the extra context switch between jobs.
        So, which one to choose now ?
        Multi-programming is employed when memory is not a constraint, but time is.
        Multi-tasking is employed when memory is a constraint.

        Reply
  5. gunjan khare

    multi-tasking is a part of multi-programming.
    in multi-programming os , os switches the cpu from one process to another process.
    that switching is called the context switching.
    according to the way of context switching ..we divide multi-programming os into 3 parts.
    1) multi-programmed os
    2) multi-tasking os
    3)time sharing os

    in multi-tasking , swiching is done according to the users.
    nd in time-sharing, switching is done according to time quantum.
    nd in multi-programmed, switching is done according to process’s CPU nd I/O instruction.

    Reply
  6. Dennis

    Explain multi programming and multi processing and the difference between the two.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *