In the 1940's computer all existed without operating systems. Back then programs were entered into the machine one bit at a time with the use of mechanical switches. However, soon enough machine languages (consisting of 1s and 0s) were introduced, this sped up the programming process a bit, but in the 1950s the computers could still only run one job(program) at a time. Thus allowing only one person to use the machine at a time. Each user would write the necessary codes to implement each application, including input/output instructions which were very technical.
Soon enough, an input/output control system(IOCS) was developed, which allowed users to implement basic I/O functions without having to write a barrage of codes; instead they just used the IOCS to do the real work. This saved a lot of time. The IOCS can be said to be the very beginning of the concept of operating system.
The system was later on developed and known as the single user storage system, with this system the user had complete control over main memory and storage was divided into portions: a portion for holding the IOCS, another portion for holding the user's program and an unused portion. These early user systems, were dedicated to one job for more than the job's execution time. Jobs required setup time in which tapes and disk packs were loaded, and time cards were punched in etc., and after the jobs were completed the needed time for the disks to be removed, and the time cards to be punched out etc. During these times before and immediately after each job, the computer remained idle. In order to cut down on time wasting, a job-to-job transition was automated. The first such system was created by General Motors Research Laboratories for their IBM 701, and it is considered as the first operating system.
The system they used was known as the batch processing system, it made a major mark in the history of the OS. In batch processing the software handled the scheduling of jobs, instead of having it done by a human operator. This 'OS' would schedule 'batches' of related jobs, in other words it would read a program and its data, run the program in completion including output in the form of magnetic tapes, punched cards and printed material, then load the next program in the series if any. Batch operating systems used Job Control Language to give the OS instructions.
By the early 1960's time-sharing and multi-programming came on the scene. Multiprogramming helped solve the problem of time wasting which was eminent in the IOCS, The problem was solved by loading multiple programs and their data and switch back and forth between the programs (hence multiprogramming). While one program idly waited for input or output, the OS automatically switched to another program that was ready. The first OS to use multi-programming was the Atlas I Supervisor.
By the 1970's, the fourth generation computers had successfully used contemporary operating systems. With the introduction of chips, large scale integration circuits, and of course the now developed OS, the era of personal computers had begun.
BibliographyOSData, History of Operating Systems, http://www.osdata.com/kind/history.htm, February 6, 2010, 10:35 PMOPSYSTEM Google Docs,http://docs.google.com/viewer?a=v&q=cache:KUPuB8iLcOYJ:www.computinghistorymuseum.org/teaching/papers/research/history_of_operating_system_Moumina.pdf+history+of+the+operating+system&hl=en&gl=jm&pid=bl&srcid=ADGEEShhWC9uO890t2Eyplg3bzP01ZE_LOs9oFkuX1yp6vYPCa-eJRzltG0YmAoV4-X9-xGBYA84JcEmSqzWMGSgSOYBQw6wT_8dXTPxVEbfBkNSS4Db459Sazn7XD5JVM86qhIYAMvx&sig=AHIEtbRN90Mudm3GO4OMdq5f8tedlUg66w, February 7, 2010, 11:34 AM