What allows parts of multiple programs to reside in memory simultaneously?

In this article, you will learn about the multiprogramming operating system, its working, advantages, and disadvantages.

What is the Multiprogramming Operating System?

A multiprogramming operating system may run many programs on a single processor computer. If one program must wait for an input/output transfer in a multiprogramming operating system, the other programs are ready to use the CPU. As a result, various jobs may share CPU time. However, the execution of their jobs is not defined to be at the same time period.

When a program is being performed, it is known as a "Task", "Process", and "Job". Concurrent program executions improve system resource consumption and throughput as compared to serial and batch processing systems.

The primary goal of multiprogramming is to manage the entire system's resources. The key components of a multiprogramming system are the file system, command processor, transient area, and I/O control system. As a result, multiprogramming operating systems are designed to store different programs based on sub-segmenting parts of the transient area. The resource management routines are linked with the operating system core functions.

Types of the Multiprogramming Operating System

There are mainly two types of multiprogramming operating systems. These are as follows:

  1. Multitasking Operating System
  2. Multiuser Operating System

Multitasking Operating System

A multitasking operating system enables the execution of two or more programs at the same time. The operating system accomplishes this by shifting each program into and out of memory one at a time. When a program is switched out of memory, it is temporarily saved on disk until it is required again.

Multiuser Operating System

A multiuser operating system allows many users to share processing time on a powerful central computer from different terminals. The operating system accomplishes this by rapidly switching between terminals, each of which receives a limited amount of processor time on the central computer. The operating system changes among terminals so quickly that each user seems to have continuous access to the central computer. If there are many users on a system like this, the time it takes the central computer to reply can become more obvious.

Working of the Multiprogramming Operating System

Multiple users can accomplish their jobs simultaneously in the multiprogramming system, and it can be stored in the main memory. When one program is engaged in I/O operations, the CPU may deliver time to various programs while sitting in idle mode.

When one application is waiting for an I/O transfer, another is ready to use the processor at all times, and numerous programs may share CPU time. All jobs are not run simultaneously, but there could be numerous jobs running on the processor at the same time, and parts of other processes being executed first, then another segment, etc. As a result, the overall goal of a multiprogramming system is to keep the CPU busy until some tasks are available in the job pool. Thus, the numerous programs can run on a single processor computer, and the CPU is never idle.

Examples of Multiprogramming Operating System

There are various examples of multiprogramming operating systems, including download apps, transfer data, MS-Excel, Google Chrome, Firefox browser, and many more apps. Other examples are Windows O/S, UNIX O/S, Microcomputers such as XENIX, MP/M, and ESQview.

Advantages and Disadvantages of Multiprogramming Operating System

There are various advantages and disadvantages of the multiprogramming operating system. Some of the advantages and disadvantages are as follows:

Advantages

There are various advantages of the multiprogramming operating system. Some of the advantages are as follows:

  1. It provides less response time.
  2. It may help to run various jobs in a single application simultaneously.
  3. It helps to optimize the total job throughput of the computer.
  4. Various users may use the multiprogramming system at once.
  5. Short-time jobs are done quickly in comparison to long-time jobs.
  6. It may help to improve turnaround time for short-time tasks.
  7. It helps in improving CPU utilization and never gets idle.
  8. The resources are utilized smartly.

Disadvantages

There are various disadvantages of the multiprogramming operating system. Some of the disadvantages are as follows:

Following are the different properties of an Operating System. This tutorial will explain these properties in detail one by one:

  1. Batch processing
  2. Multitasking
  3. Multiprogramming
  4. Interactivity
  5. Real Time System
  6. Distributed Environment
  7. Spooling

Batch processing

Batch processing is a technique in which an Operating System collects the programs and data together in a batch before processing starts. An operating system does the following activities related to batch processing −

  • The OS defines a job which has predefined sequence of commands, programs and data as a single unit.

  • The OS keeps a number a jobs in memory and executes them without any manual information.

  • Jobs are processed in the order of submission, i.e., first come first served fashion.

  • When a job completes its execution, its memory is released and the output for the job gets copied into an output spool for later printing or processing.

What allows parts of multiple programs to reside in memory simultaneously?

Advantages

  • Batch processing takes much of the work of the operator to the computer.

  • Increased performance as a new job get started as soon as the previous job is finished, without any manual intervention.

Disadvantages

  • Difficult to debug program.
  • A job could enter an infinite loop.
  • Due to lack of protection scheme, one batch job can affect pending jobs.

Multitasking

