Evolution of computational systems
Prehistory
Period | Technology | Features | |
---|---|---|---|
Mid 19th century | mechanical device |
| |
1945–1955 |
|
|
Serial processing
Serial processing – one user at a time.
User has direct access to the computer/processor.
actually there is no operating system.
Scheduling and setup time issues:
computer must be previously reserved by users, possible causing waste of time or premature exit.
a considerable amount of time was spent setting up the program to run.
Common software for all users (like linkers, libraries, . . . ) appear.
Very poor processor utilization
2nd generation
Period | Technology | Features | |
---|---|---|---|
1955–1965 | transistor devices |
|
Simple batch
Simple batch – one job at a time.
User looses direct access to the processor.
users submits jobs on cards or tapes to an operator.
the operator joins jobs into a batch and places it in the computer input device.
the monitor (batch OS) manages the execution of the batch’s jobs in the processor.
Better than serial processing.
scheduling is done by the monitor, one job after the other.
a job control language helps improving setup time.
Requirements like memory protection and privileged instructions appear.
(most of) the monitor and the user program must be in memory at the same time.
Still poor processor utilization.
processor is often idle.
3rd generation
Period | Technology | Features |
---|---|---|
1965–1980 |
|
|
Multiprogrammed batch
Multiprogrammed batch – while a job is waiting for the conclusion of an input/output operation, another job can use the processor.
the approach is known as multiprogramming or multitasking.
Scheduling, resource management and hardware support are required.
monitor and all user programs (jobs) must be simultaneously in memory.
interrupt and DMA I/O are needed to accomplish the I/O operation.
what job to dispatch next?
Good processor utilization.
but there is no direct user interaction with the computer.
Time-sharing
Time-sharing – keeping different users, each one in a different terminal, in direct and simultaneous connection with the system.
when computers were big and costly, the option was to share them.
Using multiprogramming, the processor is successively assigned to the execution of the various programs present during very short time intervals (time quantum).
since a human response, when compared to a computer, is slow, the illusion that the system is entirely dedicated to every user is created.
Differences with multiprogrammed batch.
try to minimize response time instead of maximize processor use.
directives to OS given by user commands instead of job control language commands.
In addition to memory protection and privileged instructions, file access protection and resource (printers, . . . ) contention are issues to be considered.
Real-time operating systems
Purpose – use the computer in the online monitoring and control of physical processes.
Method – variant of an interactive system that allows to impose maximum limits to the response times of the computational system to different classes of external requests.
4th and 5th generations
Period | Technology | Features | |
---|---|---|---|
4th generation | 1980–present |
|
|
Period | Technology | Features | |
---|---|---|---|
5th generation | 1990–present |
|
|
Network operating systems
Purpose – take advantage of the interconnection facilities of computer systems (at the hardware level) to establish a set of services common to an entire community.
Services – file transfer (ftp); access to remote file system (NFS); resource sharing (printers, etc.); access to remote computational systems (telnet, remote login, ssh); e-mail; access to the world wide web (browsers).
Distributed operating systems
Purpose
Take advantage of the facilities for constructing multiprocessor computing systems, or for interconnecting different computational systems, to establish an integrated interaction environment where the user views the parallel computing system as a single entity.
Methodology
Ensure a complete transparency in the access to processors or other resources of the distributed system, in order to allow.
static/dynamic load balancing.
increasing the speed of processing by incorporation of new processors or new computational systems.
parallelization of applications.
implementation of fault tolerance mechanisms.
Last updated