A Brief History of Operating System [Class Notes]
History of Operating Systems
Basic Operating System Concepts
What is an Operating System?
An operating system should be conceived as a combination of following different aspects:-
2. A Control Program
controls the execution of programs and devices. An operating sytem is responsible to monitor and control the operation of each and every software as well as hardware components of a computer system.
3. An Interface
An abstract virtual machine. Operating system behaves as a computer system for all other applications so that the communication is possible and the underlying hardware details are encapsulated to provide common standard interface.
4. A Programming Environment
The kernel + utilities
5. A resource manager
The operating system maximizes system performance since it manages the available resources.
6. A service provider
An operating system provides different services to other applications such as File storage, network communications, and so on.
Why do we need operating system?
Today it would appear a funny question. We can't imagine operating a computer without an operating system. But, major reason can be drawn as following two:-
1. They Provide a high-level abstraction of physical resources
Since operating systems provice common standard interface, it enables the construction of more complex software systems. Similarly, without operating system, it would be impossible to imagine portable code.
2. They allow sharing of limited or expensive physical resources
Because operating systems manages the computer resources it is possible to share the expensive physical resources and optimize their use.
A Brief History of Operating Systems
Hand Programmed Machines ('45-'55)
- Single Usser Systems
- OS = loader + libraries of common subroutines
- Drawback: low utilization of expensive components
Batch Processing or Offline processing ('55-'65)
- Pipelined processing of jobs. (Overlap computation with I/O)
- Utilization is higher
- But throughput is low. [throughput=(number of jobs completed)/(observation interval)]
- Operating System = loader + sequencer + output processor
Spooling Processing or online processing ('62-'69)
- Disks/drums enabled overlap of I/O and computation on the same machine
- Utilization is higher
- And at the same time throughput too improved
- Keeps several jobs in memory and multiplex CPU between jobs
- Simple, synchronous input. This solved the problem of 'what to do while waiting for the I/O device?'
- A timer interrupt is used to multiplex CPU among jobs
Types of Operating Systems
Personal Computing System
- Single user
- Utilization is no longer a concern
- Emphasis is on user interface and API
- Many serices and features are not present
- Primary concern in personal computing system is response time [ response time = completion time - start time]
Distributed Operating System
- Typically support distributed services
- Possibly employ multiple processors (loosely coupled vs. tightly coupled systems)
- High availability and reliability requirement
Parallel Operating System
- Symetric Multiprocessing
Each processor has a copy of the operating system. Many jobs can be executed in parallel.
- Asymmetric multiprocessing
Master processor allocates jobs to slave processors
Real-time Operating System
- A system with a dual notion of correctness:
- Logical correctness - "It does the right thing"
- Temporal correctness - "It does it on time"
- A system wherein predictability is more important than performance
- Dedicated system: real-time performance achieved iff time(loop)<= 33ms. Realtime computing is a programming problem ("Just buy a faster processor")
- Multiprogrammed system: real-time performance iff ??? Real time computing is an operating system problem.
|< Prev||Next >|