multitasking, multiprogramming, and multithreading

Multiprogramming:

  • 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
  • creates logical parallelism
  • the concept of multiprogramming 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 cpu is never idle.

Multiprogramming with two programs

Multitasking:

  • multitasking is the logical extension of multi-programming
  • 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. This concept is also known as time-sharing systems.
  • a time shared operating system uses cpu scheduling and multiprogramming to provide each user with a small portion of time-shared system.

Multithreading:

  • 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 multithread 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 advantage like responsiveness, resource sharing economy and utilization of multiprocessor architectures multithreading concept can be used.

Leave a Reply

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