explain the difference between multiprogramming and multitasking
Answers
Answer:
What is Multiprogramming?
Multiprogramming is the ability for more than one user to use the computer at a time using a single CPU. The idea is to effectively utilize the processor to create multiple ready-to-run processes with each process belongs to different user. If the current process stalls for some reason, because it has to wait for some particular event, the operating system allocates the CPU to another process in the queue. The whole operation is facilitated by multiprogramming operating systems to maximize CPU utilization so that to reduce the idle time of the CPU. The idea is to keep the CPU busy for as long as possible.
What is Multitasking?
Multitasking means concurrent execution of multiple processes by one user on the same computer utilizing multiple CPUs. For example, in a multitasking operating system, you may work on a word document with one program while listening to music as the same time with another program. Multitasking is effective when programs on a compute require a high degree of parallelism. It is based on the concept of time sharing because multiple processes or tasks can be switched accordingly at a regular interval of time, so that the users get the idea that they are performed concurrently.
Difference between Multiprogramming and Multitasking
Terminology of Multiprogramming and Multitasking
The term multiprogramming is a rudimentary form of parallel processing meaning multiple processes run concurrently at the same time on a single processor. The term is used in modern operating systems when multiple programs or processes run on a single processor and it’s the job of the OS to manage all the processes effectively and efficiently. Multitasking refers to the ability of the OS to execute multiple tasks at a time using multiple CPUs. It basically uses two or more CPUs within a single system for allocation of tasks which share common resources including CPU and memory.
Concept of Multiprogramming and Multitasking
Multiprogramming is based on the concept of context switching which is a standard procedure that facilitates switching of the CPU from one process of thread to another utilizing a single CPU. It stores the state of an active process for the CPU in the Process Control Block (PCB) so that the process resumes from the same state. Multitasking, on the other hand, is based on the concept of time sharing which is a technique used to provide each user with a portion of the time-shared system allowing users to share the same resources simultaneously. It’s a logical extension of multiprogramming.
Working
Both the terms share almost the same meaning and are the common terms used in modern operating systems, but with different objectives. The concept of multiprogramming is based solely on the ability of the computer to store programs or instructions for a longer period of time in order to reduce the CPU idle time. The process allocation is done via scheduling algorithm. The OS executes part of one program at a time, followed by a part of another program and so on. In a multitasking OS, the CPU allows multiple processes to run simultaneously via time sharing and executes them accordingly.
Objective
In multiprogramming operating system, the idea is to provide complete transparency between the users as multiple users share the same CPU which rapidly switches from one user to another to improve CPU utilization. It allows for efficient and effective allocation of resources without user interaction with the system. The OS executes part of a program followed by another program, but it appears all the programs are executed simultaneously. In multitasking operating system, users are replaced by programs or processes and each process takes a fair slice of the CPU time. The process occurs so fast it appears multiple tasks are executing simultaneously.
Answer:
Multiprogramming is a rudimentary form of parallel processing in which several programs are run at the same time on a uniprocessor. ...
Multitasking has the same meaning of multiprogramming but in a more general sense, as it refers to having multiple (programs, processes, tasks, threads) running at the same time...