- OS - Home
- OS - Overview
- OS - History
- OS - Evolution
- OS - Functions
- OS - Components
- OS - Structure
- OS - Architecture
- OS - Services
- OS - Properties
- Process Management
- Processes in Operating System
- States of a Process
- Process Schedulers
- Process Control Block
- Operations on Processes
- Process Suspension and Process Switching
- Process States and the Machine Cycle
- Inter Process Communication (IPC)
- Context Switching
- Threads
- Types of Threading
- Multi-threading
- System Calls
- Scheduling Algorithms
- Process Scheduling
- Types of Scheduling
- Scheduling Algorithms Overview
- FCFS Scheduling Algorithm
- SJF Scheduling Algorithm
- Round Robin Scheduling Algorithm
- HRRN Scheduling Algorithm
- Priority Scheduling Algorithm
- Multilevel Queue Scheduling
- Lottery Scheduling Algorithm
- Starvation and Aging
- Turn Around Time & Waiting Time
- Burst Time in SJF Scheduling
- Process Synchronization
- Process Synchronization
- Solutions For Process Synchronization
- Hardware-Based Solution
- Software-Based Solution
- Critical Section Problem
- Critical Section Synchronization
- Mutual Exclusion Synchronization
- Mutual Exclusion Using Interrupt Disabling
- Peterson's Algorithm
- Dekker's Algorithm
- Bakery Algorithm
- Semaphores
- Binary Semaphores
- Counting Semaphores
- Mutex
- Turn Variable
- Bounded Buffer Problem
- Reader Writer Locks
- Test and Set Lock
- Monitors
- Sleep and Wake
- Race Condition
- Classical Synchronization Problems
- Dining Philosophers Problem
- Producer Consumer Problem
- Sleeping Barber Problem
- Reader Writer Problem
- OS Deadlock
- Introduction to Deadlock
- Conditions for Deadlock
- Deadlock Handling
- Deadlock Prevention
- Deadlock Avoidance (Banker's Algorithm)
- Deadlock Detection and Recovery
- Deadlock Ignorance
- Resource Allocation Graph
- Livelock
- Memory Management
- Memory Management
- Logical and Physical Address
- Contiguous Memory Allocation
- Non-Contiguous Memory Allocation
- First Fit Algorithm
- Next Fit Algorithm
- Best Fit Algorithm
- Worst Fit Algorithm
- Buffering
- Fragmentation
- Compaction
- Virtual Memory
- Segmentation
- Buddy System
- Slab Allocation
- Overlays
- Free Space Management
- Locality of Reference
- Paging and Page Replacement
- Paging
- Demand Paging
- Page Table
- Page Replacement Algorithms
- Optimal Page Replacement Algorithm
- Belady's Anomaly
- Thrashing
- Storage and File Management
- File Systems
- File Attributes
- Structures of Directory
- Linked Index Allocation
- Indexed Allocation
- Disk Scheduling Algorithms
- FCFS Disk Scheduling
- SSTF Disk Scheduling
- SCAN Disk Scheduling
- LOOK Disk Scheduling
- I/O Systems
- I/O Hardware
- I/O Software
- I/O Programmed
- I/O Interrupt-Initiated
- Direct Memory Access
- OS Types
- OS - Types
- OS - Batch Processing
- OS - Multiprocessing
- OS - Hybrid
- OS - Monolithic
- OS - Zephyr
- OS - Nix
- OS - Linux
- OS - Blackberry
- OS - Garuda
- OS - Tails
- OS - Clustered
- OS - Haiku
- OS - AIX
- OS - Solus
- OS - Tizen
- OS - Bharat
- OS - Fire
- OS - Bliss
- OS - VxWorks
- OS - Embedded
- OS - Single User
- Miscellaneous Topics
- OS - Security
- OS Questions Answers
- OS - Questions Answers
- OS Useful Resources
- OS - Quick Guide
- OS - Useful Resources
- OS - Discussion
Operating System - Evolution
Operating systems work as an interface between the user and the computer hardware. OS is the software that performs the basic tasks like input, output, disk management, controlling peripherals, etc.
Windows, Linux, etc, are some examples of operating systems.
Operating System Evolution
The operating system is divided into four generations, which are as follows −
First Generation: The Start of Computing (1945-1955)
In the starting days of computing, operating systems did not exist. ENIAC (1945) and UNIVAC (1951) were among the first computers that could be described as huge machines. They took up an entire room and required direct programming by the use of physical switches and wires.
It is the beginning of the development of electronic computing systems, which are substitutes for mechanical computing systems. Because of the drawbacks in mechanical computing systems, the speed of humans for calculations is limited, and humans can easily make mistakes and errors.
In this era, the programs were written directly in machine language, and users took complete control of the machine for dedicated time slots. The users would load their programs with punched cards or paper tape manually, perform their calculations, and then literally leave the room for the next person. The setup time often exceeded the actual computation time.
Second Generation: Batch Processing Systems (1955-1965)
The Batch processing system was introduced in the second generation, where a job or a task can be done in a series and then executed sequentially. In this generation, the computer system is not equipped with an operating system. Some operating system functions exist, like IBM 704's FMS (Fortran Monitor System) and IBM 7094's IBSYS were early examples.
In this setup, the user has to submit a stack of punched cards (each representing a job), and then the system processes cards one at a time in a sequential manner, and the result would take hours. Though this is not a bug leap in operating systems but new things were introduced, like automatic job loading, basic file management, and error handling capabilities.
Limitations
The following are some of the limitations of Batch processing systems −
- There were still no real-time interactions, and users had to wait hours or days for the results of submitted jobs.
- Poor resource utilization, as the CPU was still often idle during the slow mechanical I/O operations.
Third Generation: Multiprogramming and Time-Sharing (1965-1980)
The development of the operating system was developed to serve multiple users at once in the third generation. Here, the interactive users can communicate through an online terminal to a computer, so the operating system becomes multi-user and multiprogramming.
In multiprogramming, multiple jobs are stored in memory simultaneously, and the CPU can switch between them when one job is waiting for I/O operations. Major projects for Multiprogramming at that time are as follows:
- IBM OS/360 (1964)
- CDC SCOPE
- Burroughs MCP
Time-sharing systems allowed multiple users to interact with the computer simultaneously at once. Major projects for Time-Sharing at that time are as follows −
- CTSS (Compatible Time-Sharing System, 1961)
- UNIX (1969)
- MULTICS (1965-1969, inspired by UNIX)
Fourth Generation (1980-Now)
In this generation, the operating system is used for computer networks where users are aware of the existence of computers that are connected to one another. At this generation, users are also comforted with a Graphical User Interface (GUI), which is an extremely comfortable graphical computer interface, and the era of distributed computing has also begun. With the occurrence of new wearable devices like Smart Watches, Smart Glasses, VRGears, and others, the demand for conventional operating systems has also increased.
Early Personal Computer Operating Systems
- CP/M (Control Program for Microcomputers, 1974) − disk-based operating systems.
- MS-DOS (1981) − IBM licensed Microsoft's DOS (based on QDOS, which was inspired by CP/M)
- Lisa OS (1983) − It was the first commercial computer with a graphical user interface.
- Macintosh System Software (1984) − Point-and-click interface and made the GUI accessible.
- Windows 1.0-3.1 (1985-1992) − Graphical OS running on DOS.
- Windows 95 (1995) − 32-bit operation, Integrated Internet support, and preemptive multitasking.
- Windows NT (1993) − Microsoft's serious server operating system.
Conclusion
The evolution of operating systems shows the continuous development of computing technologies. From batch programs and command-line interfaces to the user-friendly networks and smart, cloud-powered platforms. The operating systems have been transformed from no operating systems through various generations of batch, multiprogramming, and time-sharing systems to the present-day advanced networked and GUI-based systems, which have all together led to an increase in efficiency, usability, and performance. Several advancements have been made from the ENIAC (1945) to the Apple A21 OS to the current date.