Operating System Strategies

Depending on the needs of its users, a computer's operating system may be designed to use different strategies to serve the users' needs best.

Batch Processing Systems

This strategy was used by the operating systems of old mainframe computer systems. In those days (up to around late 1980's) computer centers had one large computer to serve the computation needs of communities. In those days, users needed to travel to the place where the computer was installed and submit their computation jobs to the operators of the computer system. The operators, in turn, would queue and run the user programs whenever possible.

We still have tasks performed on large scale computer systems which are performed in "batch processing" mode and a typical example is backing up the disks of a computer system. The operators submit backup commands to the system one after another, making necessary arrangements with tape cartridges so that the backups are done orderly.

Early Personal Computer Operating Systems (Single User OpSys)

Then the days of the personal computer came! The PC was designed to serve one user at a time and every person who needed a computer could have one. Since the computer was designed to serve one user at a time, its operating system was also a "single user" operating system. A very good example is the MS-DOS operating system. One person at a time and that person could run only one program at a time.

Soon people needed to do more than one job a time and multi-tasking operating systems were developed.

Multi-Tasking Operating Systems

Although many mainframe computers did have multi-tasking operating systems, perhaps it is easier to describe the concept with PCs running under Windows 3.x and Windows 95/98. With these oprasting systems, the person who is using the computer is capable of doing more than one job at a time. For example he/she can work on a spreadsheet while the system is printing a long report.

Multi-tasking can be defined as the capability of doing more than one job at a time by switching the CPU between the tasks. In this strategy, the CPU serves one task for some time (usually in the order of 100 miliseconds) and then switches to another task for some time (time slice). This way it seems to the user as if the computer is doing all the tasks at the same time concurrently. In reality, the computer is doing one task at a time.

Multi-User Operating Systems

If a computer system can switch the CPU between the multiple tasks of a user, why shouldn't it switch the CPU between the tasks of different users? This idea brought the "multi-user" concept and this concept has been used extensively by many operating systems; UNIX being the most popular multi-user opsys of these days. Multi-user operating systems have to be multi-tasking opsys too by definition.

Multi-user operating systems serve one user during a time-slice and switch the CPU to the next user at the end and this cyclical switching goes on as lopng as there are users running program on the system. Trivially, the overall performance of a computer system is shared among its users and effectively the system slows down for each user. The CPU usually waits for quite long times for slow devices when a user requests a service from a resource. As an example, you can consider the hard disk drives. When a user requests a file to be read from the disk, the CPU has to wait till the disk heads are positioned on the correct cylinder and the sector to be read to arrive to the spot under the read heads of the disk drive. Typical delays for this kind of operations is in the order of tens of miliseconds; which is quite a long time for the CPU. Instead of waiting for the disk to get ready for the read operation, the CPU can service another user who do not need a disk I/O at that time.

Multi-Processor Operating Systems

Some computer systems are designed to have more than one CPU. Depending on the design objectives, a multi-processor computer can have 2, 4, 8 or thousands of CPUs working together. This architecture is used when very high performance computer systems are needed. An operating system running on a multi-processor system must be capable of coordinating all of the CPU's so that they work and share other resourcesin harmony.

Real-Time Operating Systems

Software running on computers which control industrial processes are usually required to do certain tasks at certain exact times. These tasks have to be done at precise points in time and the operating system should allocate the necessary resource at the correct instant to the correct task. You can consider a computer controllng a nuclear power plant where the process should be under very precise control. Certain measurements must be taken at precise intervals and the software must take precise actions depending on these measurements.

Network Operating Systems

With the advances in communication technology, computers can easily and effectively be connected to each other so that application running on different computers can share resources on remote computers. A very typical example of a network operating system s the Novell OpSys. The main resources like data and program files are located on one computer (called the "file server") and applications are running on remotely connected computers (called the "clients"). The opsys on the server monitors and controls its resources to make sure they are available to all clients.