Multiprogramming is the allocation of more than one concurrent program on a computer system and its resources. Multiprogramming allows using the CPU effectively by allowing various users to use the CPU and I/O devices effectively. Multiprogramming makes sure that the CPU always has something to execute, thus increases the CPU utilization. On the other hand, Time sharing is the sharing of computing resources among several users at the same time. Since this will allow a large number of users to work in a single computer system at the same time, it would lower the cost of providing computing capabilities.
What is Multiprogramming System?
Multiprogramming is the fast switching of CPU between several programs. A program is generally made up of several tasks. A task usually ends with some request to move data which would require some I/O operations to be executed. Multitasking was commonly done to keep the CPU busy, while the currently running program is doing I/O operations. Compared to other executing instructions, I/O operations are extremely slow. Even if a program contains a very small number of I/O operations, most of the time taken for the program is spent on those I/O operations. Therefore, using this idle time and allowing another program to utilize the CPU at that time will increase the CPU utilization. Multiprogramming was initially developed in late 1950s as a feature of operating systems and was first used in mainframe computing. With the introduction of virtual memory and virtual machine technologies, the use of multiprogramming was enhanced.
What is Time Sharing System?
Time sharing, which was introduced in 1960s, is the sharing of computing resources among several users at the same time. In time sharing systems, several terminals are attached to a single dedicated server having its own CPU. Actions/commands executed by the operating system of a time sharing system have a very short time span. Therefore the CPU is assigned to users at the terminals for a short time period, thus a user in a terminal gets the feeling that she has a CPU dedicated to her behind her terminal. The short time period that a command is executed on a time sharing system is called a time slice or a time quantum. With the development of internet, time sharing systems have become more popular since expensive server farms could host a very large number of customers sharing the same resources. Since the websites operate mainly in bursts of activity followed by periods of idle time, the idling time of one customer could be used effectively by the other, without any of them noticing the delay.
What is the difference between Multiprogramming System and Time Sharing System?
Main difference between multiprogramming and time sharing is that multiprogramming is the effective utilization of CPU time, by allowing several programs to use the CPU at the same time but time sharing is the sharing of a computing facility by several users that want to use the same facility at the same time. Each user on a time sharing system gets her own terminal and gets the feeling that she is using the CPU alone. Actually, time sharing systems use the concept of multiprogramming to share the CPU time between multiple users at the same time.