Q1. What are the essential properties of Time Sharing Operating System.
Ans. Multiprogrammed, batched systems provided an environment where the various system resources (for example, CPU, memory, peripheral devices) were utilized effectively, but it did not provide for user interaction with the computer system. Time sharing (or multitasking) is a logical extension of multiprogramming. The CPU executes multiple jobs by switching, among them, but the switches occur so frequently that the users can interact with each program while it is running.
An interactive (or hands-on) computer system provides direct communication between the user and the system. The user gives instructions to the operating system or to a program directly, using a keyboard or a mouse and waits for immediate results. Accordingly, the response time should be short – typically within 1 second or so.
A time-shared operating system uses CPU scheduling and multiprogramming to provide each user with a small portion of a time-shared computer. Each user has at least one separate program in memory. A program loaded into the memory and executing is commonly referred to as a process. When a process executes, it typically executes for only a short time before it either finishes or needs to perform input/output. Input/output may be interactive; that is, output is to display for the user and input is from a user keyboard, mouse or other device. Since interactive input/output typically runs at “people speeds”, it may take a long time to complete. Input, for example, may be bounded by the user’s typing speed; seven characters per second is fast for people, but incredibly slow for computers. Rather than let the CPU sit idle when this interactive input takes place, the operating system will rapidly switch the CPU to the program of some other user.
Time-sharing operating systems are even more complex than multiprogrammed operating systems. In both, several jobs must be kept simultaneously in memory, so the system must have memory management and protection. To obtain a reasonable response time, jobs may have to be swapped in and out of main memory to the disk that now serves as a backing store for main memory. A common method for achieving this goal is virtual memory. The main advantage of the virtual memory scheme is that programs can be larger than physical memory. Further, it abstracts main memory into a large, uniform array of storage, separating logical memory as viewed by the user from physical memory. This arrangement frees programmers from concern over memory storage limitations.