• Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

Computer Notes

Library
    • Computer Fundamental
    • Computer Memory
    • DBMS Tutorial
    • Operating System
    • Computer Networking
    • C Programming
    • C++ Programming
    • Java Programming
    • C# Programming
    • SQL Tutorial
    • Management Tutorial
    • Computer Graphics
    • Compiler Design
    • Style Sheet
    • JavaScript Tutorial
    • Html Tutorial
    • Wordpress Tutorial
    • Python Tutorial
    • PHP Tutorial
    • JSP Tutorial
    • AngularJS Tutorial
    • Data Structures
    • E Commerce Tutorial
    • Visual Basic
    • Structs2 Tutorial
    • Digital Electronics
    • Internet Terms
    • Servlet Tutorial
    • Software Engineering
    • Interviews Questions
    • Basic Terms
    • Troubleshooting
Menu

Header Right

Home » Fundamental » OS » What are Multi Tasking, Multi Programming and Multi Threading
Next →
← Prev

What are Multi Tasking, Multi Programming and Multi Threading

By Dinesh Thakur

Multi programming: Multi-programming is the technique of running several programs at a time using time sharing. It allows a computer to do several things at the same time. Multi-programming creates logical parallelism. The concept of multi-programming is that the operating system keeps several jobs in memory simultaneously.

The operating system selects a job from the job pool and starts executing a job, when that job needs to wait for any i/o operations the CPU is switched to another job. So the main idea here is that the CPU is never idle Multi tasking: Multitasking is the logical extension of multi-programming.

The concept of multitasking is quite similar to multi-programming but difference is that the switching between jobs occurs so frequently that the users can interact with each program while it is running. This concept is also known as time-sharing systems. A time-shared operating system uses CPU scheduling and multi-programming to provide each user with a small portion of time-shared system. 

For example, let us say you are printing a document of 100 pages. While your computer is performing that, you still can do other jobs like typing a new document. So, more than one task is performed.
One of the main differences between multi-programming and multitasking is, “In multi-programming, a user cannot interact (everything is decided by OS, like picking the next program and sharing on time basis, etc…) where as in multitasking, a user can interact with the system (you can type a letter, while the other task of printing is going on)”

Multi threading: An application typically is implemented as a separate process with several threads of control. In some situations a single application may be required to perform several similar tasks for example a web server accepts client requests for web pages, images, sound, and so forth. A busy web server may have several of clients concurrently accessing it. If the web server ran as a traditional single-threaded process, it would be able to service only one client at a time.

The amount of time that a client might have to wait for its request to be serviced could be enormous. So it is efficient to have one process that contains multiple threads to serve the same purpose. This approach would multi-thread the web-server process, the server would create a separate thread that would listen for client requests when a request was made rather than creating another process it would create another thread to service the request. To get the advantages like responsiveness, Resource sharing economy and utilization of multiprocessor architectures multi-threading concept can be used.

This type of programming helps when more than one client uses it. For example, let us take our DB. While I’m typing this post, there would be someone else, doing the same type of job. If DB is not having a multi-thread option, then not more than one person will be able to do the same job.

Multi-tasking means that the computer can work with more than one program at a time. For instance, you could be working with information from one database on the screen analyzing data, while the computer is sorting information from another database, while a spreadsheet is performing calculations on a separate worksheet. This is different from “multiple loading” of applications, also known as “context switching” or “task switching,” which is what happens when you use MultiFinder or System 7 on the Macintosh or the DOS task switcher. Context switching simply allows several applications to be open, but only one is working at a time. 

Actually, even in true multi-tasking, only one application is ever running at anyone instant. But because the computer automatically switches from one to the next so quickly, all the programs seem to run simultaneously. (With context switching, you decide when to shift from one program to another, by hitting a key or clicking the mouse.) Each individual program runs slower, of course, since each gets only a portion of the computer’s time, and since some time is lost in the process of going from program to program.

Ideally, multi-tasking capability is built into your computer’s operating system. DOS has absolutely no multi-tasking features, but DESQ view and Windows provide it somehow.

 The Mac does allow cooperative multi-tasking in its background printing feature, which allows one document to print while you work on another. The word “multi-tasking” is often written without the hyphen; I have kept the hyphen in the word specifically to make it easier to read.

