With the computers being prevalent in virtually every application from games to most sophisticated tools for various multinational forms and so on, the operating systems play an essential part. What is an Operating System? An operating system is basically a program that provides an interface between the user and computer hardware and hence it acts as an intermediate between the two. It is a program that manages the computer hardware among the various application programs for the users. The basic function of an operating system is booting the computer. It also perform various tasks such as managing various peripheral devices such as keyboard, mouse etc. It user interfaces such as command lines, graphical user interface and so on. The operating system can be explored from two view points that is the user view and the system view. According to the use of you. The operating system must be designed such that it is easy to use and much attention should be paid to the performance of the operating system rather than the fact that whether it remains Idle waiting for the slow input-output speed of the user. The operating system is basically designed such that it maximizes resource utilisation so that all the CPUs time, memory and I/O are used efficiently so that no user takes more than their fair share.
From the systems point of view, the operating system can be viewed as a resource allocator whose primary goal is convenience and efficiency. It basically manages its resources hardware and software that may require to solve a problem. These resources can be the CPU time, memory space, file storage space and so on. An operating system can even be viewed as a control program that manages the execution of the user programs to prevent the errors and improper use of the computer system. Mainframe computer systems, whose growth can be traced from the simple batch systems to the time-shared systems, is the first computers used to tackle many commercial and scientific applications. In batch systems in earlier times the user did not interact directly with the computer systems rather the user was given to prepare the job which consisted of the program the data and some information that had to be submitted to the computer operator. To speed up processing, the operators usually bats together jobs with similar needs and run them to the computer as a group. The operator code for the programs in to bath with some laws requirements and when the computer became available, would run each batch send back to the output of each job to the appropriate programmer. To use the resources efficiently the operating systems performed job scheduling.
In multiprogrammed systems the concept of multiprogramming was used in which the CPU utilisation was increased by organising jobs so that CPU always had one job to execute. The operating system picks up a job and execute it in the memory. At some point in execution the job would have to wait for some tasks such as an I/O operation to complete and hence in a non-multiprogrammed system, at this time, the CPU would remain idle. However in multiprogrammed system the CPU would switch to another job and execute it while the previous I/O operation is being carried out rather than remaining idle through the entire process. The time sharing or multi-tasking system is basically an extension of the multiprogramming system in which the CPU executes multiple jobs by switching among them, but the switching occurs so frequently that the users can interact with each program while it is running. Then in around 1970s personal computers or PCs came out with their operating system goals changing to maximizing user convenience and responsiveness rather than CPU and peripheral utilisation. The operating systems of these personal computers were neither multitasking nor multi programming. These systems include PCs running the Microsoft Windows and the Apple Macintosh.
Nowadays most of the systems are single processor systems that only have one main CPU. However, multiprocessor systems, having more than one processor in close communication sharing the computer bus, the clock and sometimes the memory and peripheral devices are growing more and more in importance these days. The most common multiprocessor systems use symmetric multiprocessing in which all the processes RPO to peers that is no master slave relationship exists between them and each processor runs an identical copy of the operating system and these copies communicate with one another as needed. In an asymmetric multiprocessor system, each professor has been assigned a specific task that that processor has to perform and a master processor controls the entire system. The other processors either look to the master for the instructions and the master processor schedules and allocates work to the slave processors or they have predefined tasks. The multi processor systems have great advantages. Such multiprocessor systems are more economical as they can save more money than the multiple single processor systems because they can share the peripherals, mass storage and power supplies. If several programs operate on the same set of data, it is much cheaper to store those data on one disk and to have all the processors share them, than to have many computers with local discs and many copies of the data. Increased reliability is another advantage and multiprocessor Systems exhibit. The failure of one processor will not hold the entire system and it will only slow it down if the functions can be distributed properly among several processes. Hence many other advantages, along with increased reliability and great economy, multiprocessor systems have shown growing importance and hence an increased use.
– Simran Mehta