Batch Operating System:
In early computer systems, the user did not interact directly with the computer system. The data and programs were first prepared on the input media such as punched cards or punched tape. The data and programs prepared on the punched tape or punched cards were referred to as jobs. These jobs were submitted to the computer operator. The computer operator would arrange the jobs into proper sequence known as batches and run the batches through the computer. The batch operating system was used to manage and control such type of operations.
The simple batch operating system transfers the jobs to the processor one by one. When one job is completed, then control is transferred to next job. For example, if first job is about to print a document on printer and second job is to execute a program for creating and editing text document. In this case, when first job is completed only then the second job is started.
The first batch operating system was developed in the mid-1950s by General Motors for IBM 701 computers. This system was revised and then implemented on the IBM 704 computers. By the early 1960s, a number of vendors had developed batch processing systems for their computers but the most popular batch operating system was "IBSYS" of IBM. This operating system was developed for the IBM 7090 / 7094 computers.
Timesharing Operating System:
Timesharing system is a multiprogramming, multiprocessing and interactive system. It allows multiple users to share the computer at the same time. This system executes multiple jobs of users by switching among them. Timesharing is used when multiple users are connected to a single computer in a communication network. Each user accesses the computer with its own terminal.
Timesharing operating system uses the CPU scheduling. Each user is assigned a small time unit known as time slice. The job of a user executes within its time slice. When the allocated time period for a job is used, the next job is allocated to it. This process continues in a cycle. Thus at a regular time intervals, some users may logout from the system, while new users may login into the system.
The processor switches so rapidly from one user to the next and each user feels that the entire computer system is dedicated to his use. So the users can interact with their programs, while they are running.
In timesharing system (like multiprogramming system), multiple jobs are also simultaneously loaded in main memory. The main memory cannot accommodate all these jobs at the same time. In this case, the jobs are kept on the disk in the job pool. The jobs in job pool await allocation of main memory. If several jobs are ready to be brought into memory, and if there is not enough room for all of them, then the system must require memory management. Similarly, if many jobs are ready to run at the same time, the system must schedule these jobs. The time-sharing systems must also provide a file system management to manage the input and output data of the multiple users.
Timesharing system (and multiprogramming system) also creates challenges for the operating system. If there are multiple jobs in memory, then they must be protected from interfering with each other such as modifying each other's data.
One of the first timesharing operating system was the Compatible Time-Sharing System (CTSS). This operating system was first developed for the IBM 709 in 1961 and later transferred to IBM 7094. Nowadays examples of important timesharing operating systems are UNIX, Linux, Windows NT Server and Windows 2000 Server.