You’ll also like:

  1. Programming Practices with Top-Down, Bottom-Up, Structured Programming, and Information Hiding
  2. What is a Multi-User Operating System?
  3. Multi-Dimesional Array
  4. Multi-Dimensional Arrays in c++
  5. Multi-point Architectures
Next →
← Prev
Like/Subscribe us for latest updates     

About Dinesh Thakur
Dinesh ThakurDinesh Thakur holds an B.C.A, MCDBA, MCSD certifications. Dinesh authors the hugely popular Computer Notes blog. Where he writes how-to guides around Computer fundamental , computer software, Computer programming, and web apps.

Dinesh Thakur is a Freelance Writer who helps different clients from all over the globe. Dinesh has written over 500+ blogs, 30+ eBooks, and 10000+ Posts for all types of clients.


For any type of query or something that you think is missing, please feel free to Contact us.


Primary Sidebar

Operating System

Operating System & Types

    • Operating System - Software
    • Operating System - Definition
    • Operating System - Types
    • Operating System - Functions
    • Operating System - Characteristics
    • Operating System - Services
    • Operating System - Multiprogramming
    • Operating System - Time Sharing
    • Operating System - Multiprocessor
    • Operating System - Distributed
    • Operating System - Batch Processing
    • Operating System - Real-Time
    • Operating System - Multitasking
    • Operating System - Network(NOS)
    • Operating System - Multi-User
    • Operating System - Batch
    • Operating System - External Structure
    • Operating System - MS-DOS
    • Operating System - System Software
    • Operating System - Kernel
    • Operating System - Main Functions

Operating System Scheduling

    • Operating System - Scheduling
    • Operating System - Disk Scheduling
    • Operating System - Process
    • Operating System - Round Robin
    • Operating System - CPU Scheduling
    • Operating System - (FCFS) Scheduling
    • Operating System - Preemptive
    • Operating System - Priority Scheduling

Memory

    • Operating System - Memory
    • Operating System - Cache Memory
    • Operating System - Virtual Memory
    • Operating System - Memory Partition

Operating System - What is

    • Operating System - Booting
    • Operating System - Files & Types
    • Operating System - Shell
    • Operating System - Real Time System
    • Operating System - Demand Paging
    • Operating System - Multi Tasking
    • Operating System - Parallel Processing
    • Operating System - Swapping
    • Operating System - Spooling
    • Operating System - App Software
    • Operating System - Dead Lock
    • Operating System - Batch Processing
    • Operating System - Semaphore
    • Operating System - Variable Partitioned
    • Operating System - File System
    • Operating System - Cipher Text
    • Operating System - OS/2
    • Operating System - CONFIG.SYS
    • Operating System - Segmentation
    • Operating System - CLI

Some Other Tutorials

  • OS - Application Vs System Software
  • OS - Commands in DOS
  • OS - Process States
  • OS - System Components
  • OS - Inter-Process
  • OS - Computer Languages
  • OS - System Architecture
  • OS - Directory Structure
  • OS - Process Management
  • OS - Deadlock Prevention
  • OS - Thread Vs Process
  • OS - File Sharing

Other Links

  • Operating System - PDF Version

Footer

Basic Course

  • Computer Fundamental
  • Computer Networking
  • Operating System
  • Database System
  • Computer Graphics
  • Management System
  • Software Engineering
  • Digital Electronics
  • Electronic Commerce
  • Compiler Design
  • Troubleshooting

Programming

  • Java Programming
  • Structured Query (SQL)
  • C Programming
  • C++ Programming
  • Visual Basic
  • Data Structures
  • Struts 2
  • Java Servlet
  • C# Programming
  • Basic Terms
  • Interviews

World Wide Web

  • Internet
  • Java Script
  • HTML Language
  • Cascading Style Sheet
  • Java Server Pages
  • Wordpress
  • PHP
  • Python Tutorial
  • AngularJS
  • Troubleshooting

 About Us |  Contact Us |  FAQ

Dinesh Thakur is a Technology Columinist and founder of Computer Notes.

Copyright © 2025. All Rights Reserved.

APPLY FOR ONLINE JOB IN BIGGEST CRYPTO COMPANIES
APPLY NOW