Multitasking is when multiple jobs are executed by the CPU simultaneously by switching between them. Switches occur so frequently that the users may interact with each program while it is running. An OS does the following activities related to multitasking −

  • The user gives instructions to the operating system or to a program directly, and receives an immediate response.

  • The OS handles multitasking in the way that it can handle multiple operations/executes multiple programs at a time.

  • Multitasking Operating Systems are also known as Time-sharing systems.

  • These Operating Systems were developed to provide interactive use of a computer system at a reasonable cost.

  • A time-shared operating system uses the concept of CPU scheduling and multiprogramming to provide each user with a small portion of a time-shared CPU.

  • Each user has at least one separate program in memory.

What allows parts of multiple programs to reside in memory simultaneously?
  • A program that is loaded into memory and is executing is commonly referred to as a process.

  • When a process executes, it typically executes for only a very short time before it either finishes or needs to perform I/O.

  • Since interactive I/O typically runs at slower speeds, it may take a long time to complete. During this time, a CPU can be utilized by another process.

  • The operating system allows the users to share the computer simultaneously. Since each action or command in a time-shared system tends to be short, only a little CPU time is needed for each user.

  • As the system switches CPU rapidly from one user/program to the next, each user is given the impression that he/she has his/her own CPU, whereas actually one CPU is being shared among many users.

Multiprogramming

Sharing the processor, when two or more programs reside in memory at the same time, is referred as multiprogramming. Multiprogramming assumes a single shared processor. Multiprogramming increases CPU utilization by organizing jobs so that the CPU always has one to execute.

The following figure shows the memory layout for a multiprogramming system.

What allows parts of multiple programs to reside in memory simultaneously?

An OS does the following activities related to multiprogramming.

  • The operating system keeps several jobs in memory at a time.

  • This set of jobs is a subset of the jobs kept in the job pool.

  • The operating system picks and begins to execute one of the jobs in the memory.

  • Multiprogramming operating systems monitor the state of all active programs and system resources using memory management programs to ensures that the CPU is never idle, unless there are no jobs to process.

Advantages

  • High and efficient CPU utilization.
  • User feels that many programs are allotted CPU almost simultaneously.

Disadvantages

  • CPU scheduling is required.
  • To accommodate many jobs in memory, memory management is required.

Interactivity

Interactivity refers to the ability of users to interact with a computer system. An Operating system does the following activities related to interactivity −

  • Provides the user an interface to interact with the system.
  • Manages input devices to take inputs from the user. For example, keyboard.
  • Manages output devices to show outputs to the user. For example, Monitor.

The response time of the OS needs to be short, since the user submits and waits for the result.

Real Time System

Real-time systems are usually dedicated, embedded systems. An operating system does the following activities related to real-time system activity.

  • In such systems, Operating Systems typically read from and react to sensor data.
  • The Operating system must guarantee response to events within fixed periods of time to ensure correct performance.

Distributed Environment

A distributed environment refers to multiple independent CPUs or processors in a computer system. An operating system does the following activities related to distributed environment −

  • The OS distributes computation logics among several physical processors.

  • The processors do not share memory or a clock. Instead, each processor has its own local memory.

  • The OS manages the communications between the processors. They communicate with each other through various communication lines.

Spooling

Spooling is an acronym for simultaneous peripheral operations on line. Spooling refers to putting data of various I/O jobs in a buffer. This buffer is a special area in memory or hard disk which is accessible to I/O devices.

An operating system does the following activities related to distributed environment −

  • Handles I/O device data spooling as devices have different data access rates.

  • Maintains the spooling buffer which provides a waiting station where data can rest while the slower device catches up.

  • Maintains parallel computation because of spooling process as a computer can perform I/O in parallel fashion. It becomes possible to have the computer read data from a tape, write data to disk and to write out to a tape printer while it is doing its computing task.

    What allows simultaneous processing of multiple tasks within a computer?

    SIMD, or single instruction multiple data, is a form of parallel processing in which a computer will have two or more processors follow the same instruction set while each processor handles different data.

    When multiple programs are resident in memory?

    Multiprogramming. Sharing the processor, when two or more programs reside in memory at the same time, is referred as multiprogramming.

    Which allows more than one program at the same time?

    multitasking: Allows more than one program to run concurrently. multithreading: Allows different parts of a single program to run concurrently. real time: Responds to input instantly.

    What helps a computer to execute multiple instructions simultaneously?

    The simultaneous execution of two or more instructions is called Multiprocessing..
    Multiprocessing is the use of two or more central processing units (CPUs) within a single computer system..