Evolution of Operating System: University of Zakho Faculty of Science Stage Academic Year 2021-2022
Evolution of Operating System: University of Zakho Faculty of Science Stage Academic Year 2021-2022
Faculty of Science
Computer Science Dept.-4th Stage
Academic Year 2021-2022
Evolution
of
Operating System
2
Abstract
We looked back on the first half century of operating systems and selected our favorite papers on
classic operating systems. These papers span the entire history of the field from the batch
processing systems of the 1950s to the distributed systems of the 1990s. Each section describes
an operating system that combines significant ideas in an elegant way. Most of these topics were
written by the pioneers who had the visions and the drive to make them work. We summarized
each paper and concluded that operating systems are based on a surprisingly small number of
ideas of permanent interest.
3
Introduction
Operating systems have evolved from slow and expensive systems to present-day technology
where computing power has reached exponential speeds and relatively inexpensive costs. In the
beginning, computers were manually loaded with program code to control computer functions
and process code related to business logic. This type of computing introduced problems with
program scheduling and setup time. As more users demanded increased computer time and
resources, computer scientists determined they needed a system to improve convenience,
efficiency, and growth (Stallings, 2009, p. 51). As a result, they created an operating system
(OS) to process jobs in batches. Later they created Multitasking and Time-Sharing to run
multiple jobs and allow user interaction to improve efficiency. Multitasking brought challenges
to manage I/O operations required by multiple jobs in which computer vendors resolved with
interrupts [1].
Early evolution
1. 1945: ENIAC, Moore School of Engineering, University of Pennsylvania.
The ENIAC (Electronic Numerical Integrator and Computer) is arguably the first
general-purpose electronic computer (the first was really the Colossus, but its very
existence was shrouded in secrecy for decades). It was created for a very specific
purpose: to compute firing tables for the military. These firing tables were used in combat
to find the proper angle of elevation for a gun, taking into account the temperature, wind
direction, and type of ammunition. As gun production rolled into high gear during World
War II and an ever-larger array of guns were manufactured, the army was facing a
tremendous backlog of calculations. This led to funding the ENIAC project as an attempt
to solve these problems.
The machine contained:
an internal memory of 200 decimal digits
I/O speed of 8,000 decimal digits per minute
computation speed of 5,000 operations per second
built with 18,000 vacuum tubes and consumed 100,000 watts (40,000 watts went
to the tube filaments and were converted to heat)
programmed through patch panels and switches
data read from punched cards
2. 1949: EDSAC and EDVAC
Computers get memory
The EDVAC (Electronic Discrete Variable Automatic Computer) and EDSAC
(Electronic Delay Storage Automatic Calculator) were both completed in 1949. The
EDVAC was the successor to the ENIAC. The EDSAC was a project headed by Maurice
Wilkes at the computing laboratory at Cambridge University and built based on the
EDVAC proposal. Both were stored program computers: instructions could be run from
the computer’s memory rather than be hard-wired. They used John von Neumann’s
architecture where the computer’s program code resides in the same storage as the data.
Mercury delay lines were used for the system’s memory. These were long sealed tubes
containing mercury. Data was represented as waves in the fluid. It entered via a
4
transducer, propagated through the fluid, and was extracted via a transducer at the far
end. At that point the computer could read the data (into vacuum tubes) or cycle it back
for recirculation through the mercury tube. The EDSAC had a whopping 512 35-bit
words of memory.
3. 1949 BINAC – a successor to the ENIAC
Programming languages
The first precursor to a programming language appeared: John Mauchly’s Short Order
Code. It featured a simple algebraic interpreter. A programmer could write in pseudocode
rather than in the code of the actual machine. This pseudocode could include a set of
“subroutines”. These weren’t subroutines in the sense that we know them. The program
looked at each statement, jumped to the required subroutine, executed it, and looped
back. The concept of a stack and the return instruction came later.
4. 1951: UNIVAC by Remington
Reusable code
The concepts of code sharing emerge. A standard set of mathematical subroutines was
created. These were written on paper and copied (onto the card punch) as needed.
Unfortunately, programmers don’t always copy very accurately, so debugging was often
needed. John Mauchly estimated that there were perhaps twelve organizations in the
world that needed and could afford a UNIVAC. Over 45 were sold
5. 1952: IBM 701
True reusable code and a real assembler
The 701 was IBM’s first commercial scientific computer. It contained 1,024 words of
random-access memory and used plastic magnetic tape as a storage medium. The
computer featured a modular construction; it was built in several units that would be
shipped to the customer where it would undergo final connections. This contrasts with
earlier machines like the UNIVAC that had to be fully assembled at the customer site.
The 701 brought about:
The emergence of an assembler-style language: IBM Speed Coding
SHARE (Society to Help Alleviate Redundant Effort), an IBM user organization,
was created. It maintained a repository of common routines. For example, if you
needed code for advancing the tape to a certain position and writing a block of
data, you could get it from SHARE. These shared I/O routines were the precursor
to device drivers found in today’s operating systems.
6. 1956: The interrupt
The UNIVAC 1103A introduced the interrupt. Upon receiving an interrupt, the processor
would store the value of its program counter in a fixed memory location and the program
counter would be replaced with a preset address, forcing execution to switch to
an interrupt service routine. To return, the interrupt service routine would branch to the
value that was stored in the special memory location. One way in which the interrupt was
used was to allow lower-priority batch processes to run in between war game simulation
programs at the Army’s Operations Research Office. This was the precursor to time-
sharing, which would dominate operating system design for decades to come.
7. 1954–1957: FORTRAN was developed
5
A high-level language
With high-level languages, programmers no longer had to understand the architecture of
a computer. Early compilers, including early FORTRAN (Formula Translator) had to fit
in 1,024 12-character words and still leave enough room for data. It often took two hours
to compile a program because the tape units were kept busy prefetching data [2].
6
translation table, wherein the memory space is allocated for at least one guest operation
system and wherein the shadow dynamic address translation table includes a mapping
between at least one guest logic memory address and at least one host physical memory
address. The method further includes building the shadow dynamic address translation
table and storing the shadow dynamic address translation table in the memory portion [6].
4. Modular Architecture:
Refers to the design of any system composed of separate components that can be
connected together. The beauty of modular architecture is that you can replace or add any
one component (module) without affecting the rest of the system. The opposite of a
modular architecture is an integrated architecture, in which no clear divisions exist
between components. The term modular can apply to both hardware and software.
Modular software design, for example, refers to a design strategy in which a system is
composed of relatively small and autonomous routines that fit together [7].
5. Personal, interactive systems came into existence.
This module is about the design and evaluation of a class of systems that were not even
envisaged until relatively recently. Until the 1980s almost all commercial computer
systems were non-interactive. Computer operators would set-up the machines to read in
large volumes of data – say customers bank details and transactions – and the computer
would then process each input and generate appropriate output [8].
7
Types of Operating Systems
1. Simple Batch System:
In early days computer work was given on punch cards and then these punch cards
behave as input to the computer. These jobs or batch jobs were then executed by the
computer one by one. So that computers were called as batch computers or batch
systems. The work done by batch systems are in parts i.e., one job is processed then
another job in the queue is processed and so on.
Advantages
Repeated jobs are done fast in batch systems without user interaction.
You don’t need special hardware and system support to input data in batch
systems.
Best for large organizations but small organizations can also benefit from it.
Batch systems can work offline so it makes less stress on processor.
Processor consumes good time while processing that mean it knows which job to
process next. In real time systems we don’t have expectation time of how long the
job is and what is estimated time to complete it. But in batch systems the
processor knows how long the job is as it is queued.
Sharing of batch system for multiple users.
The idle time batch system is very less.
You can assign specific time for the batch jobs so when the computer is idle it
starts processing the batch jobs i.e., at night or any free time.
The batch systems can manage large repeated work easily.[9]
Disadvantages
8
If some job takes too much time i.e., if error occurs in job, then other jobs will
wait for unknown time.[9]
Advantages
CPU is used most of time and never become idle
The system looks fast as all the tasks runs in parallel
Short time jobs are completed faster than long time jobs
Multiprogramming systems support multiply users
Resources are used nicely
Total read time taken to execute program/job decreases
Response time is shorter
9
In some applications multiple tasks are running and multiprogramming systems
better handle these type of applications [10].
Disadvantages
It is difficult to program a system because of complicated schedule handling
Tracking all tasks/processes is sometimes difficult to handle
Due to high load of tasks, long time jobs have to wait long [10].
3. Multiprocessor System:
A multiprocessor system is a system in which two or more CPU (Central processing
systems) are used. In this type of system two or more processes can be processed in
parallel i.e., at the same time interval.
10
Advantages
High Throughput:
Throughput is the number of processes executed by the CPU at a given time
so this type of system has higher throughput.
11
Example of multiprocessing
All the major operating systems nowadays support multiprocessor CPU’s
[12].
4. Desktop System:
A desktop computer is a type of computer that stays in a single location. It is placed on
the desk or table. It is not portable. A desktop computer is usually placed in-home or
office. A desktop computer has a mouse, keyboard and monitors attached to it. You can
attach other hardware components to the desktop computer as well like printer, scanner,
projector, TV cable etc. CPU is a central processing unit. CPU consists of a processor.
An example of a processor is the intel i7 processor. The CPU is placed in the CPU box.
The CPU box comes in a tower shape so this computer is also known as a tower
computer or tower PC. The tower is either in a horizontal shape or in a vertical shape
[13].
Advantages:
Typing is done easily on a desktop computer because of the large keyboard.
The computer has high disk space so a lot of information can be stored on the
PC.
Desktop computers are reliable. You can build an online business and rely on
computers easily.
Presentations can be made easily on a desktop PC. You can make
presentations with different software like MS PowerPoint.
Desktop computers need extra care like you have to clean them daily because
they can catch dust easily.
These computers have a low maintenance cost. You can repair any part of a
computer easily by going to the nearest computer shop.
Data is stored on online desktop computers that are also known as cloud
storage. They can store websites/apps data and they provide data availability
24 hours.
You can attach a large monitor screen to a desktop computer also.
12
You can attach a gaming keyboard and mouse to the desktop PC and play
games with hard hands also [13].
Disadvantage
It is expensive to buy a desktop computer.
Desktop computer user usually wastes their time by watching movies.
There are addictive games on the computer that can take a lot of time for
computer users.
Extra noise of desktop PC listens when it operates.
A desktop computer requires extra space to place and also you will need a
dedicated room to place a desktop computer.
By default, desktop computers do not come with built-in Bluetooth and
infrared.
Your computer has to always plugin to power to use the computer.
After the invention of the computer, most jobs are shifted to the computer and
people also lost their jobs because they are not computer literate.
The computer is an electronic device that can consume a lot of electricity. If
you use the computer for a longer time then your electricity bill increases.
As desktop computers don’t have battery backup so you have to arrange a
UPS system in your home for electricity backup [13].
Examples of desktop computer
M1 Mac mini
Dell XPS Desktop
HP Envy 32 All-In-One PC
Acer Aspire C 27 All-In-One
Asus Chromebox 3
Dell Inspiron 27 7000 All-In-One
Microsoft Surface Studio 2
Apple iMac with M1[13].
13
Advantages
Cost Effective:
Although distributed systems consist of high implementation costs, they are cost
effective in the long run. Compared to a mainframe computer, where a single
system is composed of several processors, the distributed system is made up of
several computers together. This type of infrastructure is far more cost effective
than a mainframe system.
Efficiency:
Distributed systems are made to be efficient in every aspect since they possess
multiple computers. Each of these computers could work independently to solve
problems. This not only considered to be efficient, it significantly saves time of
the user.
Scalability:
Distributed systems are made on default to be scalable. Whenever there is an
increase in workload, users can add more workstations. There is no need to
upgrade a single system. Moreover, no any restrictions are placed on the number
of machines. Which means that, these machines will be able to handle high
demand workload easily.
Reliability:
The distributed systems are far more reliable than single systems in terms of
failures. Even in the case of a single node malfunctioning, it does not pose
problems to the remaining servers. Other nodes can continue to function fine.
Latency:
Distributed systems result on low latency. If a particular node is located closer to
the user, the distributed system makes sure that the system receives traffic from
that node. Thus, the user could notice much less time it takes to serve them [14].
Disadvantages
Startup Cost:
Compared to a single system, the implementation cost of a distributed system is
significantly higher. The infrastructure used in a distributed system makes it
14
expensive. In addition to that, constant transmission of information and
processing overhead further increases the cost.
Security:
Distributed systems always come with security risks since it contains open system
characteristics. The data of the user is stored in different workstations. Thus, the
user needs to make sure that their data is secured in each of these computers.
Moreover, unlike in a centralized computing system, it is not an easy task to
manage data access in a distributed system.
Complexity:
The difficulty involved in implementation, maintenance and troubleshooting
makes distributed system a complex strategy. Besides hardware complexity,
distributed system possess difficulty in software too. The software used in
distributed system needs to be well attentive when handling communication and
security.
Overheads:
Over heading is a common problem faced by a distributed system. This happens
when all the workstations try to operate at once. Even though this essentially
brings desired results, eventually there will be an increase in computing time. This
ultimately impacts the system's response time.
Network Errors:
Distributed systems are prone to network errors which results in communication
breakdown. The information may fail to be delivered or not in the correct
sequence. And also, troubleshooting errors is a difficult task since the data is
distributed across various nodes [14].
15
Advantages
High Availability:
Although every node in a cluster is a standalone computer, the failure of a single
node doesn't mean a loss of service. A single node could be pulled down for
maintenance while the remaining clusters take on a load of that single node.
Cost Efficiency:
When compared to highly reliable and larger storage mainframe computers, these
types of cluster computing systems are thought to be more cost-effective and
cheaper. Furthermore, most of these systems outperform mainframe computer
systems in terms of performance.
Additional Scalability:
A cluster is set up in such a way that more systems could be added to it in minor
increments. Clusters may add systems in a horizontal fashion. It means that
additional systems could be added to clusters to improve their performance, fault
tolerance, and redundancy.
Fault Tolerance:
Clustered systems are quite fault-tolerance, and the loss of a single node does not
result in the system's failure. They might also have one or more nodes in hot
standby mode, which allows them to replace failed nodes.
Performance:
The clusters are commonly used to improve the availability and performance
over the single computer systems, whereas usually being much more cost-
effective than the single computer system of comparable speed or availability.
Processing Speed:
The processing speed is also similar to mainframe systems and other types of
supercomputers on the market [15].
Disadvantages
Cost-Effective:
One major disadvantage of this design is that it is not cost-effective. The cost is
high, and the cluster will be more expensive than a non-clustered server
management design since it requires good hardware and a design.
Required Resources:
Clustering necessitates the use of additional servers and hardware, making
monitoring and maintenance difficult. As a result, infrastructure must be
improved.
Maintenance:
It isn't easy to system establishment, monitor, and maintenance this system [15].
16
Example
Cluster operating systems are a combination of software and hardware clusters.
Hardware clusters aid in the sharing of high-performance disks among all
computer systems, while software clusters give a better environment for all
systems to operate. A cluster system consists of various nodes, each of which
contains its cluster software. The cluster software is installed on each node in the
clustered system, and it monitors the cluster system and ensures that it is
operating properly. If one of the clustered system's nodes fails, the other nodes
take over its storage and resources and try to restart [15].
Advantage
Less Downtime:
Al while keeping all devices in active state, a RTOS makes sure that the
system consumes more resources. As a result, a system using RTOS
experiences very less downtime. And also, hosting companies too exhibit
maximum results while using RTOS.
Task Management:
17
A real time operating system typically takes less amount of time to shift from
one task to another. Usually, it takes 3 microseconds or less to shift tasks. This
type of faster task management ensures critical processes can be achieved on
time.
Efficiency:
A real time operating system focusses on one application at a given time.
Most often this application will be the one which is already running. All
others on queue will be kept in waiting stage. Thus, the critical tasks can be
processed on time within the given deadline for achieving the exact results
needed.
Availability:
Due to the fact that a RTOS exhibits maximum results, it is a system which is
available 24/7. Hence, it is best suited for applications that needs to perform
always. Besides that, a RTOS system is capable of supporting different MCU
platforms.
Reliability:
Real time operating systems, especially those which are of hard RTOS are
completely free of errors. It ensures a better way of handling errors.
Moreover, operating systems experience an issue known as jitter in which the
number of errors between subsequent loop is measured. If programmed
correctly, a RTOS can be optimized in a way that it undergoes a smaller
number of jitters [17].
Disadvantages
Multitasking:
Although a RTOS is capable of concentrating on targeted applications, that is
not the same with multitasking. They are designed to run only few of the
tasks. Therefore, it is not recommended for systems that require multitasking.
Complexity:
Complex algorithms are behind a RTOS interface. It will be difficult for a
normal user to write these algorithms. Only an expert developer will be able to
write and understand them.
Task Focus:
As mentioned earlier, a RTOS focusses on one application at a given time.
This is mainly done to maintain accuracy and reduce errors. All other
applications those are of low priority needs to be on waiting. There is no time
limit in how much time they will be on standby.
Program Crashes:
Program crashes can be frequently experienced while using a real time
operating system. Unlike a regular O/S, a RTOS cannot efficiently separate
memory domains. As a result, processes will have a problem addressing them.
Driver Requirement:
18
A real time operating system constantly experiences signal interruptions.
Therefore, for achieving steady speed, the required drivers must be installed
on the computer. Whenever an interruption occurs, a RTOS will be able to
respond quickly with the help of drivers [17].
Example
A real-time operating system (RTOS) is an operating system that guarantees a
certain capability within a specified time constraint. For example, an operating
system might be designed to ensure that a certain object was available for a
robot on an assembly line [16].
8. Handheld system
Handheld computers, or PDAs (personal digital assistants), are becoming more popular
as the world transitions into a place where people receive their news as it happens, rather
than the day after it happens. Handheld computers allow the owner to take their work
with them wherever they go while staying connected to the Internet. While there are
several benefits to these computers, there are also some drawbacks to handhelds [19].
Advantage
Portability:
19
One advantage of handheld computers is their portability. They are
smaller than the typical laptop, allowing them to easily be tucked away
into a backpack, briefcase or even one's pocket. Within the classroom,
they can replace notebooks and allow students to access course material
faster. They also provide a new and innovative way to educate. For
businesspeople, they can be easily brought onto airplanes and into
meetings.
Price:
Typical desktop and laptop computers can run more than $1,000. The
handheld computer is significantly cheaper. According to Consumer
Search, the Palm TX PDA costs about $260. The Palm Tungsten E2 costs
about $190. So, while these are miniaturized computers, they are hundreds
of dollars cheaper than the larger versions. Handheld computers can be a
cost-effective computing solution for a cash-strapped company, household
or school district [19].
Disadvantage
Smaller Keyboards
In the case of handheld computers, the keyboards are smaller than those of
laptop or desktop computers. This can limit use to actions that require
minimal typing, because the small keyboard isn't conducive to productive
word processing. For instance, instead of typing full documents, as one
would on a desktop or laptop computer, the user might only be able to
productively check email and surf the Internet on a handheld device.
Size
While the size of handheld computers is an advantage in portability, it can
be a disadvantage, too. For instance, the smaller in size something is, the
more likely it is to forgotten or stolen. Typically, burglars are looking for
the most valuable thing they can find as quickly as they can get it. Since
handheld computers can be stowed in bags, purses and backpacks, the
probability of them being stolen increases. Furthermore, the smaller
something is, the more likely it is to be lost or misplaced by the owner
[18].
Example
Windows CE
EPOC, and
PalmOS [19].
20
Conclusion
Operating systems are an evolving work in progress. Developers learn lessons from previous
concepts to improve the next. Batch Process overcame the problem of scheduling and job setup
posed by Serial Processing. However, it was still an inefficient system causing long delays
between jobs. Both Multitasking and Time-Sharing resolved the issues of processor idle time
allowing multiple jobs and users to interact simultaneously. Hardware vendors have an important
role with improving performance by creating better processors and I/O controls. Current
technology continues using Multitasking and Time-Sharing concepts. However, today graphical
user interfaces incorporate them within desktop environments.
21
References
[1]"The Evolution of Operating Systems", Ukessays.com, 2021. [Online]. Available:
https://www.ukessays.com/essays/information-technology/evolution-of-operating-systems-
information-technology-essay.php. [Accessed: 11- Nov- 2021].
[2]"Operating Systems", People.cs.rutgers.edu, 2021. [Online]. Available:
https://people.cs.rutgers.edu/~pxk/416/notes/01-intro.html. [Accessed: 11- Nov- 2021].
[3]"Operating Systems by the late 1950s", Helpiks.org, 2021. [Online]. Available: https://helpiks.org/9-
53256.html. [Accessed: 11- Nov- 2021].
[4]"Evolution of Operating Systems | Studytonight", Studytonight.com, 2021. [Online]. Available:
https://www.studytonight.com/operating-system/evolution-of-os. [Accessed: 11- Nov- 2021].
[5]"Operating System Concepts ( Multi tasking, multi programming, multi-user, Multi-threading ) |
PadaKuu.com", www.padakuu.com, 2021. [Online]. Available: https://padakuu.com/article/25-
operating-system-concepts-multi-tasking-multi-programming-multi-user-multi-threading.
[Accessed: 11- Nov- 2021].
[6]c. program et al., "US10387325B2 - Dynamic address translation for a virtual machine - Google
Patents", Patents.google.com, 2021. [Online]. Available:
https://patents.google.com/patent/US10387325B2/en. [Accessed: 16- Nov- 2021].
[7]"What is Modular Architecture? | Webopedia", Webopedia, 2021. [Online]. Available:
https://www.webopedia.com/definitions/modular-architecture/. [Accessed: 11- Nov- 2021].
[8]"Interactive Systems", Cs.uct.ac.za, 2021. [Online]. Available:
https://www.cs.uct.ac.za/mit_notes/human_computer_interaction/htmls/ch01s03.html. [Accessed:
11- Nov- 2021].
[9]C. beginners, W. systems, J. Rehman and J. Rehman, "What are advantages and disadvantages of batch
processing systems", IT Release, 2021. [Online]. Available:
22
https://www.itrelease.com/2012/12/what-are-advantages-and-disadvantages-of-batch-processing-
systems/. [Accessed: 12- Nov- 2021].
[10]A. systems, J. Rehman and J. Rehman, "Advantages and disadvantages of multiprogramming
systems", IT Release, 2021. [Online]. Available: https://www.itrelease.com/2017/09/advantages-
disadvantages-multiprogramming-systems/. [Accessed: 12- Nov- 2021].
[11]"Multiprogramming Operating System: Examples, Advantage, Disadvantage", DigitalThinkerHelp,
2021. [Online]. Available: https://digitalthinkerhelp.com/what-is-multiprogramming-operating-system-
examples-advantages-disadvantages/. [Accessed: 12- Nov- 2021].
[12]A. systems, J. Rehman and J. Rehman, "Advantages and disadvantages of multiprocessor
systems", IT Release, 2021. [Online]. Available: https://www.itrelease.com/2020/06/advantages-
and-disadvantages-of-multiprocessor-systems/. [Accessed: 12- Nov- 2021].
[13]W. computer, J. Rehman and J. Rehman, "What are advantages and disadvantages of desktop
computer", IT Release, 2021. [Online]. Available: https://www.itrelease.com/2021/10/what-are-
advantages-and-disadvantages-of-desktop-computer/. [Accessed: 12- Nov- 2021].
[14]"5 Advantages and Disadvantages of Distributed System | Limitations & Benefits of Distributed
System", HitechWhizz - The Ultimate Tech Experience, 2021. [Online]. Available:
https://www.hitechwhizz.com/2021/03/5-advantages-and-disadvantages-limitations-benefits-of-
distributed-system.html. [Accessed: 12- Nov- 2021].
23