Operating System is an important component of a computer. It can be defined as a system or a program which controls the computer Hardware. It provides an environment to run different programs in a computer. Computer has mainly 4 components they are,hardware,application programs, operating system and user.We can think operarting system as an interface between user and computer hardware. Some examples for operating Systems are: Win XP, Linux, OS/2 etc.These OS different in their functionality and their support to application program.
Application programs needs Resources like I/O devices, Memory, CPU etc .So it is OS’s responsibility to allocate these resources to different application programs. Thus Operating System controls as well as manages the computer hardware. We can classify OS into two category ,one in terms of efficiency and another in terms of convenience. Some OS provides efficient environment to user programs but some are convenient to user. Now a days we can see both features in same Operating System.
There is no general definition for operating system. We can conclude that it just provides an environment for a program to run in computer.
Now I would like to share my knowledge about batch system, multitasking, multi programming Operating System.
Batch System.
In Earlier days computers were treated as a Black box. Whenever user wants to execute a program he will prepare one card like punch card. This card consists a program, control information and data. This card is given to computer operartor,so he will input this card and after some time output is displayed.But this is not an efficient way,so later some modification had been done.Operator grouped similar type of jobs and he ran these jobs(batch).This method is called as batch system.But it also had some problem. Usually there was a large time gap between input devices and CPU.Inorder to overcome these problems later they developed a system called multiprogrammed system.
Multiprogrammed System.
Idea of this is as follows:(The idea of this method is to increase the CPU utilization)
There will be large number of jobs in memory waiting for a CPU to execute. These jobs are subset of jobs kept in the job pool. We can treat job pool as a queue. Whenever new job comes it will be inserted or put at the end of the queue.Whenever CPU is available one job is allocated to CPU.Suppose running job wants some resources it will go to waiting state.So automatically CPU will be allocated to another job in the memory. In this way we can utilize CPU more efficiently. So CPU never sit Idle.
Multitasking System.
Idea behind multitasking and multi programming is confusing. In multitasking, CPU will execute more than one job at a time ,where as in multiprogramming, CPU will execute only one job at a time but CPU will switch to another job when it completely executes the current job or executing job wants some resources. Multitasking system provide an environment where many user can run their program at a time. Each user will have separate sets of memory. When user runs his program he can think that whole system is being used by him. This system uses CPU scheduling and multiprogramming to provide each user with a small portion of a time shared computer.